1 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
5 add _dbus_printf_length (patch from Peter Kümmel
6 <syntheticpp at gmx dot net>)
8 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
10 * dbus/dbus-internals.c: unistd.h is not used
11 (_dbus_verbose_real): only enable verbose printing
12 if DBUS_VERBOSE environment var is set to '1'
13 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
15 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
17 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
18 so we still compile on older gcc (patch from Frederic Peters
19 <fpeters at 0d dot be>
21 2006-08-04 Havoc Pennington <hp@redhat.com>
23 * configure.in: add -Wdeclaration-after-statement
25 * dbus/dbus-connection.c: change all the pending call stuff to
26 reflect the fact that pending call operations use the connection
29 * dbus/dbus-pending-call.c: add locking here
31 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
32 field const consistent with how message field is done
34 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
38 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
40 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
41 <in7y118 at public.uni-hamburg dot de> - fix invalid
42 read/write reported by valgrind
44 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
48 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
50 * dbus/dbus-connection.c:
51 (_dbus_connection_attach_pending_call_unlocked):
52 (connection_timeout_and_complete_all_pending_calls_unlocked):
53 Make sure we set timeout_added on pending calls to FALSE when
54 we remove the timeout from the connection
56 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
58 * Removed some extra bindings stuff lingering around (thanks timo)
59 * dbus-pendingcall.c (_dbus_pending_call_new):
60 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
61 when we tried to take a lock on an already locked connection
63 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
67 2006-07-17 Havoc Pennington <hp@redhat.com>
69 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
70 ints, reported by Owen Taylor
72 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
77 * dbus/dbus-marshal-validate.c:
78 Removed TODO items which were fixed or are no longer relevent
80 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
82 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
83 Remove stray files from the stripped bindings
85 2006-07-16 Havoc Pennington <hp@redhat.com>
87 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
88 Improve the error message on reply timeout
90 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
94 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
96 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
97 and set pending_reply out arg to NULL is connection is disconnected
98 (connection_timeout_and_complete_all_pending_calls_unlocked): New
99 static method for cleaning up pending calls on disconnect
100 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
101 calls queued timeouts on disconnect
103 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
106 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
108 * bus/activation.[ch] (bus_activation_list_services): new function to
109 get the list of services that can be activated
111 * bus/dispatch.c: test coverage for the new bus method
114 * bus/driver.c: new bus method ListActivatableNames to get the list of
115 services that can be activated
117 * doc/dbus-specification.xml: ListActivatableNames method documentation
119 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
120 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
123 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
124 * dbus/dbus-message-factory.c:
125 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
127 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
128 * dbus/dbus-connection-internal.h:
129 * dbus/dbus-connection.c:
130 * file dbus/dbus-pending-call.c:
131 * dbus/dbus-pending-call.h:
132 Make DBusPendingCall an opaque type even to D-Bus internals
134 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
136 * dbus/dbus-connection.h: remove connection_disconnect and replace with
139 * dbus/dbus-connection.c: include dbus-bus.h
140 (_dbus_connection_read_write_dispatch): make static
142 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
144 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
146 (dbus_connection_dispatch): On disconnect unref any shared connections
148 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
149 for cleaning up shared connections on disconnect
150 (internal_bus_get): get a hard refrence to shared connections when
153 * doc/TODO: Remove items which are no longer relevent or have been fixed
154 Split 1.0 todo items with a 0.90 freeze todo list
156 2006-06-14 Ross Burton <ross@openedhand.com>
158 * glib/dbus-gobject.c:
159 Free a leaking GArray (surely not!) in dbus_g_method_return.
161 2006-06-14 Ross Burton <ross@openedhand.com>
164 * tools/dbus-monitor.c:
165 Don't use the GLib bindings in dbus-monitor (patch from Ralf
168 2006-06-14 Ross Burton <ross@openedhand.com>
170 * tools/dbus-print-message.c:
171 Also print the object path when outputting signals or method calls.
173 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
175 * qt/src/Makefile.am: install the qdbus.h header.
176 This allows people to actually use the installed code.
178 2006-06-12 Ross Burton <ross@openedhand.com>
180 * glib/dbus-gproxy.c:
181 Don't leak a GArray when firing signals (thank Rob Taylor for review).
183 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
187 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
189 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
190 break pedantic builds. Closes bug 6043 (patch approved by
191 Havoc back in February).
193 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
195 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
196 that took a QDBusMessage parameter.
197 * qt/src/qdbusbus.h: Add a default flag for RequestName.
198 * qt/tools/dbus.cpp: Don't use automatic call because we might
199 be calling an async method: request a reply.
201 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
203 * test/qt/*: Update the testcases, including testing the new
204 functionality of sending null QByteArray and QString over the
205 bus. Add new headertest test and restore the old
208 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
210 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
211 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
213 * qt/examples/Makefile.am:
214 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
217 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
218 QByteArray() (nulls) over the bus.
219 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
220 the one that has the signature suffix stripped.
221 * qt/src/qdbusreply.h: Make some methods const.
223 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
225 Patch from Timo Hoenig <thoenig@suse.de>.
227 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
228 required during build to EXTRA_DIST.
229 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
230 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
231 * configure.in: Fix "make dist", take care that the Makefile for
232 qt/dbus is being generated.
234 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
236 * bus/bus.c: Fix eavesdropping on method calls
238 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
241 * dbus/dbus-userdb-util.c:
242 Add Solaris console owner patch from Artem Kachitchkine
244 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
247 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
248 reorganisation. Thanks to Timo Hoenig for pointing this out.
250 2006-06-06 Robert McQueen <robot101@debian.org>
252 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
253 call to dbus_g_type_get_struct.
255 2006-06-06 Robert McQueen <robot101@debian.org>
257 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
258 pointers were put into a GPtrArray-based specialised collection, and
259 then freed along with the array. GValues which you add into
260 collections or maps which have the NOCOPY flag set are assumed to not
261 belong to the caller, so rather than the existing pointer-stealing
262 semantics, they are copied instead. Given that the main consumers of
263 this abstraction are the bindings themselves, I don't think this is
264 too bad, but others should watch their choice of take vs set_static.
266 2006-06-06 Robert McQueen <robot101@debian.org>
268 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
269 of g_slist_prepend not being used. Fixed copying of slist-based
270 specialised collections, then wrote a test case and found that it was
271 all broken. Went on to fix iterating and appending too. Good thing
272 nobody uses this code yet.
274 2006-06-06 Robert McQueen <robot101@debian.org>
276 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
277 the iterators use gvalue_take_ptrarray_value (the GValues themselves
278 are discarded without unsetting, so it makes no difference whether
279 we take or set_static). Remove cases for G_TYPE_POINTER because
280 there really is nothing useful we can do with them in our
281 specialised types - we *need* boxed copy/free functions at the very
284 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
286 * qt/dbus: Add directory. I had forgotten to add this
287 yesterday after the move...
289 * qt/examples/Makefile.am:
290 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
292 * qt/tools/Makefile.am:
293 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
294 Added feature to get and set properties.
295 Added validation of service, object path and interface names.
297 * qt/tools/dbusidl2cpp.cpp: Two new features:
298 1) Allow specifying both the header and the source file names,
299 by separating them with a colon.
300 2) Don't write an interface output if the -p switch wasn't
301 given, but the -a was.
303 * qt/src/*: Fix usage of Iterators and ConstIterators.
304 Fix shadowing of variables by other variables (-Wshadow).
305 Fix keyword-cleanliness in headers.
306 Fix ASCII-cast (QLatin1String, QLatin1Char).
307 Fix validation of member names.
308 Add extra checking of introspection data during XML parsing.
311 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
314 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
317 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
319 * configure.in: Make --disable-qt actually do
320 something. Patch inspired by Zack Rusin.
322 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
324 * qt/: Update to Subversion r548032.
325 This includes a big reorganisation of the files inside the
328 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
330 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
332 "Failed to connect to socket <host>:<port> <error>" instead of
333 "Failed to connect to socket <host>: <error>:<port>"
335 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
338 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
340 * qt/*: Update the QtDBus bindings up to revision 546310 in
342 This adds the dbuscpp2xml tool, that parses a C++ header and
343 outputs a D-BUS Introspection XML.
345 2006-05-21 Havoc Pennington <hp@redhat.com>
347 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
348 is not NULL when it shouldn't be. Also a couple of possible fixes
349 for #4637 though I don't understand why the bug happens, to be
350 honest... also the object constructor has an assert name != NULL
351 and the name is only currently NULL for peer-to-peer proxies that
352 I don't think anyone uses? So it should be asserting.
353 Anyway, for now at least see if we get an earlier assertion failure.
355 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
356 apparently broken code to be sure the tests fail and someone
359 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
361 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
362 and arrays when they had a single element: has_next returns
363 false, even before you read the element. So, instead, check
366 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
368 * qt/qdbusmessage.cpp:
369 * qt/qdbustypehelper_p.h:
370 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
371 the list is a const-reference
373 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
375 * Adding old doc patch that never got applied
377 * dbus/bus.c (dbus_bus_add_match): Add documentation
379 * doc/dbus-specification.xml: Add documentation for the match rules
380 and the AddMatch and RemoveMatch methods
382 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
384 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
387 * qt/dbusidl2cpp.cpp:
388 * qt/qdbusabstractadaptor.cpp:
389 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
390 sibling of the QDBusAbstractAdaptor objects instead of the
393 * qt/dbusidl2cpp.cpp:
394 * qt/qdbusabstractinterface.cpp:
395 * qt/qdbusabstractinterface.h:
396 * qt/qdbusabstractinterface_p.h:
397 * qt/qdbusinterface.cpp: Make properties in interfaces
398 actually work. The code that was generated would not compile,
399 due to moc calls to functions that did not exist. They now
402 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
406 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
407 Thanks to Brad Hards for providing the patch
409 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
411 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
414 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
416 * qt/examples/dbus.cpp: Enhance error messages and use
419 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
421 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
422 and disable the copy operators. (r533772, r534746)
424 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
426 * qt/qdbusabstractinterface.cpp:
427 * qt/qdbusabstractinterface.h: Change the default call mode to
428 not use the event loop. Add convenience call() methods that
429 take a CallMode parameter. (r534042)
431 * qt/qdbusconnection.h: Change the default call mode to not
432 use the event loop. (r534042)
434 * qt/qdbusinterface.cpp:
435 * qt/qdbusinterface.h: Add a method to tell us if the
436 interface is valid (since we don't return a null pointer
439 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
442 * qt/qdbusinternalfilters.cpp: Decouple the introspection
443 function in two so taht we get the chance to introspect
444 without having a QDBusMessage (r534102)
447 * qt/qdbusconnection.cpp:
448 * qt/qdbusconnection_p.h:
449 * qt/qdbusintegrator.cpp: Keep a list of our own names to
450 avoid a round-trip to the server when attempting to introspect
451 one of our own objects. Also make sure the filter functions
452 match the empty interface as well. (r534108)
453 Don't keep the connection names. Instead, trust the unique
454 connection name (r534111)
455 Remove event loop usage (r534112)
457 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
459 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
462 2006-04-28 Robert McQueen <robot101@debian.org>
464 * glib/dbus-gproxy.c: Fix properties so that they can be given in
465 any order, making it easier for people who inherit from this
468 2006-04-28 Robert McQueen <robot101@debian.org>
470 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
471 of memory from within pointer arrays and lists. Fixes bug #6300.
473 2006-04-28 Robert McQueen <robot101@debian.org>
475 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
476 generating struct signatures. Fixes bug #6083.
478 2006-04-28 Robert McQueen <robot101@debian.org>
480 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
481 to qdbusconnection_p.moc.
483 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
485 * README, INSTALL: Doc fixes
486 Patch from Brad Hards <bradh at frogmouth.net>
488 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
490 * qt/examples/dbus.cpp: Use the new merged-interface mode for
491 the dynamic meta object. No need to guess which interface to
494 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
496 * qt/qdbusconnection_p.h:
497 * qt/qdbusmetaobject.cpp:
498 * qt/qdbusmetaobject_p.h:
499 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
500 for the dynamic meta object. No need to guess which
502 * qt/qdbusabstractinterface_p.h:
503 * qt/qdbusconnection.cpp:
504 * qt/qdbusintegrator.cpp:
505 * qt/qdbusinterface.cpp:
506 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
507 Add a QDBusRef that looks and behaves like DCOPRef.
509 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
511 * dbus/dbus-connection.c: Interfaces are optional in method
512 calls, so don't give up if the interface parameter is NULL.
513 Patch reviewed by Havoc Pennington.
515 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
517 * qt/qdbusreply.h: Add default constructor and operator=
519 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
520 in public headers (r532952)
521 * qt/qdbusabstractinterface.cpp:
522 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
523 make it the default (r532951)
525 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
527 * dbus/dbus-connection.c: Fix asserts
528 Patch from Tim Moloney <t.moloney at verizon.net>
530 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
532 * mono/Connection.cs, mono/Message.cs: Check Target type
533 Patch from Aaron Bockover (abockover at novell.com)
535 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
537 * INSTALL: fine-tune the requirements for the Qt4 binding.
539 2006-04-16 Daniel P. Berrange <dan@berrange.com>
541 * tools/dbus-print-message.c: Added support for printing of all
542 remaining data types. Fixed logic for indentation of compound
545 2006-04-15 Daniel P. Berrange <dan@berrange.com>
547 * INSTALL: fill out content of file providing DBus specific
548 build installations, followed by generic Auto* INSTALL file
551 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
553 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
554 Patch by Stefan Eilers. (r529537)
556 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
558 * qt/qdbusinternalfilters.cpp: Don't show the parent's
561 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
563 * qt/Makefile.am: fix the dependency for
564 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
565 not in qdbusconnection.cpp.
566 Thanks to Jakub Stachowski <stachowski@hypair.net> for
569 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
571 * qt/examples/listnames.cpp:
572 * qt/examples/Makefile.am: Three ways to list the names on the
575 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
577 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
578 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
580 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
582 Merge from Subversion:
583 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
584 something that exists (r526315)
585 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
586 slots/signals (r526316)
587 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
588 also return an unknown-method error if the parameters don't
589 match for org.freedesktop.DBus.Properties. (r526842)
590 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
591 * qt/qdbusintegrator.cpp: Restore the proper order of
592 delivery: don't make method returns be delivered on priority
595 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
597 * configure.in qt/Makefile.am: add qt/examples
598 * qt/examples: Add QtDBus example programs:
599 - hello: Hello, World
600 - ping: Simple method-calling program
601 - pong: Simple object-exporting program (not using adaptors)
602 - complexping: Interactive method-calling program
603 (also gets and sets properties).
604 - complexpong: Sample program exporting methods, signals and
605 properties, using adaptors.
606 - dbus: Simple implementation of a generic method-calling
607 program, similar to 'dbus-send', but with semantics
609 - chat: Simplistic chat program, implemented using signals
610 and the system bus. Looks like IRC.
612 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
614 * configure.in: Detect QtGui (necessary for one of the
615 example programs). Note: this increases the minimum required
616 version of Qt to 4.1.3.
618 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
620 * test/qt/*: Sync with KDE Subversion revision 523647.
621 Update the testcases to the new API. Remove testcases for
622 classes that are no longer public or have been removed.
624 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
627 * dbus/qdbus.h: Sync with KDE Subversion revision
628 523647. Hopefully, this will be the last of the
629 source-incompatible changes. Documentation has been improved;
630 support for QList<basic-types> has been added; QDBusObject is
631 gone; QDBus(Abstract)Interface is now a QObject with
632 auto-generated meta-object; QDBusIntrospection is marked
633 private, since QMetaObject can be used now; lots of bugfixes.
635 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
637 Patch from Milosz Derezynski <internalerror at gmail.com>
640 Output the service directory in the configure summary
643 Add session_bus_services_dir
645 2006-03-10 Ross Burton <ross@openedhand.com>
647 * tools/dbus-print-message.c:
648 Add support for object paths and signatures.
650 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
652 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
654 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
656 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
657 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
658 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
659 * dbus/dbus-userdb.h: Add function to flush all user/group information
662 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
664 * qt/dbusidl2cpp.cpp:
665 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
666 for dcopidl2cpp, found in the KDE installations (or the more
667 modern kalyptus): generate Qt4 C++ code for the input XML
668 introspection. Currently no IDL parsing.
670 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
672 * test/qt/*: Update the self-tests.
674 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
677 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
678 represents the first feature-complete version of the Qt4
679 bindings since I took ove maintainership.
681 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
683 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
684 dir. This is C++, so we can't use the DBus ones.
686 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
688 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
689 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
691 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
693 * dbus/dbus-connection.c:
694 (_dbus_connection_block_pending_call):
695 Check to see if our data has already been read off the connection
696 by another blocking pending call before we block in poll.
697 (check_for_reply_and_update_dispatch_unlocked):
698 Code taken from _dbus_connection_block_pending_call - checks for
699 an already read reply and updates the dispatch if there is one.
701 * test/name-test/test-pending-call-dispatch.c:
702 New test for making sure we don't get stuck polling a
703 dbus connection which has no data on the socket when
704 blocking out of order on two or more pending calls.
706 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
708 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
709 make/automake don't detect that we're talking about the same
710 .lo file if I specify the full path to the source files.
712 2006-02-26 Havoc Pennington <hp@redhat.com>
714 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
716 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
717 session bus variable is unset, suggest "man dbus-launch" and "man
718 dbus-daemon" to figure out how to fix the problem
720 2006-02-25 Havoc Pennington <hp@redhat.com>
722 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
723 should make this thing use the new glib options parser
725 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
727 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
728 .lo files taking moc sources.
730 2006-02-25 Havoc Pennington <hp@redhat.com>
732 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
733 and install it as a public header
735 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
739 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
741 * proxies.py: Fix the callchain
743 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
745 * patch from Sjoerd Simons <sjoerd at debian.org>:
747 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
750 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
751 call _dbus_group_info_free_allocated which causes infinite loop,
752 correctly call _dbus_group_info_free
754 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
756 * qt/qdbusinterface_p.h:
757 * qt/qdbusinterface.cpp: Use the standard
758 org.freedesktop.DBus.Method.NoReply annotation for the "async"
759 calls instead of creating one for us.
761 * qt/qdbusconnection_p.h:
762 * qt/qdbusintegrator.cpp: Remove debugging code.
764 * qt/qdbusintegrator.cpp:
765 * qt/qdbusmessage.cpp:
766 * qt/qdbusmessage_p.h:
767 * qt/qdbusmessage.h: Change the behaviour of automatic
768 reply-sending: now a reply is always sent, unless the caller
769 didn't request one or if the user slot has already sent one.
771 2006-02-16 Robert McQueen <robot101@debian.org>
773 * configure.in: Patch from Debian packages by Sjoerd Simons
774 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
775 arguments so it's possible to build both bindings in the
778 * qt/Makefile.am: Fix truncated value so that make dist works.
780 2006-02-16 Robert McQueen <robot101@debian.org>
782 * acinclude.m4, configure.in: Patch from Brad Hards
783 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
784 improving quoting, re-ordering a few checks, and a few other
787 2006-02-16 Robert McQueen <robot101@debian.org>
789 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
790 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
791 assertion that the next element to read from the iter is fixed in
792 size. This is not the case when you are at the end of the iter,
793 because the next element type is INVALID.
795 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
796 a bogus assert which means that you may not initialise a 0-length
797 string unless you provide a non-NULL pointer. This prevented
798 you from marshalling messages containing zero-length arrays in
801 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
802 from Rob to correct bogus asserts when trying to demarshal an
803 array and get_fixed_array got you 0 elements. Append nothing to
804 the GArray in this case.
806 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
807 an empty array via the glib bindings. Without all of the above
808 patches, this new test fails.
810 2006-02-16 Robert McQueen <robot101@debian.org>
812 * glib/dbus-gmain.c: Make the previous commit compile.
814 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
815 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
816 specify sender_keyword="foo", path_keyword="bar" when adding
817 a signal listener, so that you can bind to signals generically
818 but still do something useful in your callback.
820 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
821 chars so that they're not cast to chars and made negative. Thanks
822 to Jakub Stachowski for reporting this and testing the fix.
824 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
828 (dbus_g_connection_open): new method for openning
829 a connection to an arbitrary address in the glib bindings
831 * ChangeLog: checkin last entry which doesn't seem to be commited
833 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
835 * tools/dbus-launch.c: Fixed sh syntax output
837 2006-02-13 Robert McQueen <robot101@debian.org>
839 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
840 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
841 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
842 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
843 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
844 missing piece of the glib bindings jigsaw puzzle. This modifies
845 the existing specialised types to have N type parameters (rather
846 than the current 1 or 2 for arrays and dictionaries respectively).
847 You can then use this to get a glib type to represent any arbitrary
848 D-Bus struct type using dbus_g_type_get_struct. The only
849 implementation of these types is with GValueArrays as before,
850 but it's now possible to store these in arrays, emit them in
853 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
855 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
856 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
857 <thiago.macieira at trolltech.com>
859 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
861 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
862 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
864 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
866 * bus/connection.c (bus_connections_expect_reply): Make
867 pending reply limit not common to all connections (Bug #5416)
868 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
870 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
872 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
874 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
876 * gcj/Makefile.am: point to correct jar command (Bug #4529)
877 patch from Doug Goldstein <cardoe at gentoo.org>
879 2006-02-09 Joe Shaw <joeshaw@novell.com>
881 * mono/Arguments.cs: Fix a magic number in the mono bindings
882 that doesn't work on 64 bit arches. Patch from Peter Johanson.
884 2006-01-27 Robert McQueen <robot101@debian.org>
886 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
887 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
888 when generating the client-side methods, instead of overloading
889 CSymbol which broke everything horribly. My apologies.
891 2006-01-27 Robert McQueen <robot101@debian.org>
893 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
894 by me and Rob Taylor to add a simple_free function to D-Bus map
895 and collection types, which allows those types which can be freed
896 with a GDestroyNotify (such as GHashTables and GArrays, but not
897 GPtrArrays) to be stored as the values in hashtables.
899 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
900 Patch by Rob Taylor to add nested dicts to the glib tests to check
901 the above code works, and appears not to leak when called repeatedly.
903 2006-01-27 Robert McQueen <robot101@debian.org>
905 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
906 to free a D-Bus allocated string with dbus_free () instead of
909 2006-01-27 Iain Holmes <iain@openedhand.com>
911 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
912 method from being called multiple times.
914 2006-01-19 Robert McQueen <robot101@debian.org>
916 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
917 <rob.taylor@collabora.co.uk> to add support for generating bindings
918 to arrays that are represented as GPtrArrays rather than GArrays (ie
919 size-variable things, such as strings, objects, structs, etc).
921 2006-01-05 Robert McQueen <robot101@debian.org>
923 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
924 <ricardo.kekki@movial.fi> to make it possible to inherit from
925 DBusGProxy, by splitting the DBusGProxy struct into a public part and
926 a private part, and moving the setting of the DBusGProxyManager into a
927 connection property, allowing proper GObject construction.
929 2006-01-05 Robert McQueen <robot101@debian.org>
931 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
932 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
933 annotations when generating glib client bindings.
935 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
937 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
939 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
941 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
943 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
945 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
947 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
949 2005-12-19 Ross Burton <ross@openedhand.com>
951 * doc/dbus-tutorial.xml:
952 Document the Glib client-side bindings, and list all possible annotations.
954 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
956 * dbus/bus.c (dbus_bus_release_name): Add documentation
958 2005-12-06 Robert McQueen <robot101@debian.org>
960 * python/service.py: s/sucessful/successful/ so we're allocating to
961 and reading from the same variable. Oops.
963 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
967 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
969 * test/qt/Makefile.am: build from srcdir
971 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
972 Note - this code is wrong and needs to be fixed by the Qt binding
973 developers. The flags should be treated as bitfields and not enums.
975 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
977 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
979 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
980 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
983 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
985 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
986 method for getting messages off the bus in the absence of a
987 mainloop. This method is much like
988 dbus_connection_read_write_dispatch except it does not dispatch
989 the messages to a registered filter function. Instead it
990 allows a developer to process messages by directly popping
993 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
995 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
996 the parser to continue instead of returning error
997 (bus_desktop_file_load): Do not free parser data when
998 parse_section_start or parse_key_value fails because it was
999 already freed by parser_free (patch from Carlos Garcia Campos
1000 <carlosgc at gnome.org>)
1002 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1004 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1005 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1006 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1007 test/test-segfault.c, test/test-utils.c,
1008 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1009 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1010 Various cleanup of dead code and compiler warnings (patch from
1011 Kjartan Maraas <kmaraas at gnome.org>)
1013 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1015 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1016 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1018 2005-11-27 Robert McQueen <robot101@debian.org>
1020 * python/dbus_bindings.pyx: Repair my previous commit which reverted
1021 part of the preceding one. Oops. Merge patch by Johan Hedberg
1022 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1023 on big-endian platforms.
1025 * test/python/test-client.py: Add some 16-bit integers to the test
1028 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
1030 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1031 method return message for property getters
1033 2005-11-27 Robert McQueen <robot101@debian.org>
1035 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1036 with type v of an instance of dbus.Variant(foo, type='x') caused
1037 it to be boxed twice before sending over the bus.
1039 * python/dbus_bindings.pyx, python/service.py,
1040 test/python/test-client.py: Update the constants for the new
1041 request_name flags, and update comments/test cases now that queueing
1042 is the default action.
1044 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1047 - Change version to 0.60 for impending release
1048 - upped the sonames because of ABI and API breakage
1050 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1052 * configure.in: Add test/name-test/Makefile to the generated
1055 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1056 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1057 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1058 not to queue an ower if it can't be the primary owner
1060 * bus/bus.h: Add new internal BusOwner struct
1062 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1063 to bus_registry_ensure and don't set the prohibit_replacement flag
1064 since they are now set per BusOwner and not per name.
1065 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
1066 that returns the list of connections in a name's connection queue
1068 * bus/services.c (struct BusService): remove prohibit_replacement field
1069 (struct BusOwner): new struct for keeping track of queued connections
1070 and their associated flags for the queue
1071 (struct BusRegistry): add a BusOwner memory pool
1072 (bus_registry_new): initialize the BusOwner memory pool
1073 (bus_registry_unref): free the BusOwner memory pool
1074 (_bus_service_find_owner_link): new internal method for
1075 searching the queue for a specific connection
1076 (bus_owner_set_flags): new method for adding setting the flags on a
1078 (bus_owner_new): new method that creates a BusOwner object from the
1079 pool and sets its flags
1080 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1081 (bus_registry_ensure): Add the flags parameter
1082 (bus_registry_acquire_service): Switch from using raw connections to
1083 using the BusOwner struct
1084 Add new state machine for dealing with the new set of flags
1085 (bus_registry_set_service_context_table, struct OwnershipCancelData,
1086 cancel_ownership, free_ownership_cancel_data,
1087 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
1088 restore_ownership, free_ownership_restore_data,
1089 add_restore_ownership_to_transaction): Switch to using BusOwner
1090 instead of raw connections
1091 (bus_service_add_owner): Add flags parameter
1092 Switch to using BusOwner instead of raw connections
1093 Add state machine for dealing with the new set of flags
1094 (bus_service_swap_owner): Swaps the first and second owners in the
1095 queue. Used to make sure proper signals are sent when a service looses
1096 or gains primary ownership. We never insert an owner at the top of the
1097 queue. Instead we insert it in the second position and then swap.
1098 (bus_service_remove_owner): Remove the owner from the queue sending
1099 out the NameLost and NameOwnerChanged signals if the we were the
1101 (bus_service_get_primary_owners_connection): New method that extracts
1102 the connection from the primary owner
1103 (bus_service_get_primary_owner): Returns the BusOwner instead of the
1105 (bus_service_get_allow_replacement): Changed from the old
1106 bus_service_get_prohibit_replacement method. Checks the flags of the
1107 primary owner and returns if it can be replaced or not
1108 (bus_service_set_prohibit_replacement): removed
1109 (bus_service_has_owner): returns TRUE if and owner with
1110 the specified connection exists in the queue
1112 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1113 method that only compiles if tests are enabled. Allows us to get the
1114 unique name of a connection so we can check it against the queue when
1115 doing regression tests
1117 * bus/activation.c (bus_activation_send_pending_auto_activate),
1118 bus/dispatch.c (bus_dispatch),
1119 bus/driver.c (bus_driver_handle_get_service_owner,
1120 bus_driver_handle_get_connection_unix_user,
1121 bus_driver_handle_get_connection_unix_process_id,
1122 bus_driver_handle_get_connection_selinux_security_context),
1123 bus/signals.c (connection_is_primary_owner):
1124 use bus_service_get_primary_owners_connection instead of
1125 bus_service_get_primary_owner
1127 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
1128 _dbus_listen_unix_socket): Calculate the length of the socket
1129 path and use that instead of using a fixed length which was
1130 causing socket names to contain many trailing Nul bytes.
1132 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1133 (dbus_g_method_get_sender): New method for extracting the sender
1134 from a DBusGMethodInvocation
1135 (dbus_g_method_return_get_reply): changed name to
1136 dbus_g_method_get_reply
1137 (dbus_g_method_return_send_reply): changed name to
1138 dbus_g_method_send reply
1140 * doc/dbus-specification.xml: New docs that describe how the new
1141 queueing system works and talks about the changes to the how
1142 we specify socket names
1144 * glib/examples/example-service.c,
1145 glib/examples/example-signal-emitter.c,
1146 glib/examples/statemachine/statemachine-server.c:
1147 Changed the RequestName flags to the new system
1149 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1150 regression test suite for testing various states of the new
1153 2005-11-15 Robert McQueen <robot101@debian.org>
1155 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1156 Taylor to add two methods, dbus_g_method_return_get_reply and
1157 dbus_g_method_return_send_reply, to allow you to get the reply
1158 message from a DBusGMethodInvocation, append arbitrary stuff to it,
1159 and send it. The GLib bindings can't marshal a return value of
1160 something like a(s) if the array is empty - ultimately they should be
1161 made to heed the signature of the out arguments as the Python bindings
1162 now can, but this is a workable interim solution which might have
1165 2005-11-15 Robert McQueen <robot101@debian.org>
1167 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1168 method to org.freedesktop.DBus to release a bus name or give up
1169 waiting in the queue for it.
1171 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1172 dbus_bus_release_name method to send the ReleaseName method calls.
1173 Add constants for the return values to dbus/dbus-shared.h.
1175 * doc/dbus-specification.xml: Document the new ReleaseName method
1176 in the specification.
1178 * python/dbus_bindings.pyx: Add a low-level python binding for the
1179 release name method.
1181 * python/exceptions.py, python/service.py: Make freeing BusName
1182 objects release the name. Add a NameExistsException, and fix a
1183 bug with creating UnknownMethodException.
1185 * test/python/test-client.py: Add tests for freeing BusName
1186 objects causing names to be released.
1188 2005-11-14 Robert McQueen <robot101@debian.org>
1190 * python/service.py: Include the traceback in the error reply when we
1191 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1193 2005-11-14 David Zeuthen <davidz@redhat.com>
1195 Patch from Timo Hoenig <thoenig@suse.de>.
1197 * bus/bus.c: I've recently investigated why the automatic reload
1198 of configuration files does not work as expected.
1200 Currently, reloading configuration files does only work when
1201 running dbus-daemon with --nodaemon. If we are running as daemon
1202 we're hitting a dnotify bug once we fork the process.
1204 We're initializing the dnotify fds before calling fork(). Once
1205 the child process forked it does still have the fds (and they
1206 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1207 getting SIGIO as changes are made to the configuration files.
1209 The attached patch moves the initialization of the dnotify fds to
1210 process_config_postinit(). This is safe for all current code
1211 paths and solves the dnotify disfunction. If we're running
1212 dbus-daemon as daemon the fds for dnotify are now being
1213 initialized after fork() for the child process.
1215 * configure.in: The current configure.in check for dnotify probes
1216 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1217 match for 'xlinux', too. Additionally I have adapted the configure
1218 option's style to match with the others.
1220 2005-11-14 Robert McQueen <robot101@debian.org>
1222 * python/decorators.py, python/service.py: Add a new argument to the
1223 dbus.service.method decorator called sender_keyword, which if set,
1224 specifies the name of an argument which will be provided the bus
1225 name of the method caller.
1227 * test/python/test-client.py, test/python/test-service.py: Add a
1228 method and test to check the sender_keyword functionality.
1230 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1232 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1233 empty reply so blocking calls don't block forever (Patch from Sjoerd
1234 Simons <sjoerd at luon.net>)
1236 * AUTHORS: Add Robert McQueen for his work on the Python
1237 Bindings and other parts of D-Bus
1239 2005-11-07 Robert McQueen <robot101@debian.org>
1241 * python/decorators.py: Change emit_signal function to use the
1242 signature annotation of the signal when marhsalling the arguments from
1243 the service. Fix a bug where the code checking signature length
1244 against argument length referenced the wrong variable.
1246 * python/introspect_parser.py: Avoid adding the type signature of
1247 signal arguments to any methods which occur after them in the
1248 introspection data (!) by making the parser a little more careful
1249 about its current state.
1251 * python/service.py: Remove debug prints from last commit (again :D).
1253 * test/python/test-client.py, test/python/test-service.py: Add test
1254 signals with signature decorators to test the strict marshalling code
1255 gives errors at the right time. Could do with checking the signals
1256 actually get emitted too, given that the test does nothing with
1257 signals at the moment...
1259 2005-11-07 Robert McQueen <robot101@debian.org>
1261 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1262 instances to stop madness of creating new instances representing
1263 the same bus connection all the time, rendering any tracking of
1264 match rules and bus names quite meaningless. Caught a bug where
1265 the private argument to SessionBus() and friends was being passed
1266 in as use_default_mainloop by mistake. Still some problems with
1267 multiple dbus_binding.Connection instances representing the same
1268 low-level connection (eg when you use both SessionBus() and
1269 StarterBus() in same process), but it's a lot better now than it
1272 * python/dbus_bindings.pyx: Add constants with the return values
1273 for bus_request_name().
1275 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1276 and retrieve the same instances for the same name, so deletion can be
1277 done with refcounting. Also now throws some kind of error if you
1278 don't actually get the name you requested, unlike previously...
1280 * test/python/test-client.py: Add tests for instance caching of buses
1281 and bus name objects.
1283 2005-11-04 Robert McQueen <robot101@debian.org>
1285 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1286 marshalling of boolean values. Add some booleans to the values in
1289 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1290 argument to the dbus.service.method decorator, which allows you to
1291 name arguments to take two callback functions for replying with
1292 return values or an exception.
1294 * test/python/test-client.py, test/python/test-service.py: Add test
1295 case using asynchronous method reply functions, both return values and
1296 errors, and from within both the function itself and from a mainloop
1299 * python/decorators.py, python/service.py: Perform checking that the
1300 number of method/signal arguments matches the number of types in the
1301 signature at class loading time, not when you first introspect the
1304 * python/service.py: Remove debug print left by the last commit.
1306 2005-11-03 Robert McQueen <robot101@debian.org>
1308 * python/service.py: Heavy refactoring of method invocation, with
1309 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1310 in favour of a new _message_cb that uses seperate functions for
1311 looking up the method to call, marshalling the return values, and
1312 sending exceptions as errors, and is easier to follow as a
1313 consequence. Fixes some corner cases about returning things that
1314 don't match your declared out_signature, allows exceptions to define
1315 _dbus_error_name and have it be sent over the bus as the error name,
1316 and paves the way for cool stuff like heeding the message no reply
1317 flag, asynchronous method implementations, informing the method of the
1318 sender, and including backtraces in the error messages.
1320 * test/python/test-client.py: Catch and print exceptions thrown in the
1321 async callback tests, rather than passing them to the low-level
1322 bindings to be ignored in a noisy and frustrating manner.
1324 2005-11-03 Robert McQueen <robot101@debian.org>
1326 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1327 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1328 tweak others to be consistent.
1330 * test/python/test-client.py: Tweak output of testInheritance.
1332 2005-10-29 Robert McQueen <robot101@debian.org>
1334 * python/service.py: Major changes to allow multiple inheritance
1335 from classes that define D-Bus interfaces:
1337 1. Create a new Interface class which is the parent class of
1338 Object, and make the ObjectType metaclass into InterfaceType.
1340 2. Patch written with Rob Taylor to replace use of method_vtable
1341 with code that walks the class's __MRO__ (method resolution order)
1342 to behave like Python does when invoking methods and allow
1343 overriding as you'd expect. Code is quite tricky because
1344 we have to find two methods, the one to invoke which has the
1345 right name and isn't decorated with the /wrong/ interface,
1346 and the one to pick up the signatures from which is decorated
1347 with the right interface.
1349 The same caveats apply as to normal multiple inheritance -
1350 this has undefined behaviour if you try and inherit from two
1351 classes that define a method with the same name but are
1352 decorated with different interfaces. You should decorate
1353 your overriding method with the interface you want.
1355 3. Replace grungy introspection XML generation code in the metaclass
1356 with dictionaries that cope correctly with multiple inheritance
1357 and the overriding of methods. This also uses the signature
1358 decorations to provide correct introspection data, including
1359 the debut appearance of the types of your return values. :D
1361 * test/python/test-client.py, test/python/test-service.py: Add a test
1362 case to try invoking an method that overrides one inherited from a
1363 D-Bus interface class.
1365 2005-10-29 Robert McQueen <robot101@debian.org>
1367 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1368 Add checking for the end of struct character when marshalling a
1369 struct in MessageIter.append_strict.
1371 * python/examples/example-service.py,
1372 python/examples/gconf-proxy-service.py,
1373 python/examples/gconf-proxy-service2.py: Update to use gobject
1374 mainloop directly rather than appearing to depend on gtk.
1376 * python/test/test-client.py, python/test/test-server.py: Remove
1377 obsolete and broken test scripts for old bindings. We have up to date
1378 and working tests in test/python/.
1380 2005-10-29 Robert McQueen <robot101@debian.org>
1382 * python/decorators.py: Add optional arguments to the method and
1383 signal decorators to allow you to specify the signature of arguments
1384 and return values. Preserve the doc strings of signal functions in the
1385 decorated version, for pydoc and friends.
1387 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1388 parse_signature_block function with an iterable dbus.Signature()
1389 type. Fix a bug in MessageIter.append_strict where you could append
1390 anything by claiming it was a string.
1392 * python/service.py: Use the out_signature decoration on methods to
1393 marshal return values, meaning you no longer require dbus.Array()
1394 or dbus.Dictionary() to indicate the type when returning empty
1395 arrays or dictionaries. Fix a bug where exceptions which are defined
1396 in __main__ are not turned into error replies.
1398 * test/python/test-client.py, test/python/test-service.py: Add test
1399 for correct marshalling of return values according to out_signature.
1400 Fix a bug in the async call test where the error_handler is missing a
1403 2005-10-29 Robert McQueen <robot101@debian.org>
1405 * glib/Makefile.am, glib/examples/Makefile.am,
1406 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1407 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1409 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1411 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1412 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1415 2005-10-27 Ross Burton <ross@openedhand.com>
1417 * dbus/dbus-marshal-header.c:
1420 * glib/dbus-gobject.c:
1421 Stop compiler warning.
1423 2005-10-25 Ross Burton <ross@openedhand.com>
1426 * dbus/dbus-server-unix.c:
1427 * dbus/dbus-transport-unix.c:
1428 * glib/dbus-gmain.c:
1429 * glib/dbus-gobject.c:
1430 Add some const keywords.
1432 2005-10-25 Ross Burton <ross@openedhand.com>
1434 * doc/dbus-specification.xml:
1435 Document the NoReply annotation.
1437 * glib/dbus-binding-tool-glib.h:
1438 * glib/dbus-binding-tool-glib.c:
1439 Respect the NoReply annotation.
1441 2005-10-24 Robert McQueen <robot101@debian.org>
1443 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1444 derive from unicode instead of str, and encode/decode UTF-8 when
1445 marshalling/unmarshalling bus messages
1447 * python/introspect_parser.py: encode introspection data as UTF-8
1448 before passing the buffer into libxml2
1450 * test/python/test-client.py: add unicode test strings
1452 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1453 ignore generated python test files
1455 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1457 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1458 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1459 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1461 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1462 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1463 when constructing struct signatures
1465 * python/_dbus.py (Bus): handle private connections using the
1466 private keyword in the constructor. defaults to private=False
1467 (Bus::close): new method to close a connection to the bus
1469 * python/dbus_bindings.pyx (Connection::close): renamed method
1470 was previously called disconnect
1471 (bus_get): now supports getting a private connection
1473 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1474 keyword is set to True. if it is, execute the method without waiting
1476 (ProxyObject::_introspect_execute_queue): new method for executing
1477 all the pending methods that were waiting for the introspect to
1478 finish. this is called when introspect either succeeds or fails
1479 (ProxyObject::_introspect_error_handler): call queued methods
1481 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
1483 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1484 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1486 * python/service.py (Object::_message_cb): handle exceptions correctly
1487 by sending them over the wire to the calling app. This makes sure
1488 the client returns immediately instead of waiting the 15 seconds to
1491 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
1492 Add a test to benchmark how long it takes to introspect a service and
1493 call a method which returns a large element (pretty fast)
1495 * test/python/test-service.py (TestObject::GetComplexArray): new test
1496 method which pushes a lot of data
1498 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1500 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
1501 reclaim memory outside of the loop and use del istead of just setting
1504 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1506 * python/service.py (ObjectType::_reflect_on_signal): Always close
1507 signal tag even when there are no arguments
1509 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1511 * configure.in: Set mono, mono-docs and Qt3 to default
1512 to no instead of auto when building. These bindings do not
1513 have full time maintainers and will not be supported for the
1516 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
1518 patches from Michael Krivoruchko <misha at sun.com>:
1520 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1521 _dbus_connection_message_sent,
1522 _dbus_connection_send_preallocated_unlocked_no_update,
1523 _dbus_connection_pop_message_link_unlocked): handle the case when path
1524 is NULL when calling _dbus_verbose
1526 * configure.in: check for functions getpeerucred and getpeereid
1528 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
1529 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
1530 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
1531 Patch was only tested on Solaris 10 x86 so it might be issues
1532 with other platforms (i.e. BSDs and MacOSX)
1535 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
1537 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
1538 instead of marshal basic so we can handle recursive types in a variant
1540 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1543 * test/glib/test-service-glib.c, test-service-glib.xml
1544 (my_object_echo_variant [EchoVariant],
1545 my_object_process_variant_of_array_of_ints123
1546 [ProcessVariantOfArrayOfInts123]):
1547 Add two test methods
1549 * python/introspect_parser.py: New module for parsing introspect
1552 * python/dbus_bindings.pyx:
1553 (various places): when throwing errors fix to use errormsg instead
1554 of message local variable because Pyrex can get confused with other
1555 message variables (initial patch by Robert McQueen
1556 <robert.mcqueen at collabora.co.uk>)
1557 (MessageIter::parse_signature_block): new method for getting the next
1558 block in a signiture.
1559 (MessageIter::append_strict): new method for appending values strictly
1560 using the passed in signature instead of guessing at the type
1561 (MessageItter:: append_dict, append_struct, append_array): use
1562 signatures to marshal children if the signature is available
1564 * python/exceptions.py (IntrospectionParserException): new exception
1566 * python/proxies.py (ProxyMethod::__call__): Marshal args with
1567 introspected signatures if available, else we fall back to the
1568 old way of doing things.
1569 (ProxyObject::_introspect_reply_handler ): parse introspection data
1571 * python/service.py (ObjectType::_reflect_on_method): Properly
1572 terminate <method> if there are no args in the reflection data
1574 * test/python/test-client.py: add tests for talking with the GLib
1575 test server. This gives us better coverage for introspection since
1576 python to python will always generate arguments as variants. It also
1577 allows us to test the robustness of the GLib bindings and interlanguage
1581 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
1583 * bus/driver.c (bus_driver_handle_introspect): Add signals
1584 to the introspect data. (patch from Daniel P. Berrange
1585 <dan at berrange.com>)
1587 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1589 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1590 _dbus_connection_run_builtin_filters): Changed these to
1591 be unlock_no_update functions and call
1592 _dbus_connection_send_unlocked_no_update instead of
1593 dbus_connection_send to avoid locking errors.
1595 * doc/TODO: Removed the make Ping test TODO
1597 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1599 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1600 We now copy the message from a DBusError and then free
1601 the error object befor throwing the error
1603 * glib/dbus-glib-tool.c: removed extra comma at the end of the
1604 DBusBindingOutputMode enum which was causing a warning.
1605 #include <time.h> so using time_t is explicitly defined
1607 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1609 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1611 (internal_bus_get): new method that take over the heavy lifting
1612 of dbus_bus_get and adds the ability to get a private connection
1614 (dbus_bus_get): wrapper to internal_bus_get that provides the same
1615 interface as in previous versions
1616 (dbus_bus_get_private): new method that is a wrapper to
1617 internal_bus_get to get a private connection to the bus
1620 (dbus_bus_get_private): add as a public libdbus interface
1622 - dbus-1.pc.in: output system_bus_default_address and
1623 sysconfdir variables so apps can use them when compiling
1625 2005-09-23 Harald Fernengel <harry@kdevelop.org>
1626 * dbus/qt: New Qt bindings
1628 2005-09-12 Waldo Bastian <bastian@kde.org>
1630 * dbus/dbus-marshal-validate.c,
1631 doc/dbus-specification.xml, test/Makefile.am,
1632 test/test-names.c: allow hyphens in bus names.
1634 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1636 * test/data/auth/fallback.auth-script: we don't
1637 retry the EXTERNAL method when we know its going
1640 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1642 * dbus/dbus-connection-internal.h: rename
1643 (add|remove|toggle)_(watch|timeout) to unlocked()
1645 * dbus/dbus-connection.c: ditto.
1647 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1648 Update some callers for the renaming.
1650 2005-09-10 Mark McLoughlin <mark@skynet.ie>
1652 * dbus/dbus-auth.c: (record_mechanisms): don't
1653 retry the first auth mechanism because we know
1654 we're just going to get rejected again.
1656 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1657 Fix thinko ... and what a nasty little bugger to
1658 track down you were ...
1660 * dbus/dbus-connection.c:
1661 (_dbus_connection_add_watch),
1662 (_dbus_connection_remove_watch): add note about
1663 these needing the connection to be locked.
1664 (_dbus_connection_get_dispatch_status_unlocked):
1665 set status to DATA_REMAINS when we queue the
1666 disconnected message.
1669 (bus_dispatch): fix warning.
1670 (check_existent_service_no_auto_start):
1671 Expect ChildSignaled error too.
1672 (check_existent_hello_from_self): fix another
1675 2005-09-08 Joe Shaw <joeshaw@novell.com>
1677 Patches from James Willcox <snorp@snorp.net>
1679 * mono/Makefile.am: Add Int16.cs and UInt16.cs
1681 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1682 support array "out" parameters.
1684 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1685 for 16-bit int support.
1687 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
1691 * Patch from Steve Grubb:
1692 - bus/activation.c (bus_activation_service_reload_test): clean up
1694 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
1695 - dbus/dbus-message-factory.c (generate_special): fix a couple of
1696 buffer overflows in the test suite. This is non critical because
1697 it can not be exploited and this code is only run when doing a
1700 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1701 - configure.in: Don't check and link against kdecore, only qt headers
1702 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1703 - gcj/org/freedesktop/dbus/Makefile.am:
1704 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1705 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1706 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1707 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1708 - tools/Makefile.am: Add platform extentions to binaries
1709 (i.e. .exe on windows)
1712 - Make it so if no suitable version of python is found we only
1713 disable building python instead of exiting the configure script
1714 - Require version 2.4 of glib for glib bindings
1715 - Up version to 0.50
1717 * python/__init__.py: Sync version with libdbus to (0,50,0)
1719 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1721 * dbus/dbus-object-tree.c (find_subtree_recurse):
1722 a couple of optimizations (bug #710):
1723 - do a binary search in the tree
1724 - insert a new child at the right place directly, no need for
1726 - do the "double alloc" thing when allocating children
1728 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
1730 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1732 * python/dbus_bindings.pyx: Memory management foo
1733 (global): remove hacky _user_data_references global list
1734 (GIL_safe_cunregister_function_handler): userdata now stuffed into
1735 tuples. Unref user_data
1736 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1737 (Connection::__del__): Remove and replace with __dealloc__ method
1738 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
1739 to keep tuple from being deallocated instead of the global var hack
1740 (Connection::register_object_path): Stuff user_data into a tuple.
1741 Use Py_INCREF to keep tuple from being deallocated instead of the
1743 (Connection::register_fallback): Stuff user_data into a tuple.
1744 Use Py_INCREF to keep tuple from being deallocated instead of the
1746 (GIL_safe_pending_call_notification): Don't unref the message
1747 because it gets unreffed when going out of scope. Py_XDECREF
1749 (PendingCall::__del__): Remove and replace with __dealloc__ method
1750 (PendingCall::set_notify): ref the pending call because we will
1751 need it to stick around for when the notify callback gets called
1752 (Message::__del__): Remove and replace with __dealloc__ method
1754 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
1755 gthreads_init to match up with the dbus call
1757 * python/glib.py (init_threads): Changed to threads_init to match
1758 up with gobject.threads_init(). init_threads is kept for backwards
1759 compat but will most likely be deprecated in the future
1761 * test/python/test-client.py:
1762 - revamp to use Python's unittest functionality
1763 - add async call tests
1764 - setup threads in glib and dbus so we make sure locks are working
1766 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1768 * python/dbus_bindings.pyx
1769 (_pending_call_notification, cunregister_function_handler,
1770 cmessage_function_handler): All callback functions have been rearranged
1771 to workaround a bug in Pyrex when working with the GIL which is Python's
1772 global lock when dealing with threads. They have been split into
1773 a wrapper function (which assumes the name of the old function) and
1774 a _GIL_safe_<function name> function which contains the functionality
1775 of the old function. This ensures that Pyrex does not write code
1776 the lock is released.
1779 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1781 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1782 GIL global lock when calling back into Python
1784 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
1788 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1790 * bus/policy.c (bus_policy_allow_user): change default "user is
1791 allowed" to be "user has same uid as the bus itself"; any
1792 allow/deny rules will override.
1794 * bus/session.conf.in: don't allow all users, since now by default
1795 the user that ran the bus can connect.
1797 2005-08-26 Colin Walters <walters@verbum.org>
1799 * tools/dbus-print-message.c (print_message): Flush stdout
1800 after printing a message, so that redirecting to a file, then
1801 hitting Ctrl-C works.
1803 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
1805 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1806 (EmptyMessage): new class that subclasses Message. This is a workaround
1807 to a Pyrex bug that fails to call __del__ when the Message object goes out
1808 of scope. For some reason subclassing Message fixes this bug
1809 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1810 - s/Message(_create=0)/EmptyMessage everywhere else
1812 * test/python/test-{server|client}.py: add the python/.libs directory
1813 to the lookup path so dbus_bindings and dbus_glib_bindings don't
1814 get picked up from the system
1816 2005-08-25 Colin Walters <walters@verbum.org>
1818 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1819 to Ryan Lortie for the suggestion.
1821 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1823 * test/python: Add python regression test
1825 * configure.in: Add test/python/Makefile
1827 * test/Makefile.am: Add the python directory to SUBDIRS
1829 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1834 (Interface::connect_to_signal): propigate keywords for match on args
1835 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1837 * python/proxies.py (ProxyObject::connect_to_signal):
1838 propigate keywords for match on args
1840 * Makefile.am: point everything to pyexecdir since python borks
1843 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1847 2005-08-23 Colin Walters <walters@verbum.org>
1849 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1851 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1853 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1854 to fix some wranings. We now use dbus_bindings.DBusConnection instead
1855 of defining DBusConnection ourselves.
1857 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
1859 * python/dbus.pth: New path file to fix up problems when installing
1860 c libraries to lib64 and python files to lib.
1862 * python/Makefile.am: install dbus.pth in the correct spot
1864 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
1865 * ChangeLog: clean up my last entry a bit
1867 * doc/introspect.xsl: New stylesheet for converting introspection data
1868 into browser renderable xhtml. Contributed by Lennart Poettering.
1870 * doc/introspect.dtd: Fixups in the introspect format from Lennart
1873 * doc/dbus-tutorial.xml:
1874 - Add Colin Walter to the Authors section for authoring the GLib
1876 - Add descriptions of the new signature and type functionality
1877 in the Python complex type mapping section
1878 - Add a sidenote on the new args matching functionality in
1880 - Fixed up some of the examples to use the gobject.MainLoop
1884 (Bus::_create_args_dict): New. Converts a hash of arg matches
1885 to a more useable format
1886 (Bus::add_signal_receiver): add a **keywords parameter for catching
1887 arg match parameters
1888 (Bus::remove_signal_receiver): add a **keywords parameter for catching
1889 arg match parameters
1891 * python/matchrules.py:
1892 (MatchTree::exec_matches): Check for arg matches
1893 (SignalMatchRule::add_args_match): New method
1894 (SignalMatchRule::execute): Added args_list parameter as an optimization
1895 so we don't have to marshal the args more than once
1896 (SignalMatchRule::match_args_from_list): New method that checks to see
1897 if the rule's arg matches match an argument list. Only arguments
1898 set in the rule are checked.
1899 (SignalMatchRule::match_args_from_rule): New method that checks to see
1900 if the rule's arg matches match another rule's. All args have to match
1901 in order for this method to return true. If either rule has more args
1902 then it is not a match.
1903 (SignalMatchRule::is_match): Add args match
1904 (SignalMatchRule::repr): Add args to the final output if they exist
1906 2005-08-17 Ross Burton <ross@burtonini.com>
1908 * glib/dbus-gproxy.c:
1909 (dbus_g_proxy_call_no_reply): unref the message once sent.
1910 (dbus_g_proxy_call): protect against NULL proxy.
1912 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
1914 * python/__init__.py: Version updated (0, 43, 0)
1916 * python/dbus_bindings.pyx:
1917 - Fixed type objects to have self passed into __init__
1918 - Added the Variant type
1919 - Add the ability to specify types or signatures for Array, Variant
1921 (Connection::send_with_reply_handlers): return a PendingCall object
1922 (_pending_call_notification): handle the case when an error is returned
1923 without an error message in the body
1924 (MessageIter::get_boolean): return True or False instead of an integer
1925 (MessageIter::python_value_to_dbus_sig): add direct checking of types
1926 and add checks for objects with embeded signatures or types (Array,
1927 Variant and Dictionary)
1928 (MessageIter::append_byte): handle case when the value is a dbus.Byte
1929 (MessageIter::append_dict): handle embeded types or signatures
1930 (MessageIter::append_array): handle embeded types or signatures
1931 (MessageIter::append_variant): new method
1933 * python/proxies.py:
1934 (DeferedMethod): New. Dummy executable object used when queuing calls
1935 blocking on introspection data
1936 (ProxyMethod::__call__): add the timeout keyword for specifying longer
1937 or shorter timeouts for method calls
1938 (ProxyObject): Add first pass at an introspection state machine
1939 (ProxyObject::__init__): Add introspect keyword for turing off an on
1941 (ProxyObject::_Introspect): Internal Introspect call that bypasses
1942 the usual mechanisms for sending messages. This is to avoid a deadlock
1943 where the Intospect call would be queued waiting for the Introspect
1945 (ProxyObject::_introspect_reply_handler): New. This method is called
1946 when introspection returns with no error
1947 (ProxyObject::_introspect_error_handler): New. This method is called
1948 when introspection encounters an error
1949 (ProxyObject::__getattr__): Code to handle different introspection
1950 states. Queue async calls or block blocking calls if we are
1951 introspecting. Pass through as normal if we are not or are done with
1954 * python/service.py: Import signal and method from decorators.py
1956 * python/types.py: Add Variant type
1958 2005-08-16 Colin Walters <walters@verbum.org>
1960 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1961 DBusError message is NULL.
1963 2005-08-09 Havoc Pennington <hp@redhat.com>
1965 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1966 malloc'd copy of the name parameter
1968 2005-08-09 Havoc Pennington <hp@redhat.com>
1970 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1971 warning if the reply serial is set to 0
1973 2005-08-04 Colin Walters <walters@verbum.org>
1975 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1976 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1977 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1978 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1979 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1980 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1981 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1982 * glib/dbus-gvalue.h (dbus_g_value_types_init)
1983 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1984 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1986 Prefix name with _ to ensure they're not exported. All callers
1989 * glib/dbus-gvalue.c (typecode_to_gtype)
1990 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1991 (signature_iter_to_g_type_dict)
1992 (signature_iter_to_g_type_array)
1993 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1994 (dbus_gtypes_from_arg_signature):
1995 Move to dbus-gsignature.c.
1997 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1998 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1999 (dbus_binding_tool_output_glib_client): Ditto.
2001 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2002 and dbus-gsignature.h
2004 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2007 2005-08-03 Colin Walters <walters@verbum.org>
2009 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2010 catch any incompatible changes accidentally made.
2012 2005-08-03 Havoc Pennington <hp@redhat.com>
2014 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2015 typo, from Julien Puydt
2017 * bus/connection.c (bus_connection_disconnected): we were always
2018 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2020 2005-08-01 Colin Walters <walters@verbum.org>
2022 Patch from Joe Markus Clarke:
2024 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2027 2005-08-01 Colin Walters <walters@verbum.org>
2029 Patch from Joe Markus Clarke:
2031 * tools/dbus-send.c (main):
2033 Don't use C99 style initializers (bug #3933).
2035 2005-08-01 Colin Walters <walters@verbum.org>
2037 Patch from Joe Markus Clarke:
2039 * glib/dbus-gvalue.c (dbus_g_value_types_init):
2040 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
2041 * glib/dbus-gobject.c (write_interface):
2043 Don't use C99 style initializers (bug #3933).
2045 2005-07-31 Havoc Pennington <hp@redhat.com>
2047 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2048 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2050 2005-07-30 Havoc Pennington <hp@redhat.com>
2052 * fix a bunch of Doxygen warnings and mistakes
2054 2005-07-30 Havoc Pennington <hp@redhat.com>
2056 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2057 DBUS_BUILD_TESTS since it's now used in production code
2059 2005-07-29 Havoc Pennington <hp@redhat.com>
2061 * test/glib/test-profile.c (write_junk): initialize the junk
2062 buffer so valgrind doesn't have a breakdown
2064 2005-07-29 Havoc Pennington <hp@redhat.com>
2066 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2067 (match_rule_matches): remove unused arg
2068 (test_matching): add tests for match_rule_matches()
2070 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2071 do arg0='foo' arg5='bar' in the match rules
2072 (match_rule_matches): don't match if the arg0='foo' doesn't match.
2074 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2076 2005-07-29 Ross Burton <ross@openedhand.com>
2078 * dbus/dbus-connection.c:
2079 Don't create a DBusCondVar which is never used.
2081 2005-07-27 Ross Burton <ross@openedhand.com>
2083 * dbus/dbus-message.c:
2084 Reduce the size of the maximum cached message to 10K.
2086 2005-07-25 Ross Burton <ross@openedhand.com>
2088 * glib/dbus-gproxy.c:
2089 Remove matches when all proxies are unregistered.
2091 2005-07-24 Colin Walters <walters@verbum.org>
2093 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2094 typedata; recursive arrays won't have it.
2096 * test/glib/test-dbus-glib.c:
2097 * test/glib/test-service-glib.c:
2098 * test/glib/test-service-glib.xml: Add recursive arrays tests.
2100 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
2102 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2103 proxies.py, service.py: Cleanup of code after running it through the
2104 pyflakes code checker mostly dealing with undefined names.
2105 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2107 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2109 * NEWS: Update to 0.35.2
2111 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2113 * python/_dbus.py: Remove import of the dbus.services
2114 module as it no longer exists (patch from Dimitur Kirov)
2116 * python/service.py (Object::__init__): Fixed typo
2117 s/name/bus_name (patch from Dimitur Kirov)
2119 * python/examples/example-signal-emitter.py: import dbus.glib
2120 to get the main loop and use glib mainloop instead of gtk so
2121 X doesn't have to be running.
2123 * python/examples/example-signal-recipient.py: import dbus.glib
2124 to get the main loop and use glib mainloop instead of gtk so
2125 X doesn't have to be running. Import the decorators module
2128 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
2129 didn't pick up on but are needed to build
2131 * configure.in: upped version to 0.35.2
2133 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2134 added Colin Walters' SELinux API rename patch from head
2135 s/unix sercurity context/selinux security context/
2137 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
2139 * python/Makefile.am: dbus_binding.pxd.in should be included
2140 in EXTRA_DIST not dbus_binding.pxd
2141 fix up $(srcdir) hopefully for the last time
2143 * NEWS: Update to 0.35.1
2145 2005-07-16 Colin Walters <walters@verbum.org>
2147 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2148 from bus_driver_handle_get_connection_unix_security_context. Update for
2150 (message_handlers): Update for renames.
2152 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2153 _dbus_string_init failure correctly.
2154 (bus_selinux_append_context): Convert SID to context. Append it
2156 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2159 * bus/selinux.h: Update prototype.
2161 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2162 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2164 2005-07-15 Colin Walters <walters@verbum.org>
2166 * doc/TODO: Add note about convenience wrappers.
2168 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2170 * NEWS: Update to 0.35
2172 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2174 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2175 so distcheck doesn't fail
2177 * glib/examples/Makefile.am: Add example-service.xml and
2178 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2180 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2181 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2183 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2184 compiler looks in the right places during distcheck
2186 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2188 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2191 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2193 * python/examples/example-service.py,
2194 python/examples/example-signal-emitter.py: Fixed up examples
2197 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2199 * python/__init__.py: Upped to version (0,42,0) because of
2202 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2204 * ChangeLog: fix date in last entry
2206 * configure.in, bus/system.conf.in: add the ability to configure
2207 the system bus user at compiletime with the --with-dbus-user flag
2208 (patch from Kristof Vansant)
2210 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2212 * bus/dispatch.c, test/test-service.c: Add testcase
2213 for sending messages to oneself (TODO item).
2215 * python/service.py (class Object): Swap ordering of bus_name
2216 and object_path parameters to better support inheritance.
2218 * doc/dbus-tutorial.xml: change Python docs to reflect change
2219 in parameter ordering and fix the inheritance section.
2221 * doc/TODO: remove sending message to oneself TODO item
2223 2005-07-15 Ross Burton <ross@openedhand.com>
2225 * glib/dbus-gproxy.c:
2226 Fix a leak when calling methods via the proxy.
2228 2005-07-15 Colin Walters <walters@verbum.org>
2230 * bus/selinux.c (bus_selinux_append_context): Wrap in
2233 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2235 * python/_dbus.py (Bus::remove_signal_receiver):
2236 don't add a callback to the match if none has been passed in
2238 * python/matchrules.py (SignalMatchTree::remove): if the rule
2239 being matched does not have a callback treat it as a wildcard
2242 * doc/dbus-tutorial.xml: Add Python tutorial
2244 2005-07-14 Colin Walters <walters@verbum.org>
2247 (bus_driver_handle_get_connection_unix_security_context): New function.
2248 (message_handlers): Add.
2250 * bus/selinux.c (bus_selinux_append_context): New function; appends
2251 security context to message.
2253 * bus/selinux.h: Prototype.
2255 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2257 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2259 * bus/activation.c: clean up all tabs to be 8 spaces
2260 (bus_activation_activate_service): make sure we clean up
2263 * bus/dispatch.c: clean up all tabs to be 8 spaces
2264 (check_shell_fail_service_auto_start): New function
2265 tests to make sure we get fail properly when trying to auto start a service
2266 with a faulty command line
2267 (check_shell_service_success_auto_start): New function tests to make sure
2268 auto started services get the arguments on the command line
2270 * test/test-shell-service.c: Added service for testing auto-starting with
2271 command line arguments
2273 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2274 test/data/valid-service-files/debug-shell-echo-success.service.in:
2275 Added service files for testing auto-starting with command line arguments
2277 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2279 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2281 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2283 * dbus/Makefile.am: added new files to build.
2285 * bus/activation.c (bus_activation_activate_service): support
2286 activation commands with parameters.
2288 * test/shell-test.c: added test program for the shell parsing
2291 2005-07-13 David Zeuthen <davidz@redhat.com>
2293 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2294 64 bit signed and unsigned parameters
2296 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2298 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2300 * python/service.py (class Name): renamed BusName to make it clearer
2301 what the object is for (a name on the bus)
2303 * python/examples/example-service.py,
2304 python/examples/example-signal-emitter.py: change the Name object to
2307 2005-07-12 Colin Walters <walters@verbum.org>
2309 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2311 * tools/dbus-launch.c: Include sys/select.h.
2313 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2314 * python/dbus_bindings.pyx.in: removed
2316 * python/dbus_bindings.pyx: Added.
2317 - Fixed some memleaks (patch from
2318 Sean Meiners <sean.meiners@linspireinc.com>)
2319 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2320 own pxd file (Pyrex definition)
2321 - Broke out glib dependancies into its own pyx module
2323 * python/dbus_bindings.pdx: Added.
2324 - Defines C class Connection for exporting to other modules
2326 * python/dbus_glib_bindings.pyx: Added.
2327 - New module to handle lowlevel dbus-glib mainloop integration
2329 * python/glib.py: Added.
2330 - Registers the glib mainloop when you import this module
2332 * python/services.py: Removed (renamed to service.py)
2334 * python/service.py: Added.
2335 - (class Server): renamed Name
2337 * python/__init__.py: Bump ro version (0,41,0)
2338 -don't import the decorators or service module
2339 by default. These now reside in the dbus.service namespace
2341 * python/_dbus.py (Bus::__init__): Add code run the main loop
2342 setup function on creation
2344 * python/examples/example-service.py,
2345 python/examples/example-signal-emitter.py: update examples
2347 * python/examples/gconf-proxy-service.py,
2348 python/examples/gconf-proxy-service2.py: TODO fix these up
2350 * doc/TODO: Addition
2351 - Added a Python Bindings 1.0 section
2352 - added "Add match on args or match on details to match rules"
2355 2005-07-12 Colin Walters <walters@verbum.org>
2357 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2358 (statemachine-glue.h):
2359 * glib/examples/Makefile.am (example-service-glue.h)
2360 (example-signal-emitter-glue.h):
2361 * glib/Makefile.am (dbus-glib-error-switch.h):
2362 Add libtool --mode=execute so we use the built library instead
2363 of any installed one.
2365 2005-07-11 Colin Walters <walters@verbum.org>
2367 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2368 (dbus_g_value_types_init): Remove assertion.
2369 (dbus_g_value_get_g_type, dbus_g_value_open)
2370 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2371 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2372 functions related to DBusGValue. Now we marshal/demarshal
2373 structures as GValueArray.
2374 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2376 (signature_iter_to_g_type_array): Don't call
2377 signature_iter_to_g_type_struct.
2378 (signature_iter_to_g_type_struct): Delete.
2379 (dbus_gvalue_to_signature): Delete.
2380 (dbus_gvalue_to_signature): New function with same name as other
2381 one; we can convert structures to signatures.
2382 (demarshal_valuearray): New function.
2383 (get_type_demarshaller): Use it.
2384 (demarshal_recurse): Delete.
2385 (marshal_proxy): New function.
2386 (marshal_map): Warn if we can't determine signature from type.
2387 (marshal_collection_ptrarray): Ditto.
2388 (marshal_collection_array): Ditto.
2389 (get_type_marshaller): Use marshal_valuearray.
2390 (marshal_recurse): Delete.
2391 (_dbus_gvalue_test): Add some tests.
2393 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2394 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2395 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2396 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2397 (dbus_g_value_free): Remove prototypes.
2399 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2402 * glib/examples/example-service.c:
2403 * glib/examples/example-client.c: Implement GetTuple.
2405 * test/glib/test-dbus-glib.c:
2406 * test/glib/test-service-glib.c:
2407 * test/glib/test-service-glib.xml: Add structure tests.
2409 2005-07-10 Colin Walters <walters@verbum.org>
2411 * doc/TODO: Knock off some GLib items with this patch.
2413 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2414 (_dbus_gvalue_signals_error): New functions.
2416 * glib/dbus-gvalue-utils.h: Prototype them.
2418 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2419 and change to not output const/retval flags for input args. All
2421 (invoke_object_method): Refactor to handle return values. Add
2422 some more comments in various places. Remove debug g_print.
2424 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2426 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2428 (compute_gsignature): New function; refactored from code from
2429 compute_marshaller and compute_marshaller_name. Enhance to
2430 handle return values and async ops more cleanly. Update for
2431 async ops returning NONE instead of BOOLEAN.
2432 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2433 and output appropriate string.
2434 (generate_glue): Handle return value annotation. Also don't dump
2435 constness flag for input arguments.
2437 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2438 files shared between installed library and utilities.
2439 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2440 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2441 binding tool can access gtype utility functions.
2443 * test/glib/test-service-glib.c:
2444 * test/glib/test-service-glib.xml:
2445 * test/glib/test-dbus-glib.c: Add some tests for return values.
2447 2005-07-09 Colin Walters <walters@verbum.org>
2449 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2450 argument if available, not method.
2452 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2453 (invoke_object_method): First, remove some redundant
2454 GValues (object_value, error_value) in favor of working on
2455 array directly. Second, rework constness to be less buggy.
2456 Now we iterate directly over the argument metadata instead
2457 of parallel iterating over output signature and metadata.
2459 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2461 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2462 annotation on input args.
2464 2005-07-09 Colin Walters <walters@verbum.org>
2466 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2469 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2472 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2473 (method_dir_signature_from_object_info): Handle arg_iterate change.
2474 (write_interface): Ditto.
2475 (lookup_object_info): Don't barf if format_version is > 0.
2476 (invoke_object_method): Handle arg constness.
2478 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2479 (arg_info_new): Create.
2480 (arg_info_unref): Destroy.
2481 (arg_info_get_annotations, arg_info_get_annotation)
2482 (arg_info_add_annotation): New functions.
2484 * glib/dbus-gidl.h: Prototype them.
2486 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2487 args, disallow them in properties.
2488 (parse_annotation): Handle arg annotations.
2490 * test/glib/test-service-glib.xml:
2491 * test/glib/test-service-glib.c: Update to make some methods
2494 2005-07-08 Colin Walters <walters@verbum.org>
2496 * test/glib/test-service-glib.xml:
2497 * test/glib/test-service-glib.c:
2498 * test/glib/test-dbus-glib.c: Test a{sv}.
2500 * glib/examples/statemachine/statemachine.c:
2501 * glib/examples/statemachine/statemachine-server.c:
2502 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2503 add progress bar, etc.
2505 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2506 needed anymore due to generic array/map marshalling.
2507 (dbus_g_value_types_init): Don't register basic arrays or the
2509 (dbus_gtype_from_signature_iter): Don't try to recurse into
2511 (dbus_gtype_to_signature): Check collection/map before type
2513 (demarshal_garray_basic): Renamed to demarshal_collection_array.
2514 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2515 generic map creation/append functions instead of hash table
2517 (get_type_demarshaller): Handle maps.
2518 (demarshal_collection): Dispatch on collection type to either
2519 demarshal_collection_ptrarray or demarshal_collection_array.
2520 (get_type_marshaller): Handle maps.
2521 (marshal_collection): Dispatch collection type to either
2522 marshal_collection_ptrarray or marshal_collection_array.
2523 (_dbus_gvalue_test): New test.
2525 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2526 (hash_free_from_gtype): Use it to free GValues.
2527 (hashtable_append): New function.
2528 (ptrarray_append): Fix prototype.
2529 (slist_append): Ditto.
2530 (_dbus_gvalue_utils_test): Extend tests.
2532 * glib/dbus-gtype-specialized.c
2533 (dbus_g_type_specialized_init_append): Renamed from
2534 dbus_g_type_specialized_collection_init_append. Remove const from
2535 value, since we steal it.
2536 (dbus_g_type_specialized_map_append): New function.
2538 * glib/dbus-gtype-specialized.h: Update prototypes.
2539 Add DBusGTypeSpecializedMapAppendFunc.
2541 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2544 * glib/dbus-gtest.h: Prototype it.
2546 2005-07-08 Ross Burton <ross@openedhand.com>
2549 Add DBysGAsyncData for the async bindings.
2551 * glib/dbus-binding-tool-glib.c:
2552 Re-enable the async bindings.
2554 * test/glib/test-dbus-glib.c:
2555 Add a test for the generated async bindings.
2557 2005-07-08 Colin Walters <walters@verbum.org>
2559 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2562 2005-07-08 Colin Walters <walters@verbum.org>
2564 * tools/Makefile.am: Kill of print-introspect in favor of using
2565 dbus-send --print-reply=literal.
2567 * test/glib/test-service-glib.xml:
2568 * test/glib/test-service-glib.c (my_object_get_objs): New test
2571 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2572 (main): Test GetObjs.
2574 * glib/examples/statemachine/Makefile.am:
2575 * glib/examples/statemachine/sm-marshal.list:
2576 * glib/examples/statemachine/statemachine-client.c:
2577 * glib/examples/statemachine/statemachine-server.c:
2578 * glib/examples/statemachine/statemachine-server.xml:
2579 * glib/examples/statemachine/statemachine.c:
2580 * glib/examples/statemachine/statemachine.h:
2581 * glib/examples/statemachine/statemachine.xml:
2585 * glib/examples/example-service.c (main): Move invocation
2586 of dbus_g_object_type_install_info earlier, to emphasize it
2587 should only be done once.
2589 * glib/examples/example-signal-emitter.c (main): Ditto.
2591 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2593 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2594 (dbus_gvalue_marshal): Update prototypes.
2596 * glib/dbus-gvalue.c: Update all marshalling functions to take
2597 const GValue instead of GValue.
2598 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2600 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2602 (dbus_gtype_to_signature): Handle generic collecitons and maps.
2603 Return a newly-allocated string.
2604 (demarshal_proxy, demarshal_object_path, demarshal_object)
2605 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2606 we get the wrong types from message.
2607 (get_type_demarshaller): New function, extracted from
2608 dbus_gvalue_demarshal.
2609 (demarshal_collection): New function, demarshals generic
2611 (dbus_gvalue_demarshal): Just invoke result of
2612 get_type_demarshaller. Throw error if we don't have one.
2613 (marshal_garray_basic): Abort on OOM.
2614 (get_type_marshaller): New function, extracted from
2615 dbus_gvalue_marshal.
2616 (collection_marshal_iterator, marshal_collection): New functions;
2617 implements generic marshalling for an iteratable specialized
2619 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2621 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2623 (ptrarray_value_from_gvalue): Ditto.
2624 (ptrarray_append, ptrarray_free): New functions.
2625 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
2626 (slist_append, slist_end_append, slist_free): New functions.
2627 (dbus_g_type_specialized_builtins_init): Add append fuctions
2628 for GPtrArray and GSList. Register GSList.
2629 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2631 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2633 (dbus_g_type_specialized_collection_init_append)
2634 (dbus_g_type_specialized_collection_append)
2635 (dbus_g_type_specialized_collection_end_append): Prototype.
2636 (DBusGTypeSpecializedCollectionVtable): Add append_func and
2639 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
2640 (dbus_g_type_specialized_collection_append)
2641 (dbus_g_type_specialized_collection_end_append): New functions.
2642 (dbus_g_type_map_value_iterate): Take const GValue.
2643 (dbus_g_type_collection_value_iterate): Ditto.
2645 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2646 _dbus_gvalue_utils_test.
2648 * glib/dbus-gtest.h: Prototype it.
2650 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2651 using uninitialized owner_list.
2652 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2654 (dbus_g_proxy_end_call_internal): Update to use error set
2655 from dbus_gvalue_demarshal instead of setting it here.
2656 (dbus_g_proxy_begin_call): Move return_if_fail here.
2658 * glib/dbus-gobject.c (write_interface): Update for
2659 dbus_gtype_to_signature returning new string.
2661 * configure.in: Add glib/examples/statemachine.
2663 2005-07-08 Joe Shaw <joeshaw@novell.com>
2665 * configure.in: Add a configure option, --with-console-auth-dir
2667 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2668 new setting. Patch from Kay Sievers.
2670 2005-07-06 Colin Walters <walters@verbum.org>
2672 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2673 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2674 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2675 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2676 Delete in favor of dbus_g_proxy_begin_call and
2677 dbus_g_proxy_cancel_call.
2678 (DBusGProxyCall, DBusGProxyCallNotify): New.
2679 (dbus_g_proxy_begin_call): Change prototype to take callback, user
2680 data, and destroy function. This replaces
2681 dbus_g_pending_call_set_notify.
2682 (dbus_g_proxy_cancel_call): Prototype.
2683 (DBusGAsyncData): Delete, shouldn't be needed anymore.
2685 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2687 (struct _DBusGProxyManager): Add bus_proxy member, which is an
2688 internal proxy for calls to the bus. Remove
2689 pending_nameowner_calls, now the internal proxy keeps track.
2690 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2691 pending_nameowner_calls.
2692 (got_name_owner_cb): Update prototype, and use
2693 dbus_g_proxy_end_call.
2694 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2695 (dbus_g_proxy_manager_register): Delete directly libdbus code in
2696 favor of using internal proxy.
2697 (dbus_g_proxy_manager_unregister): Update to use
2698 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2699 (dbus_g_proxy_init): Initialize pending calls map.
2700 (dbus_g_proxy_constructor): New.
2701 (dbus_g_proxy_class_init): Add get/set property functions,
2702 constructor, and add NAME, PATH, and INTERFACE properties.
2703 (cancel_pending_call): New function.
2704 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2706 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2707 (GPendingNotifyClosure): New structure.
2708 (d_pending_call_notify, d_pending_call_free): Moved here from
2710 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2712 (manager_begin_bus_call): New internal function for talking to
2714 (dbus_g_proxy_new): Construct object using GObjet properties.
2715 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2716 Create closure of same, and insert call into map of pending calls.
2717 (dbus_g_proxy_end_call_internal): Take call id instead of pending
2718 call. Look up pending call in current set. Remove it when we've
2720 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2721 (dbus_g_proxy_begin_call): Change API to take callback, user data,
2722 and destroy function directly.
2723 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2724 (dbus_g_proxy_call): Invoke with NULL callback.
2725 (dbus_g_proxy_cancel_call): New function, replaces
2726 dbus_g_pending_call_cancel.
2728 * glib/dbus-gparser.c (validate_signature): Fix call to
2731 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2732 New quark for attaching metadata to GType.
2733 (info_hash): Delete.
2734 (lookup_object_info): Look up using quark.
2735 (dbus_g_object_type_install_info): Check that a type is classed,
2736 not that it's an object. Also just install type data using quark
2737 instead of using global hash.
2739 * glib/dbus-glib.c (dbus_g_pending_call_ref)
2740 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2741 (GPendingNotifyClosure): Delete.
2742 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2743 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2745 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2746 client method generation until we can fix it...
2748 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2749 (load_from_service_thread_func): Ditto.
2751 * tools/dbus-names-model.c (struct NamesModel): Hold
2753 (have_names_notify): Update prototype, use
2754 dbus_g_proxy_cancel_call.
2755 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2757 * tools/dbus-monitor.c (filter_func): Update for print_message
2760 * test/glib/test-dbus-glib.c: Add more tests for async
2761 invocations. Update many begin_call/end_call pairs to just use
2764 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
2765 allows us to dump print-introspect.c.
2767 * tools/dbus-print-message.h (print_message): Add literal argument
2768 to print_message which is intended to allow printing arguments without
2769 metadata like "string=".
2771 * tools/dbus-print-message.c (print_iter): Add literal argument.
2772 (print_message): Allow printing string messages literally.
2774 2005-07-05 Colin Walters <walters@verbum.org>
2776 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2777 Remove value refcount leak, original patch from Jorn Baayen
2778 <jorn@openedhand.com>. Also remove useless extra value in favor
2779 of prepending to value array directly.
2781 2005-07-02 Colin Walters <walters@verbum.org>
2783 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2785 2005-07-01 Colin Walters <walters@verbum.org>
2787 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2789 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2790 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2791 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2792 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2794 2005-06-30 Colin Walters <walters@verbum.org>
2796 * test/glib/test-dbus-glib.c:
2797 * test/glib/test-service-glib.c:
2798 * test/glib/test-service-glib.xml: Update tests for new error
2799 setting bits, also add async tests (patch from Ross Burton).
2801 * test/glib/Makefile.am (test_service_glib_LDADD): Add
2802 DBUS_GLIB_THREADS_LIBS.
2804 * glib/dbus-gproxy.c (get_name_owner)
2805 (dbus_g_pending_call_end_valist): Ditto.
2807 * glib/dbus-gobject.c (error_metadata): New mapping from GError
2808 domain (GQuark) to DBusGErrorInfo.
2809 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2810 quark in error_metadata. Take message interface as default
2811 error message interface.
2812 (gerror_to_dbus_error_message): Pass message interface.
2813 (dbus_set_g_error): Resurrected.
2814 (dbus_g_error_info_free): New function.
2815 (dbus_g_object_type_install_info): Use g_type_class_ref instead
2816 of _peek to actually create the object class if it hasn't been
2818 (dbus_g_error_domain_register): New function.
2820 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2822 * glib/dbus-gparser.c (validate_signature): Ditto.
2824 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2825 (dbus_g_error_domain_register): Prototype.
2827 * glib/dbus-glib.c (dbus_g_error_set): Delete.
2830 2005-06-29 Colin Walters <walters@verbum.org>
2832 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
2833 DBUS_TYPE_G_OBJECT_PATH.
2835 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2836 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2837 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
2838 (dbus_g_object_path_get_g_type): New function.
2839 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2840 to DBUS_TYPE_G_OBJECT_PATH by default.
2841 (demarshal_proxy): Remove unused name variable.
2842 (demarshal_object_path, marshal_object_path): New functions.
2843 (demarshal_proxy_array, marshal_proxy_array): Delete.
2845 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2846 DBUS_TYPE_G_OBJECT_PATH to char *.
2847 (dbus_g_type_get_lookup_function): Map builtin
2848 DBUS_TYPE_G_OBJECT_PATH.
2850 * test/glib/test-dbus-glib.c
2851 * test/glib/test-service-glib.c (my_object_objpath):
2852 Adapt tests to new object path marshalling.
2854 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
2856 * configure.in: force check for Python >= 2.4
2858 2005-06-29 Colin Walters <walters@verbum.org>
2860 Patch from Ross Burton <ross@openedhand.com>
2862 * glib/dbus-gobject.c (invoke_object_method): Unset object
2863 value in all cases, not only in async case.
2865 2005-06-29 Colin Walters <walters@verbum.org>
2867 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2868 name_call for keeping track of any outgoing GetNameOwner call.
2869 Also add for_owner and associated.
2870 (struct _DBusGProxyManager): Add owner_names, which is hash table
2871 that maps a base name to a list of names it owns (that we're
2872 interested in). Add pending_nameowner_calls which is a list of
2873 all outstanding GetNameOwner; avoids us having to iterate over
2874 every proxy. Add unassociated_proxies which keeps track of name
2875 proxies with no associated name owner.
2876 (dbus_g_proxy_manager_unref): Destroy owner_names.
2877 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2879 (find_name_in_info, name_owner_foreach)
2880 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2881 (dbus_g_proxy_manager_monitor_name_owner)
2882 (dbus_g_proxy_manager_unmonitor_name_owner)
2883 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2884 New functions; they manipulate the owner_names mapping.
2885 (got_name_owner_cb): New function.
2886 (get_name_owner): New function, extracted from
2887 dbus_g_proxy_new_for_name_owner.
2888 (dbus_g_proxy_manager_register): For now we need to keep track of
2889 all NameOwnerChanged. Also if the proxy is for a name, if we
2890 don't already know the name owner, queue a new GetNameOwner
2891 request and add it to our list of unassociated proxies. Otherwise
2893 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2894 cancel any pending GetNameOwner call, etc.
2895 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
2896 the owner_names mapping to look up the current names for the
2897 signal source, and dispatch to any proxies for that name.
2898 (dbus_g_proxy_new): Initialize new members.
2899 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2900 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2901 (dbus_g_pending_call_end_valist): New function, extracted from
2902 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
2903 but want to use the GLib infrastructure. Also note how many
2904 arguments in reply were over.
2905 (dbus_g_pending_call_end): New function, just call
2906 dbus_g_pending_call_end_valist.
2907 (dbus_g_proxy_end_call_internal): Just call
2908 dbus_g_pending_call_end_valist.
2910 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2911 of builtin marshaller for STRING_STRING_STRING.
2913 * test/glib/test-dbus-glib.c:
2914 * test/glib/test-service-glib.c:
2915 * test/glib/test-service-glib.xml:
2916 Extend tests to cover name proxies, destruction of owner proxies,
2919 * glib/examples/example-signal-recipient.c
2920 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2922 * tools/dbus-send.c (main): Print D-BUS error name in addition
2925 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
2927 * python/dbus_bindings.pyx.in (cunregister_function_handler,
2928 cmessage_function_handler): Patch from
2929 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2930 by using the Py_GILState_Ensure/Release to synchronize with the
2933 2005-06-28 Ray Strode <rstrode@redhat.com>
2935 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2936 babysitter helper process on last unref, bug #2813.
2938 2005-06-27 Colin Walters <walters@verbum.org>
2940 * test/glib/test-dbus-glib.c:
2941 * test/glib/test-service-glib.c:
2942 * test/glib/test-service-glib.xml:
2943 Test hash table signal emitting.
2945 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2946 types to their fundamental basis types, since this is what
2947 marshallers operate on. Also add an entry for VOID__BOXED.
2948 (dbus_g_object_register_marshaller_array): Convert to fundamental.
2950 2005-06-26 Havoc Pennington <hp@redhat.com>
2952 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2955 2005-06-26 Colin Walters <walters@verbum.org>
2957 * glib/dbus-glib.c (dbus_set_g_error): Delete.
2958 (dbus_g_error_set): New public function from its ashes; used by
2959 both service-side method implementation and GLib bindings
2961 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2962 (_dbus_glib_test): Add some tests.
2964 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2966 * test/glib/test-service-glib.c (my_object_throw_error): Use
2969 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2970 errors thrown by dbus_g_error_set.
2972 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2974 * glib/dbus-gparser.c (validate_signature): Ditto.
2976 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
2977 (dbus_g_proxy_end_call_internal): Ditto.
2979 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2980 converts DBUS_ERROR_x to DBUS_GERROR_x.
2981 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2983 * doc/TODO: Remove error TODO.
2985 * doc/dbus-tutorial.xml: Update with documentation about error
2988 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2989 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2990 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
2992 2005-06-22 Colin Walters <walters@verbum.org>
2994 Patch from Ross Burton <ross@openedhand.com>
2996 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2998 2005-06-20 Colin Walters <walters@verbum.org>
3000 * configure.in: Add glib/examples.
3002 * glib/Makefile.am: Add examples/
3004 * glib/examples/.cvsignore
3005 * glib/examples/Makefile.am
3006 * glib/examples/example-client.c
3007 * glib/examples/example-service.c
3008 * glib/examples/example-service.xml
3009 * glib/examples/example-signal-emitter.c
3010 * glib/examples/example-signal-emitter.xml
3011 * glib/examples/example-signal-recipient.c:
3012 New files; GLib binding examples, ported from
3015 2005-06-20 Colin Walters <walters@verbum.org>
3018 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3021 * glib/dbus-binding-tool-glib.c:
3022 * doc/dbus-tutorial.xml:
3023 * test/glib/test-dbus-glib.c: Update for rename.
3025 2005-06-20 Colin Walters <walters@verbum.org>
3027 Patch suggested by Ross Burton <ross@openedhand.com>
3029 * glib/dbus-gobject.c (export_signals): Free signal name.
3030 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3031 memory leak. Add a bit of documentation.
3032 (dbus_g_method_return_error): Free context, and note we do
3035 2005-06-18 Murray Cumming <murrayc@murrayc.com>
3038 * glib/dbus-gobject.c:
3039 * glib/dbus-gproxy.c:
3040 * glib/dbus-gvalue.c: Predeclare structs as
3041 typedef struct _Something Something instead of
3042 typedef struct Something Something, so we can
3043 redeclare the prototypes. Other GNOME libraries
3046 2005-06-17 Colin Walters <walters@verbum.org>
3048 * tools/dbus-names-model.c (have_names_notify): Fix call
3049 to dbus_g_proxy_end_call.
3051 2005-06-17 Colin Walters <walters@verbum.org>
3053 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3054 spew warnings if we get malformed remote signals.
3056 * glib/dbus-gobject.c (propsig_iterate): New function.
3057 (lookup_object_info): New function, extracted from
3058 lookup_object_and_method.
3059 (introspect_properties, introspect_signals): Delete; these
3060 are merged into write_interface.
3061 (write_interface): Write out signals and properties here;
3062 dump the org.gtk.object stuff and use the interface given
3063 in the introspection data blob. Also fix up property XML.
3064 (lookup_values): New function.
3065 (introspect_interfaces): Gather a mapping from interface to a
3066 list of its methods, signals, and properties, then write out
3068 (lookup_object_and_method): Use lookup_object_info.
3069 (struct DBusGSignalClosure): Add interface.
3070 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3071 we can just use the constant data.
3072 (dbus_g_signal_closure_finalize): Don't free signal name.
3073 (signal_emitter_marshaller): Use interface from signal closure.
3074 (export_signals): Only export signals mentioned in introspection
3076 (dbus_g_connection_register_g_object): Warn if we have no
3077 introspection data for an object.
3078 (funcsig_equal): Remove unused variable.
3079 (dbus_g_object_register_marshaller): Take varargs instead of
3081 (dbus_g_object_register_marshaller_array): New function,
3082 extracted from old dbus_g_object_register_marshaller.
3084 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3085 signals and property data.
3086 (write_quoted_string): New function, extracted from generate_glue.
3087 (generate_glue): Write signals and properties to introspection
3090 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3091 exported_signals and exported_properties.
3092 (dbus_g_object_register_marshaller): Update prototype.
3093 (dbus_g_object_register_marshaller_array): Prototype.
3095 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3097 * test/glib/test-service-glib.c: Add new test signals and method
3100 * test/glib/test-service-glib.xml: Add some test signals.
3102 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3103 and my-object-marshal.h
3104 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3105 my-object-marshal.c.
3106 (my-object-marshal.c, my-object-marshal.h): Implement.
3108 * test/glib/.cvsignore: Update.
3110 * doc/TODO: Remove two GLib TODO items fixed by this
3113 2005-06-16 Colin Walters <walters@verbum.org>
3115 * doc/TODO: Update for GLib bindings.
3117 2005-06-16 Colin Walters <walters@verbum.org>
3119 * glib/dbus-binding-tool-glib.c:
3120 * glib/dbus-gobject.c:
3121 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
3122 from Ross Burton, for his GLib bindings work.
3124 2005-06-16 Colin Walters <walters@verbum.org>
3126 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3127 to iterate instead of walking to G_TYPE_INVALID.
3129 Patch based on a patch from Ryan Gammon.
3131 2005-06-16 Colin Walters <walters@verbum.org>
3133 * bus/bus.c (bus_context_new): Set parser to NULL
3134 after we unref it (Patch from Chris Boscolo, #2174).
3136 2005-06-16 Colin Walters <walters@verbum.org>
3138 * python/dbus_bindings.pyx.in: Import size_t,
3139 __int64_t, __uint64_t, and __signed.
3141 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3142 Define cmsg struct, output it.
3143 (_dbus_read_credentials_unix_socket):
3146 Patch from Joe Markus Clarke for FreeBSD support.
3148 2005-06-16 Colin Walters <walters@verbum.org>
3150 * tools/dbus-send.c (append_array): Use strtok.
3151 (append_dict): New function.
3152 (type_from_name): New function, extracted from main.
3153 (main): Handle sending dicts.
3155 * tools/dbus-print-message.c (print_iter): Print dict
3158 2005-06-16 Colin Walters <walters@verbum.org>
3160 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3161 values as the empty string (#2948).
3163 2005-06-16 Colin Walters <walters@verbum.org>
3166 * mono/doc/Makefile.am:
3167 * test/glib/Makefile.am:
3169 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3171 2005-06-16 Colin Walters <walters@verbum.org>
3173 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3174 header byte order from expected byte order (Patch from Chris Wilson, #3475).
3176 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
3177 Increment pointer after swapping fixed array. Add assertion
3180 2005-06-15 Colin Walters <walters@verbum.org>
3182 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3183 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3185 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3187 * NEWS: Update to 0.34
3189 2005-06-15 David Zeuthen <davidz@redhat.com>
3191 * configure.in (LT_CURRENT): Revert back to 1 as the library
3192 hasn't changed and we've certainly not committed to protocol
3193 stability yet. All this does is to break ABI. See commit note
3194 from hp@redhat.com 2005-05-05 for details.
3196 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3198 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3199 (_dbus_connection_run_builtin_filters): New method
3200 (dbus_connection_dispatch): Run the builtin filters which in turn
3201 runs the peer filter which handles Ping messages.
3204 - Ping isn't handled: This patch fixes it
3206 - Add a test case for the Ping message: added TODO item
3208 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3210 * dbus/dbus-message.c:
3211 (dbus_message_has_path): New method
3212 (dbus_message_has_interface): New method
3213 (dbus_message_has_member): New method
3215 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3218 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3219 the keyring directory is private to the user
3222 - The convenience functions in dbus-bus.h should perhaps have
3223 the signatures that they would have if they were autogenerated
3224 stubs. e.g. the acquire service function. We should also evaluate
3225 which of these functions to include, in light of the fact that
3226 GLib/Qt native stubs will probably also exist.: Punted
3228 - add dbus_message_has_path(), maybe has_member/interface:
3231 - in dbus-keyring.c, enforce that the keyring dir is not
3232 world readable/writable: Fixed in this patch
3234 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3236 * dbus/dbus-marshal-validate.h: Added a new validation
3237 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3238 out of memory errors when validating signitures
3240 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3241 in places where we previously used DBUS_VALID and a FALSE return
3242 value to indicate OOM
3244 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3245 Use a stack to track the number of elements inside containers. The
3246 stack values are then used to validate that dict entries have only two
3247 elements within them.
3248 (validate_body_helper): check the reason for failure when validating
3251 * dbus/dbus-message.c (load_message): use
3252 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3253 DBUS_VALID and a FALSE return value to indicate OOM
3255 * doc/TODO: remove "- validate dict entry number of fields" as this
3258 2005-06-14 David Zeuthen <davidz@redhat.com>
3260 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3261 watches (if applicable) and add new watches
3263 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3264 (main): Setup SIGIO signal handler if using D_NOTIFY
3266 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3268 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3269 (merge_included): Also merge conf_dirs list
3270 (bus_config_parser_unref): Clear conf_dirs list
3271 (include_dir): Add directory to conf_dirs list
3272 (bus_config_parser_get_conf_dirs): New function
3274 * bus/dir-watch.[ch]: New files
3276 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3278 * configure.in: Add checks for D_NOTIFY on Linux
3280 2005-06-14 Colin Walters <walters@verbum.org>
3282 * glib/dbus-binding-tool-glib.c:
3283 * glib/dbus-gobject.c:
3284 * glib/dbus-gvalue.c: Fix indentation and brace style.
3286 2005-06-14 Ross Burton <ross@openedhand.com>.
3288 * glib/dbus-glib.h: Make DBusGMethodInvocation
3289 a private structure. Rearrange prototypes a bit.
3291 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3292 documentation for first_arg_type.
3294 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3295 here, add documentation. Move dbus_g_method_return
3296 and dbus_g_method_return_error into public API
3299 2005-06-14 Colin Walters <walters@verbum.org>
3301 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3302 Add missing return statements, noticed by Ross Burton.
3304 2005-06-13 Ross Burton <ross@openedhand.com>.
3306 * glib/dbus-gobject.c: Handle errors on message
3307 demarshalling by sending error message back.
3308 * glib/dbus-gvalue.c: Initialize return variables.
3310 2005-06-13 Colin Walters <walters@verbum.org>
3312 * glib/Makefile.am: Fix thinko in last patch.
3314 2005-06-13 Colin Walters <walters@verbum.org>
3316 * glib/Makefile.am: Move dbus-gtype-specialized.c
3317 and dbus-gtype-specialized.h into a _HEADERS variable,
3320 2005-06-12 Colin Walters <walters@verbum.org>
3322 Async signals and various bugfixes and testing by
3323 Ross Burton <ross@openedhand.com>.
3325 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3326 (dbus_gvalue_genmarshal_name_from_type)
3327 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3328 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3329 (dbus_g_value_types_init, dbus_gtype_from_signature)
3330 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3331 (dbus_gtypes_from_arg_signature): New function prototypes.
3332 (dbus_gvalue_demarshal): Take context and error arguments.
3333 (dbus_gvalue_demarshal_variant): New function.
3334 (dbus_gvalue_demarshal_message): New function.
3335 (dbus_gvalue_store): Delete.
3337 * glib/dbus-gvalue.c:
3339 File has been almost entirely rewritten; now we special-case
3340 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3341 hash tables correctly, etc. Full support for recursive values
3342 is not yet complete.
3344 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3345 argument of signal to G_TYPE_POINTER since we now pass a
3347 (lookup_g_marshaller): Delete in favor of
3348 _dbus_gobject_lookup_marshaller.
3349 (marshal_dbus_message_to_g_marshaller): Use
3350 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3351 to handle remote signal callbacks.
3352 (dbus_g_proxy_new_from_proxy): New function; creates a new
3353 DBusGProxy by copying an existing one.
3354 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3355 (dbus_g_proxy_get_path): New functions.
3356 (dbus_g_proxy_marshal_args_to_message): New function;
3357 factored out of existing code.
3358 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3359 from a varargs array.
3360 (dbus_g_proxy_begin_call_internal): New function.
3361 (dbus_g_proxy_end_call_internal): New function.
3362 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3363 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3364 after collecting args into value array.
3365 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3366 invoke dbus_g_proxy_end_call_internal.
3367 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3369 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3371 (array_free_all): New function.
3372 (dbus_g_proxy_add_signal): Take GTypes.
3374 * glib/dbus-gobject.h:
3375 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3376 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3379 * glib/dbus-gobject.c: Add a global marshal_table hash which
3380 stores mappings from type signatures to marshallers. Change lots
3381 of invocations of dbus_gtype_to_dbus_type to
3382 dbus_gtype_to_signature.
3383 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3384 (introspect_signals): Fix test for query.return_type.
3385 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3386 (invoke_object_method): Many changes. Handle asynchronous
3387 invocations. Convert arguments with
3388 dbus_gvalue_demarshal_message. Handle errors. Use
3389 DBusSignatureIter instead of strlen on args. Handle all arguments
3390 generically. Special-case variants.
3391 (dbus_g_method_return, dbus_g_method_return_error): New function.
3392 (DBusGSignalClosure): New structure, closes over signal
3394 (dbus_g_signal_closure_new): New function.
3395 (dbus_g_signal_closure_finalize): New function.
3396 (signal_emitter_marshaller): New function; is special marshaller
3397 which emits signals on bus.
3398 (export_signals): New function; introspects object signals and
3400 (dbus_g_object_type_install_info): Take GType instead of
3402 (dbus_g_connection_register_g_object): Invoke export_signals.
3403 (dbus_g_connection_lookup_g_object): New function.
3404 (DBusGFuncSignature) New structure; used for mapping type
3405 signatures to marshallers.
3406 (funcsig_hash): New function; hashes DBusGFuncSignature.
3407 (funcsig_equal): New function; compares DBusGFuncSignature.
3408 (_dbus_gobject_lookup_marshaller): New function.
3409 (dbus_g_object_register_marshaller): New function; used to
3410 register a marshaller at runtime for a particular signature.
3412 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3414 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3415 which notes a server method implementation should be
3418 * glib/dbus-binding-tool-glib.c
3419 (dbus_binding_tool_output_glib_server): Call
3420 dbus_g_value_types_init.
3421 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3423 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3424 of a lookup function.
3425 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3426 (write_untyped_out_args): New method; write output arguments.
3427 (write_formal_declarations_for_direction): Function for
3429 (write_formal_parameters_for_direction): Function for
3430 writing implementations.
3431 (write_typed_args_for_direction): Function for writing
3432 arguments prefixed with GTypes.
3433 (write_async_method_client): Write out async version
3436 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3437 (dbus_g_type_get_marshal_name): Move mapping from GType
3438 to marshal name into here.
3439 (dbus_g_type_get_c_name): Move into here.
3440 (compute_marshaller): Convert signature to type with
3441 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3442 (compute_marshaller_name): Ditto.
3443 (compute_marshaller): Handle async signal annotations.
3444 (gather_marshallers): Return if we don't have a known
3446 (generate_glue): Collect introspection blob here, and
3447 write all of the blob at the end. This allows an object
3448 with multiple interfaces to work.
3449 Mark async methods in introspection blob.
3451 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3452 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3453 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3455 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3456 avoids people accidentally using DBUS_TYPE_* which should
3457 not be necessary anymore.
3458 Do include dbus-gtype-specialized.h, which are utilities
3459 for GLib container types.
3460 Add various #defines for types such as
3461 DBUS_TYPE_G_BOOLEAN_ARRAY.
3462 (DBusGValueIterator, DBusGValue): Define, not fully used
3464 (dbus_g_value_get_g_type): Type for recursive value.
3465 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3466 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3467 (dbus_g_value_free): Prototypes.
3468 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3469 (dbus_g_proxy_set_interface): Prototype.
3470 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3471 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3473 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3475 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3476 doing async invocations.
3477 (dbus_g_method_return, dbus_g_method_return_error):
3479 * doc/dbus-tutorial.xml: Update GLib section.
3481 * tools/dbus-viewer.c (load_child_nodes): Update
3482 for new invocation type of dbus_g_proxy_end_call.
3483 (load_from_service_thread_func): Ditto.
3485 * tools/print-introspect.c (main): Ditto.
3487 * tools/dbus-names-model.c (have_names_notify)
3488 (names_model_reload, names_model_set_connection)
3491 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3492 needed since Python bindings use GLib bindings.
3494 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3495 Add --prefix argument.
3497 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
3498 unneeded --ignore-unsupported arg.
3500 * test/glib/test-service-glib.c:
3501 * test/glib/test-service-glib.xml:
3502 * test/glib/test-dbus-glib.c: Add many more tests.
3504 2005-06-06 David Zeuthen <davidz@redhat.com>
3506 * doc/TODO: Add item about need to remove deprecated functions.
3508 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3510 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3511 to repair the ABI which was broken with the last commit.
3513 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
3515 * dbus/dbus-connection.c, dbus/dbus-connection.h
3516 (dbus_connection_disconnect): renamed to dbus_connection_close
3517 for API symmetry with dbus_connection_open
3518 (_dbus_connection_open_internal):
3519 s/dbus_connection_disconnect/dbus_connection_close
3521 * dbus/dbus-bus.c (dbus_bus_get):
3522 s/dbus_connection_disconnect/dbus_connection_close
3524 * bus/connection.c (bus_connections_unref,
3525 bus_connections_setup_connection, bus_connections_expire_incomplete):
3526 s/dbus_connection_disconnect/dbus_connection_close
3528 * bus/dispatch.c (bus_dispatch, kill_client_connection,
3529 kill_client_connection_unchecked, check_hello_connection):
3530 s/dbus_connection_disconnect/dbus_connection_close
3532 * bus/bus.c (new_connection_callback):
3533 s/dbus_connection_disconnect/dbus_connection_close
3535 * tools/dbus-send.c (main):
3536 s/dbus_connection_disconnect/dbus_connection_close
3538 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3539 s/dbus_connection_disconnect/dbus_connection_close
3541 * test/test-service.c (path_message_func, filter_func):
3542 s/dbus_connection_disconnect/dbus_connection_close
3544 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
3546 2005-05-25 Colin Walters <walters@verbum.org>
3548 * dbus/dbus-protocol.h: Move various bus service #defines such
3549 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3551 * dbus/dbus-shared.h: Various defines moved here.
3552 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3554 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
3556 * python/__init__.py: Python bindings deserve a minor version
3557 update. Upped to (0, 40, 2)
3559 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
3561 * python/decorators.py: add explicitly_pass_message decorator
3562 for passing in the dbus message as keyword for edge case signal
3565 * python/matchrules.py (SignalMatchRule.__repr__): fix output
3566 to conform with what dbus expects for match rules
3567 (SignalMatchRule.execute): add the dbus message as a keyword
3568 if the signal handler has requested it
3570 * python/examples/example/signal-recipient.py: added some more
3571 examples on how to hook up to signals
3573 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
3575 * python/decorators.py: import dbus_bindings
3577 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
3578 SignalMatchNode): new classes that implement wildcard signal
3579 callback matching using a tree lookup. Heavily modified from a
3580 patch sent by Celso Pinto (fd.o bug #3241)
3582 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3583 use new match classes to handle signals.
3585 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
3587 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3589 2005-05-18 Havoc Pennington <hp@redhat.com>
3591 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3592 gettext. Not really worth requiring yet perhaps, but any
3593 production quality 1.0 would require it so we should go ahead and
3594 get things set up. We do have a couple token calls to
3595 bindtextdomain in the code already.
3597 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
3599 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3600 when using recursive g_main_loops
3602 * python/_dbus.py (class Bus): add the ProxyObjectClass
3603 alias for ProxyObject to make it easier for the Twisted
3604 networking framework to integrate dbus.
3606 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3607 alias for ProxyMethod to make it easier for the Twisted
3608 networking framework to integrate dbus.
3610 2005-05-11 Ross Burton <ross@openedhand.com>
3612 * glib/dbus-glib-tool.c: Add --prefix argument.
3613 * glib/dbus-binding-tool-glib.h: Add prefix argument.
3614 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3615 Add prefix argument.
3616 (generate_glue): Pass prefix argument down.
3617 (dbus_binding_tool_output_glib_server): Pass prefix to
3620 2005-05-11 Colin Walters <walters@verbum.org>
3622 * tools/dbus-send.c (append_array): New function.
3623 (append_arg): Broken out from main.
3624 (main): Add cheesy hack to send arrays and variants.
3626 * tools/dbus-print-message.c (print_iter): Broken out
3629 2005-05-11 Colin Walters <walters@verbum.org>
3631 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3632 New function, returns signature string for signature iter.
3633 * dbus/dbus-signature.h: Prototype it.
3634 * dbus/dbus-message.c (dbus_message_iter_get_signature):
3635 New function, returns signature string for message iter.
3636 (dbus_message_iter_get_array_len): New function, returns
3638 (dbus_message_iter_get_fixed_array): Fix assertion; this
3639 function should be used when the iter is pointing to the
3640 contents of an array
3641 * dbus/dbus-message.h: Prototypes.
3642 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3643 New function; returns length of an array.
3644 * dbus/dbus-marshal-recursive.h: Prototype it.
3646 2005-05-11 Colin Walters <walters@verbum.org>
3648 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3651 2005-05-08 Havoc Pennington <hp@redhat.com>
3653 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3654 daemon's pid, not the parent's pid, to the file descriptor.
3655 Reported by Taj Morton.
3657 2005-05-05 Havoc Pennington <hp@redhat.com>
3659 * configure.in (LT_*): add notes on how the libtool versioning
3660 works to save thinking. Increment soname to indicate protocol
3661 breakage (though really the library interface hasn't changed I
3664 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3665 verify the GUID received from server matches what we were
3666 expecting, if we had an expectation
3668 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3669 (_dbus_auth_get_guid_from_server): new function
3670 (send_begin): parse the OK args
3672 * doc/dbus-specification.xml: add GUID to the auth protocol
3674 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
3676 * Fix my name in previous changelog ;)
3678 * python/proxies.py (ProxyObject.__getattr__): add further patch
3679 from Anthony Baxter to throw an AttributeError when python
3680 __special__ functions are called instead of marshling them over
3681 the bus (Bug#1685 comment 3).
3683 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
3685 * python/Makefile.am: changed to use pyexecdir for the binding
3686 shared libraries (Bug#2494)
3688 * python/exceptions.py: bring exceptions over from the bindings
3689 so they can be used in applications (Bug#2036)
3690 Make all exceptions derive from DBusException
3692 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3693 of classes so that print obj doesn't throw an exception (Bug #1685)
3695 2005-05-03 Ross Burton <ross@openedhand.com>
3697 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3698 Return if we get an error during registration. Set up a
3699 weak reference on object to unregister if object is destroyed.
3700 (unregister_gobject): New function.
3702 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
3704 * python/dbus_bindings.pyx.in:
3705 - added new type classes for hinting to the marashaler what type
3706 to send over the wire
3707 - added int16 and uint16 marshalers
3708 - Fixed a bug in the type constants that caused int32 to go out
3709 as uint16 over the wire
3710 * python/dbus.py: split up into different files and renamed _dbus.py
3711 * python/__init__.py, python/_util.py, python/decorators.py,
3712 python/exceptions.py, python/proxies.py, python/services.py,
3713 python/types.py: new files split off from dbus.py
3714 * python/Makefile.am: Add new files, remove dbus.py and
3715 install all python files to <python module dir>/dbus
3716 * python/examples/*: Added #!/usr/bin/env python to the top of
3717 every example. Patch provided by Tatavarty Kalyan
3719 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3721 * NEWS: Update to 0.33
3723 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3725 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3726 method for doing async calls
3727 (_pending_call_notification): New C function for handling pendning call
3729 (set_notify): New method for setting pending call notification
3731 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3732 Async capabilities added to remote method calls
3733 (Sender): class removed
3734 (RemoteService): class removed
3735 (ObjectTree): class removed for now
3736 (RemoteObject): Renamed to ProxyObject
3737 (RemoteMethod): Renamed to ProxyMethod
3738 (method): Decorator added for decorating python methods as dbus methods
3739 (signal): Decorator added for decorating python methods as signal emitters
3740 (ObjectType): Metaclass added for generating introspection data and the
3741 method callback vtable
3742 (Interface): Wrapper class added to wrap objects in a dbus interface
3743 (Object): Uses ObjectType as its metaclass and exports Introspect
3744 of the org.freedesktop.DBus.Introspectable interface
3745 (ValidationException, UnknownMethodException): new exceptions
3747 * python/examples/*: Modified to fit with the new bindings
3749 2005-04-23 Havoc Pennington <hp@redhat.com>
3751 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3752 reported by Tony Houghton
3754 * test/test-service.c (main): test
3755 dbus_connection_get_object_path_data()
3757 * dbus/dbus-object-tree.c (find_handler): be sure we always init
3759 (_dbus_object_tree_get_user_data_unlocked): new function used by
3760 dbus_connection_get_object_path_data()
3761 (do_register): add assertion test for get_user_data_unlocked
3762 (object_tree_test_iteration): more tests
3764 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3765 new function from Dan Reed to let you get the user data from
3766 dbus_connection_register_object_path()
3768 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
3770 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3771 in numerous places that did not account for the NULL terminator
3772 (signature_from_seed): changed the manual string copy loop to
3773 just use strcpy instead
3774 make check should now pass
3776 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
3778 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3779 so that it allows messages that are not signals to pass in
3780 NULL as the interface.
3782 2005-04-18 David Zeuthen <davidz@redhat.com>
3784 * glib/dbus-gmain.c (io_handler_destroy_source):
3785 (timeout_handler_destroy_source, connection_setup_free):
3786 Also unref the source to avoid memory leaks.
3788 2005-04-13 David Zeuthen <davidz@redhat.com>
3790 * bus/config-parser.c (bus_config_parser_new): Bump this to a
3791 more reasonable, yet still totally arbitrary, value :-).
3793 2005-04-13 David Zeuthen <davidz@redhat.com>
3795 * doc/TODO: Added an "important for 1.0" item about selinux
3798 2005-04-13 David Zeuthen <davidz@redhat.com>
3800 * bus/selinux.c: Add c-file-style to top of file
3801 (log_audit_callback): Don't free the data here anymore
3802 (bus_selinux_check): Don't take spid and tpid since appending
3803 that to auxdata may OOM.
3804 (bus_selinux_allows_acquire_service): Handle OOM and signal back
3805 to the caller if we are OOM by taking an error object.
3806 (bus_selinux_allows_send): -do-
3808 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3809 and bus_selinux_allows_send
3811 * bus/bus.c (bus_context_check_security_policy): Pass error and
3812 pass on OOM thrown by bus_selinux_allows_send()
3814 * bus/services.c (bus_registry_acquire_service): Pass error and
3815 pass on OOM thrown by bus_selinux_allows_acquire_service()
3817 2005-04-13 Havoc Pennington <hp@redhat.com>
3819 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3820 message at a time to avoid monopolizing the main loop, bug
3821 #2953 from Benjamin Otte
3823 2005-04-09 Havoc Pennington <hp@redhat.com>
3825 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3826 possible overlap, fix from Daniel Reed
3827 (fixup_alignment): fix signedness warnings
3828 (_dbus_string_append_unichar): ditto
3830 2005-04-09 Havoc Pennington <hp@redhat.com>
3832 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3834 * glib/dbus-glib-tool.c (main): fix warning
3836 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3838 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3839 add a new function that can be used in simple applications that
3840 don't have a main loop and are willing to block
3842 2005-04-05 David Zeuthen <davidz@redhat.com>
3844 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3846 * glib/dbus-gmain.c:
3847 (io_handler_destroy_source): Remove from list of IO handlers
3848 of the ConnectionSetup object
3849 (timeout_handler_destroy_source): -do- for timeout handlers
3850 (io_handler_source_finalized): Don't remove from list since
3851 we now do that in io_handler_destroy_source(). Renamed from
3852 io_handler_source_destroyed
3853 (timeout_handler_source_destroyed): -do- for timeout handlers
3854 (connection_setup_free): It is now safe to iterate over all
3855 IO and timeout handlers as the _destroy_source removes them
3856 from the list synchronously
3858 2005-03-30 Havoc Pennington <hp@redhat.com>
3860 * configure.in: change check to gtk 2.4
3862 * tools/dbus-viewer.c (name_combo_changed_callback): remove
3863 gtk_combo_box_get_active_text() usage to decrement GTK requirement
3866 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3870 * HACKING: Fixed realease instructions. configure.in should be updated to
3871 the next release by the person who made the last release.
3873 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3875 * python/lvalue_cast_post_process.py - removed. Patch has been
3876 submitted to Pyrex maintainers that fixes gcc4.0 errors
3878 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3880 2005-03-24 Daniel Reed <n@ml.org>
3882 * tools/Makefile.am: Make print-introspect and
3883 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3885 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
3887 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3889 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
3890 had in Red Hat packages for a while but for some reason never
3892 (_dbus_is_a_number): New checks if a string
3893 can be converted to a number and does the conversion if it can
3894 (_dbus_user_database_lookup): Add check to see if the given username
3895 is a udi. This allows udi's to be used instead of usernames in the
3897 (_dbus_user_database_lookup_group): Add check to see if the given groupname
3898 is a gdi. This allows gdi's to be used instead of groupnames in the
3901 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
3903 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3904 code so that it compiles with gcc4.0
3906 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3907 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3908 results back to dbus_binding.c
3910 2005-03-20 Colin Walters <walters@verbum.org>
3912 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3914 * configure.in: Require GTK+ 2.6.
3916 2005-03-20 Colin Walters <walters@verbum.org>
3918 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3920 2005-03-17 Tom Parker <palfrey@tevp.net>
3922 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3923 print DBUS_UID_UNSET; instead print passed username. Also
3924 be sure to actually use gid looked up in cache.
3926 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3927 for DBUS_GID_UNSET and groupname.
3929 2005-03-17 Colin Walters <walters@verbum.org>
3931 * bus/print-introspect.c: Move to tools/.
3932 * bus/run-with-tmp-session-bus.sh: Ditto.
3934 * glib/Makefile.am (dbus-glib-bindings.h): Move
3935 generation to tools/Makefile.am.
3937 * test/glib/run-test.sh: Update to handle move
3938 of run-with-tmp-session-bus.sh.
3940 * test/glib/test-service-glib.c: Update to handle
3941 move of dbus-glib-bindings.h.
3943 * tools/print-introspect.c: Moved here
3944 from bus/, and ported to GLib bindings.
3946 * tools/run-with-tmp-session-bus.sh: Moved here
3949 * tools/Makefile.am: Generate dbus-glib-bindings.h
3950 and dbus-bus-introspect.xml here.
3952 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3955 2005-03-17 Colin Walters <walters@verbum.org>
3957 * bus/driver.c (write_args_for_direction): Use
3958 _dbus_string_get_const_data to retrieve string;
3959 _dbus_string_get_const_data_len doesn't actually return
3960 a NULL-terminated substring.
3962 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3963 (main): Change to use org_freedesktop_DBus_request_name
3964 instead of using g_proxy_begin_call/end_call.
3966 2005-03-15 Joe Shaw <joeshaw@novell.com>
3968 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3969 generating the finalizer. Fixes from Ben Maurer.
3971 2005-03-12 Joe Shaw <joeshaw@novell.com>
3973 * mono/BusDriver.cs: Update method names: ListServices
3974 becomes ListNames; GetOwner becomes GetNameOwner.
3976 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3977 onto the eval stack when removing the delegate.
3979 2005-03-12 Joe Shaw <joeshaw@novell.com>
3981 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3982 LT_CURRENT. Set it to the autoconf variable.
3984 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3985 classes that disconnects the signal handler delegate from the
3986 service object. Fixes a big leak of proxy objects on the
3987 client side of things. Patch from Ben Maurer
3988 <bmaurer@ximian.com>
3990 2005-03-12 Colin Walters <walters@verbum.org>
3992 * bus/driver.c (write_args_for_direction): New function,
3993 parses a type signature into arguments and outputs to
3995 (bus_driver_handle_introspect): Use it instead of
3996 hardcoding XML for certain signatures.
3998 * bus/Makefile.am (dbus-bus-introspect.xml): Add
3999 dependency on dbus-daemon.
4001 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4002 argument, pass it to dbus_binding_tool_output_glib_client.
4004 * glib/dbus-binding-tool-glib.c
4005 (generate_client_glue): Protect against multiple inclusion.
4006 (dbus_binding_tool_output_glib_client): Add
4007 G_BEGIN_DECLS/G_END_DECLS.
4009 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4010 Change to just take iface prefix directly.
4011 (write_formal_parameters): Clarify error message.
4012 (check_supported_parameters): New function; checks to see type
4013 signatures of method parameters are supported.
4014 (generate_client_glue): Handle ignore_unsupported flag.
4015 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4018 * glib/Makefile.am (dbus-glib-bindings.h): Pass
4019 --ignore-unsupported by default until glib bindings
4022 2005-03-11 Colin Walters <walters@verbum.org>
4024 * glib/Makefile.am: Generate dbus-glib-bindings.h and
4027 * bus/print-introspect.c: New file; prints introspection
4028 data for a given name and object path.
4030 * bus/run-with-tmp-session-bus.sh: New file, refactored
4031 from test/glib/run-test.sh. Creates a temporary session
4032 bus and runs another program.
4034 * test/glib/run-test.sh: Refactor to invoke
4035 run-with-tmp-session-bus.sh.
4037 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4038 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
4039 macros instead of hardcoding.
4041 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4043 2005-03-11 Joe Shaw <joeshaw@novell.com>
4045 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4046 this unref; it doesn't match up evenly in some codepaths.
4047 (_dbus_connection_block_pending_call): Unref at every exitpoint;
4048 this evenly matches with the ref near the top of this function.
4050 2005-03-09 Joe Shaw <joeshaw@novell.com>
4052 * dbus/dbus-object-tree.c
4053 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4054 and we try to unregister a path that's not registered, still go
4055 through the process of unlocking and don't just return.
4057 2005-03-09 Colin Walters <walters@verbum.org>
4059 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4060 to this are generated for client-side wrappers. Invokes a
4061 D-BUS method and returns reply values.
4063 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4064 function; writes signature string for argument direction.
4065 (write_args_for_direction): Change to pass input values directly
4066 instead of via address, and fix indentation.
4067 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
4068 make generated wrappers inlineable.
4070 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4071 note about using dbus_type_is_fixed.
4073 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4074 dbus/dbus-signature.c as dbus_type_is_fixed.
4076 All callers updated.
4078 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4079 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4081 * dbus/dbus-signature.h: Prototype.
4083 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4086 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4087 appropriate instead of just freeing it.
4088 (main): Free returned strings using g_free.
4090 * test/glib/Makefile.am (test-service-glib-glue.h)
4091 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4093 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4094 simply maps a simple D-BUS type to GType.
4095 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4097 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4098 initialize the value with it.
4099 (dbus_gvalue_binding_type_from_type): Unused, delete.
4100 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4101 various types instead of unmarshalling to value data directly.
4102 Remove can_convert boolean.
4103 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4104 returning directly instead of using can_convert boolean.
4105 (dbus_gvalue_store): New function; not related to D-BUS per-se.
4106 Stores a GValue in a pointer to a value of its corresponding C
4109 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4110 add dbus_gvalue_store.
4112 2005-03-08 Joe Shaw <joeshaw@novell.com>
4114 Fix a bunch of lifecycle and memory management problems
4115 in the mono bindings.
4117 * mono/Arguments.cs (Arguments): Implement IDisposable
4119 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
4120 strictly a static class.
4122 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4123 delegates into this file.
4124 (Connection): Implement IDisposable.
4125 (Dispose): Disconnect the connection and set the raw connection
4126 pointer to IntPtr.Zero.
4127 (~Connection): Call Dispose().
4128 (RegisterObjectPath): Added. Manages the registration of object
4129 paths so we can cleanly disconnect them at dispose/finalize time.
4130 (UnregisterObjectPath): Ditto.
4131 (set_RawConnection): Unregister all of the object paths when
4132 changing the underlying DBusConnection. Add them back onto the
4133 new connection, if any.
4135 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4136 more unmanaged resources anymore, so it's not necessary. Move all
4137 the DBusObjectPathVTable stuff out of here.
4138 (Handler): Save references to our delegates so that they don't get
4139 finalized. Call Connection.RegisterObjectPath() instead of
4140 dbus_connection_register_object_path() directly.
4141 (Message_Called): Dispose the message after we're finished with
4144 * mono/Message.cs (Message): Implement IDisposable.
4145 (Dispose): Dispose the Arguments, and set the RawMessage to
4147 (SendWithReplyAndBlock): We own the ref to the reply that comes
4148 back from dbus_connection_send_with_reply_and_block() so add a
4149 comment about that and unref it after we've constructed a managed
4150 MethodReturn class around it. Fixes a big, big leak.
4152 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4154 (BuildSignalHandler): After we've sent the Signal message, dispose
4156 (BuildMethod): Dispose of the method call and reply messages after
4157 we've sent the message and extracted the data we want from the
4160 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4162 (Service_FilterCalled): Dispose of the message after we're
4165 2005-03-08 Joe Shaw <joeshaw@novell.com>
4167 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4168 After we attach our pending call to the connection, unref
4171 * mono/Connection.cs (set_RawConnection): Disconnect our
4172 filter and match callbacks from the old connection and
4173 reconnect them to the new connection, if any.
4175 * mono/DBusType/Array.cs: "Code" is a static member, so
4176 don't use "this" to refer to it. Fix for stricter checking
4179 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4180 object path that we pass into unmanaged code.
4182 * mono/DBusType/String.cs (Append): Don't leak the string
4183 that we pass into unmanged code.
4185 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4186 * NEWS: Update for 0.31
4188 * configure.in: Release 0.31
4189 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4191 * qt/Makefile.am: fixed build
4193 * dbus/Makefile.am: soname bump for libdbus
4195 * glib/Makefile.am: soname bump for libdbus-glib
4197 2005-03-05 Havoc Pennington <hp@redhat.com>
4199 * dbus/dbus-sysdeps.c:
4200 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4202 (_dbus_generate_random_bytes_buffer): fix return value
4204 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4205 checks actually work, from Tom Parker <fdo@tevp.net>
4207 2005-03-01 Colin Walters <walters@verbum.org>
4209 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4210 functions copied from dbus-glib-tool.c.
4211 (main): Convert lots of error code to use them.
4212 Also add some testing for introspection bits.
4214 2005-03-01 Colin Walters <walters@verbum.org>
4216 * doc/TODO: Remove introspection signature TODO.
4218 2005-02-27 Colin Walters <walters@verbum.org>
4220 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4221 Change return value to const char * instead of int so we can do
4223 (struct PropertyInfo, struct ArgInfo): Store char *.
4224 (property_info_new, arg_info_new): Update parameters, strdup.
4225 (property_info_unref, arg_info_unref): Free.
4227 * glib/dbus-gidl.h: Update prototypes.
4229 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4230 (validate_signature): New function, just validates signature and
4232 (parse_property, parse_arg): Invoke validate_signature. Store
4233 signature instead of just type code.
4235 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4236 function to return a primary type for a signature, dropping
4237 information about types in container types.
4238 (dbus_gvalue_genmarshal_name_from_type)
4239 (dbus_gvalue_binding_type_from_type)
4240 (dbus_gvalue_ctype_from_type): Update to take full signature
4241 instead of type code.
4242 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4244 * glib/dbus-gvalue.h: Update prototypes for above.
4246 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4247 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4248 (introspect_properties, introspect_signals, write_interface):
4249 Update to handle signatures, and remove usage of
4250 _dbus_gutils_type_to_string.
4251 (handle_introspect): Print out type codes instead of e.g. "string"
4252 in hardcoded introspection XML; also use x_AS_STRING constants
4253 instead of hardcoding in string.
4255 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4256 to string. Remove usage of _dbus_gutils_type_to_string.
4258 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4260 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4263 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4264 (compute_marshaller_name, generate_glue): Handle signature change
4266 (write_formal_parameters, write_args_for_direction): Ditto, and
4269 * tools/dbus-tree-view.c (type_to_string): Delete.
4270 (info_set_func_text): Update to print full signatures.
4272 * test/glib/test-service-glib.xml: Change types to new
4273 introspection format.
4275 2005-02-26 Havoc Pennington <hp@redhat.com>
4277 * doc/TODO: remove the "guid" item
4279 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4280 (with_bus_thread_func): use open_private
4282 * dbus/dbus-connection.c (dbus_connection_open_private): new
4283 function that works like the old dbus_connection_open()
4284 (dbus_connection_open): now returns an existing connection if
4287 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4288 through the GUID to the transport
4290 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4291 GUID in hex-encoded form.
4293 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4294 pass GUID argument in to the transport
4296 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4299 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4301 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4303 2005-02-25 Havoc Pennington <hp@redhat.com>
4305 * doc/dbus-specification.xml: document the GUID thing
4307 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4308 globally unique ID for the server, and put a "guid=hexencoded"
4309 field in the address
4311 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4313 * dbus/dbus-message.c: ditto
4315 * dbus/dbus-dataslot.c: ditto
4317 * dbus/dbus-list.c: ditto
4319 * dbus/dbus-internals.h: wait, just include
4320 dbus-threads-internal.h here
4322 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4325 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4327 2005-02-24 Colin Walters <walters@verbum.org>
4329 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4331 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4333 * glib/Makefile.am: added dbus-gobject.h to sources list
4334 so distcheck doesn't fail
4336 2005-02-24 Havoc Pennington <hp@redhat.com>
4338 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4339 you must disconnect before unref, since locking and other things
4340 are screwed up otherwise. Fix assorted other locking stuff.
4342 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4345 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4346 into a private header and don't export from the library
4348 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4350 2005-02-24 Colin Walters <walters@verbum.org>
4352 * dbus/dbus-signature.c: New file; implements various functions
4353 related to type signatures. Includes an interator for parsing,
4354 validation functions.
4355 (dbus_type_is_basic): Moved here from
4356 dbus-marshal-basic.c:_dbus_type_is_basic.
4357 (dbus_type_is_container): Moved here from
4358 dbus-marshal-basic.c:_dbus_type_is_container.
4360 All callers of _dbus_type_is_container and _dbus_type_is_basic
4361 updated, and include dbus-signature.h.
4363 * dbus/dbus-signature.h: New file; prototypes for the above.
4365 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4368 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4369 function factored out of _dbus_first_type_in_signature.
4370 (_dbus_first_type_in_signature_c_str): New function; returns first
4371 type code for a type signature character.
4373 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4374 handle function moves.
4376 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4378 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4379 function; skips to next complete type in type signature.
4380 Implemented using previous skip_one_complete_type. Now
4381 skip_one_complete_type just delegates to
4382 _dbus_type_signature_next.
4384 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4386 (_dbus_type_is_container): Ditto.
4388 * doc/dbus-specification.xml: Update introspection sample to
4389 use real type signatures.
4391 * dbus/dbus-test.h: Prototype signature test.
4393 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4396 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4398 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4400 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4401 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4403 2005-02-21 Colin Walters <walters@verbum.org>
4405 * dbus/dbus-test-main.c (main): Take optional specific test
4408 * dbus/dbus-test.c (run_test): New function, runs a test function
4409 with no data directory.
4410 (run_data_test): Like above, but takes data directory.
4411 (dbus_internal_do_not_use_run_tests): Take
4412 specific test argument. Replace lots of cut n' paste code
4413 with run_test and run_data_test.
4415 * dbus/dbus-test.h: Update prototype for
4416 dbus_internal_do_not_use_run_tests.
4418 2005-02-20 Havoc Pennington <hp@redhat.com>
4420 Fix bugs reported by Daniel P. Berrange
4422 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4423 (protected_change_watch): new function
4424 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4425 (_dbus_server_add_watch): change to work like the
4426 dbus-connection.c equivalents; like those, probably kind of
4427 busted, but should at least mostly work for now
4428 (dbus_server_disconnect): drop the lock if we were already
4429 disconnected, patch from Daniel P. Berrange
4431 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4432 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4435 * doc/TODO: todo about unscrewing this mess
4437 2005-02-19 Colin Walters <walters@verbum.org>
4439 * glib/dbus-binding-tool-glib.c
4440 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4442 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4443 as errno.h and sys/stat.h.
4444 (lose): New function, prints error with
4446 (lose_gerror): Similar, but takes GError for message.
4447 (main): Add --output argument to specify output file to write to,
4448 instead of always printing to stdout. In this mode, determine
4449 timestamps on source files to see whether any are newer than the
4450 target file. If not, exit. Also convert a number of error
4451 messages to use lose (since it's shorter), and switch to using
4452 g_io_channel_shutdown.
4454 2005-02-19 Havoc Pennington <hp@redhat.com>
4456 * glib/dbus-gobject.c
4457 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4459 * glib/dbus-glib.c: fix doxygen warnings
4461 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4462 is found on an <arg>
4464 2005-02-17 Colin Walters <walters@verbum.org>
4466 * glib/dbus-gobject.h: Don't export
4467 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4469 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4470 (invoke_object_method): Handle it.
4472 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4475 2005-02-17 Colin Walters <walters@verbum.org>
4477 * bus/.cvsignore, doc/.cvsignore
4478 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4481 2005-02-17 Colin Walters <walters@verbum.org>
4483 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4484 Rename to DBUS_SERVICE_DBUS.
4485 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4486 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4487 Change the value from "org.freedesktop.Local"
4488 to "org.freedesktop.DBus.Local".
4489 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4490 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4491 DBUS_INTERFACE_INTROSPECTABLE.
4492 Change the value from "org.freedesktop.Introspectable"
4493 to "org.freedesktop.DBus.Introspectable".
4494 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4495 DBUS_INTERFACE_PROPERTIES.
4496 Change the value from "org.freedesktop.Properties"
4497 to "org.freedesktop.DBus.Properties".
4498 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4499 DBUS_INTERFACE_PEER.
4500 Change the value from "org.freedesktop.Peer"
4501 to "org.freedesktop.DBus.Peer".
4502 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
4503 DBUS_INTERFACE_LOCAL.
4504 Change the value from "org.freedesktop.Local"
4505 to "org.freedesktop.DBus.Local".
4507 All other users of those constants have been changed.
4509 * bus/driver.c (bus_driver_handle_introspect): Use constants.
4511 * glib/dbus-gobject.c (handle_introspect): Use constants.
4513 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4515 2005-02-17 Colin Walters <walters@verbum.org>
4517 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4518 (parse_node, parse_interface, parse_method, parse_signal)
4519 (parse_property, parse_annotation): Lose if we're currently in an
4521 (parse_annotation): New function.
4522 (parser_start_element, parser_end_element): Handle annotation.
4523 (parse_method, parse_interface): Remove support for c_name attribute,
4524 switch to annotations.
4526 * glib/dbus-gidl.h (interface_info_get_binding_names)
4527 (method_info_get_binding_names)
4528 (interface_info_get_binding_name, method_info_get_binding_name)
4529 (interface_info_set_binding_name, method_info_set_binding_name):
4531 (interface_info_get_annotations, method_info_get_annotations)
4532 (interface_info_get_annotation, method_info_get_annotation)
4533 (interface_info_add_annotation, method_info_add_annotation):
4536 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4538 (struct MethodInfo): Ditto.
4539 Straightfoward conversion of binding methods into annotation methods
4542 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4544 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4546 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4547 Use new annotation API.
4549 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
4552 * doc/dbus-specification.xml: Discuss introspection annotations,
4553 include list of well-known annotations.
4555 * test/glib/test-service-glib.xml: Make validate against new DTD.
4557 2005-02-17 Colin Walters <walters@verbum.org>
4559 This patch is based on initial work from
4560 Paul Kuliniewicz <kuliniew@purdue.edu>.
4562 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4563 initialization of GValue from dbus type to here.
4564 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4565 for the "glib-genmarshal" program from a DBus type.
4566 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4567 into the C name for it we use in the glib bindings.
4568 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4569 glib C type (not GValue).
4570 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4572 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4573 from dbus-gobject.c.
4575 * glib/dbus-gutils.h: Prototype it.
4577 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4578 (marshal_dbus_message_to_g_marshaller): Use new shared function
4579 dbus_glib_marshal_dbus_message_to_gvalue_array.
4581 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4582 Will be changed once we have annotations.
4584 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4585 GStaticRWLock. Callers updated.
4586 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
4587 (string_table_next): New function for iterating over zero-terminated
4589 (string_table_lookup): New function; retrieves specific entry in
4591 (get_method_data): New function; look up method data in object data chunk.
4592 (object_error_domain_prefix_from_object_info)
4593 (object_error_code_from_object_info): New functions, but not implemented yet.
4594 (method_interface_from_object_info): New function; retrieve interface name.
4595 (method_name_from_object_info): New function; retrieve method name.
4596 (method_arg_info_from_object_info): New function; retrieve argument data.
4597 (arg_iterate): New function; iterates over serialized argument data.
4598 (method_dir_signature_from_object_info): New function; returns a
4599 GString holding type signature for arguments for just one
4600 direction (input or output).
4601 (method_input_signature_from_object_info)
4602 (method_output_signature_from_object_info): New functions.
4603 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4604 converts dbus message arguments into a GValue array. Used for both
4605 signal handling and method invocation.
4606 (struct DBusGlibWriteIterfaceData): New utility structure.
4607 (write_interface): New function; generate introspection XML for
4609 (introspect_interfaces): New function; gathers all interface->methods,
4610 generates introspection XML for them.
4611 (handle_introspect): Invoke introspect_interfaces.
4612 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4613 (lookup_object_and_method): New function; examines an incoming message
4614 and attempts to match it up (via interface, method name, and argument
4615 signature) with a known object and method.
4616 (gerror_domaincode_to_dbus_error_name): New function; converts a
4617 GError domain and code into a DBus error name. Needs GError data
4618 added to object introspection to work well.
4619 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4621 (invoke_object_method): New function to invoke an object method
4622 looked up via lookup_object_and_method. Parses the incoming
4623 message, turns it into a GValue array, then invokes the marshaller
4624 specified in the DBusGMethodInfo. Creates a new message with
4625 either return values or error message as appropriate.
4626 (gobject_message_function): Invoke lookup_object_and_method and
4627 invoke_object_method.
4629 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4630 (enum DBusBindingOutputMode): New enum for binding output modes.
4631 (pretty_print): Print binding names.
4632 (dbus_binding_tool_error_quark): GError bits.
4633 (version): Fix typo.
4634 (main): Create GIOChannel for output. Parse new --mode argument,
4635 possible values are "pretty-print", "glib-server", "glib-client".
4636 Use mode to invoke appropriate function.
4638 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4640 * glib/dbus-glib-tool.h: New header, just includes GError bits
4643 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4644 maps binding style to name.
4645 (struct MethodInfo): Ditto.
4646 (get_hash_keys, get_hash_key): Utility function, returns keys for
4648 (interface_info_new, method_info_new): Initialize bindings.
4649 (interface_info_unref, method_info_unref): Destroy bindings.
4650 (method_info_get_binding_names, method_info_get_binding_name)
4651 (interface_info_get_binding_names, interface_info_get_binding_name):
4652 Functions for retrieving binding names.
4653 (method_info_set_binding_name, interface_info_set_binding_name):
4654 Functions for setting binding names.
4656 * glib/dbus-binding-tool-glib.h: New file, has prototypes
4657 for glib binding generation.
4659 * glib/dbus-binding-tool-glib.c: New file, implements server-side
4660 and client-side glib glue generation.
4662 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4663 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4666 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4667 of using GClosureMarshal directly.
4668 (struct DBusGObjectInfo): Add n_infos member.
4670 * test/glib/test-service-glib.xml: New file; contains introspection data
4671 for MyTestObject used in test-service-glib.c.
4673 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4674 (my_object_do_nothing, my_object_increment, my_object_throw_error)
4675 (my_object_uppercase, my_object_many_args): New test methods.
4676 (main): Use dbus_g_object_class_install_info to include generated object
4679 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4680 as well as client-side bindings.
4682 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4683 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4684 using both the dbus_gproxy stuff directly as well as the generated bindings.
4686 2005-02-15 Havoc Pennington <hp@redhat.com>
4688 * dbus/dbus-connection.c (dbus_connection_dispatch): always
4689 complete a pending call, don't run filters first.
4691 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4692 dbus_pending_call_steal_reply
4694 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4695 _dbus_connection_block_pending_call
4696 (dbus_pending_call_get_reply): change to steal_reply and return a
4699 * dbus/dbus-connection.c
4700 (dbus_connection_send_with_reply_and_block): port to work in terms
4702 (_dbus_connection_block_pending_call): replace block_for_reply
4705 2005-02-14 Havoc Pennington <hp@redhat.com>
4707 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4708 properly handle looking up group information by name; fix
4711 2005-02-13 Havoc Pennington <hp@redhat.com>
4713 * dbus/dbus-connection.c (dbus_connection_return_message)
4714 (dbus_connection_borrow_message): hold dispatch lock while message
4716 (_dbus_connection_block_for_reply): hold dispatch lock while we
4717 block for the reply, so nobody steals our reply
4718 (dbus_connection_pop_message): hold the dispatch lock while we
4721 2005-02-13 Havoc Pennington <hp@redhat.com>
4723 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4724 (_dbus_connection_release_dispatch)
4725 (_dbus_connection_acquire_io_path)
4726 (_dbus_connection_release_io_path): make the mutex and condvar
4727 control access to the "acquired" flag. Drop the connection lock
4728 while waiting on the condvar. Hopefully these are baby steps in
4729 roughly the right direction.
4731 2005-02-13 Havoc Pennington <hp@redhat.com>
4733 * dbus/dbus-connection.c: use separate mutexes for the condition
4734 variables; this is some kind of baseline for sanity, but the
4735 condition variables still aren't used correctly afaict
4737 2005-02-13 Havoc Pennington <hp@redhat.com>
4739 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4742 * dbus/dbus-connection.c
4743 (_dbus_connection_detach_pending_call_unlocked): add this
4745 Initial semi-correct pass through to fix thread locking; there are
4746 still some issues with the condition variable paths I'm pretty
4749 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4752 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4753 rename to add _unlocked
4754 (struct DBusConnection): move "dispatch_acquired" and
4755 "io_path_acquired" to use only one bit each.
4756 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4757 (dbus_connection_set_watch_functions): hacky fix to reentrancy
4758 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
4759 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
4760 (_dbus_connection_remove_timeout)
4761 (_dbus_connection_toggle_timeout): drop lock when calling out to
4762 user functions; done in a hacky/bad way.
4763 (_dbus_connection_send_and_unlock): add a missing unlock
4764 (_dbus_connection_block_for_reply): add a missing unlock
4766 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4767 drop lock in a hacky probably unsafe way to call out to user
4770 2005-02-12 Havoc Pennington <hp@redhat.com>
4772 * tools/dbus-tree-view.c (info_set_func_text): display more
4775 * bus/driver.c (bus_driver_handle_list_services): list the bus
4778 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4780 * glib/dbus-gidl.c (signal_info_get_n_args): new function
4781 (method_info_get_n_args): new function
4783 2005-02-12 Havoc Pennington <hp@redhat.com>
4785 * bus/driver.c (bus_driver_handle_introspect): add introspection
4788 2005-02-12 Havoc Pennington <hp@redhat.com>
4790 * bus/driver.c: put the signature of each bus driver method in the
4791 table of handlers and check it on incoming calls; this isn't
4792 really useful, but going to add introspect support in a minute.
4794 2005-02-11 Joe Shaw <joeshaw@novell.com>
4796 * mono/Connection.cs: The unpredictability of finalizers in mono
4797 prevents us from deterministically disconnecting the filters from
4798 the Service class's finalizer, so move tracking of filters and
4799 matches here. Add API for that.
4801 * mono/Service.cs: Remove the code, add code which calls the
4802 methods now on the Connection class.
4804 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
4806 * python/dbus.py (class Sender): added to support dbus signals better
4807 (Bus::add_signal_receiver): added expand_args parameter which defaults
4808 to True. When expand args is True the signal handler will pass the
4809 message arguments as parameters to the signal handler. If False
4810 revert to previous behavior where the signal handler must get the
4811 argument list from the message. This is to help port applications
4812 like HAL that have a tendancy to send variable length argument lists.
4813 self._match_rule_to_receivers is now a dict of dicts.
4814 (Bus::remove_signal_receiver): pop handler off the dict intead of
4815 removing it from a list
4816 (Bus::_signal_func): change signal handlers so that interface,
4817 signal_name, service, path and message are packed into a Sender
4818 object and that is passed to the handler. If expand_args is True
4819 extract the args list from the message and append it to the parameter
4822 * python/dbus_bindings.pyx.in (class Signature): added to support
4824 (MessageIter::__init__): changed iteration limit to match D-BUS
4825 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
4826 STRUCT and VARIENT type support
4827 (MessageIter::python_value_to_dbus_sig): made recursive to support
4829 (MessageIter::append*): added Signature, dict, tuple
4832 * python/examples/example-client.py: added examples of getting tuples
4835 * python/examples/example-service.py: added examples of sending tuples
4838 * python/examples/example-signal-recipient.py: Fixed to handle new
4839 signal callback format
4841 2005-02-10 Havoc Pennington <hp@redhat.com>
4843 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4844 (call dbus_g_proxy_add_signal)
4846 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4848 (_dbus_server_new_for_domain_socket): escape the path
4850 * dbus/dbus-address.c (dbus_address_escape_value): new
4851 (dbus_address_unescape_value): new
4852 (dbus_parse_address): unescape values
4854 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4856 * doc/dbus-specification.xml: explain how to escape values in
4859 2005-02-10 Havoc Pennington <hp@redhat.com>
4861 * dbus/dbus-message-factory.c (generate_special): modify test to
4862 avoid using a non-basic dict key
4864 * dbus/dbus-marshal-validate-util.c: add test for the below
4866 * doc/dbus-specification.xml: require that dict keys are a basic
4869 * dbus/dbus-marshal-validate.c
4870 (_dbus_validate_signature_with_reason): require that dict key is a
4873 2005-02-10 Havoc Pennington <hp@redhat.com>
4875 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4876 change to be _and_unlock instead of _unlocked
4878 * dbus/dbus-connection.c
4879 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4880 have no_update so we can find this bug quickly in future
4882 2005-02-10 Havoc Pennington <hp@redhat.com>
4884 * dbus/dbus-message-util.c (verify_test_message): tests for string
4887 * dbus/dbus-message.c (dbus_message_append_args_valist): add
4888 support for arrays of string/signature/path
4890 2005-02-10 Joe Shaw <joeshaw@novell.com>
4892 * dbus/dbus-connection.c
4893 (_dbus_connection_queue_received_message_link,
4894 _dbus_connection_message_sent): Add the path to
4896 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
4897 _dbus_connection_send_preallocated_unlocked(), updated the
4898 dispatch status, and unlocks. Fixes a bug where certain
4899 situations (like a broken pipe) could cause a Disconnect message
4900 to not be sent, tricking the bus into thinking a service was still
4901 there when the process had quit.
4902 (_dbus_connection_send_preallocated): Call
4903 _dbus_connection_send_preallocated_and_unlock().
4904 (_dbus_connection_send_and_unlock): Added. Calls
4905 _dbus_connection_send_preallocated_and_unlock().
4906 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4907 (dbus_connection_send_with_reply): Update the dispatch status and
4910 * mono/Service.cs (~Service): Added. Removes the filter so that
4911 we don't get unmanaged code calling back into a GCed delegate.
4912 (RemoveFilter); Added.
4914 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
4916 * dbus/dbus-message.c (dbus_message_iter_open_container):
4917 - Removed check for iterator type being an array because
4918 get_arg_type does not work with writer iterators
4919 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4921 2005-02-07 Havoc Pennington <hp@redhat.com>
4923 * doc/dbus-specification.xml: some more language cleanups; add
4924 stuff about how to deal with invalid protocol and extension
4925 points; add _ to allowed chars in auth commands; add EXTENSION_
4928 2005-02-06 Havoc Pennington <hp@redhat.com>
4930 * s/expected/required/ in a couple places for clarity
4932 2005-02-07 Colin Walters <walters@verbum.org>
4934 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4935 sender or proposed_recipient.
4937 2005-02-06 Havoc Pennington <hp@redhat.com>
4939 * dbus/dbus-message-factory.c (generate_special): more tests
4941 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4942 array length that exceeds the maximum
4944 2005-02-05 Havoc Pennington <hp@redhat.com>
4946 * dbus/dbus-message-factory.c (generate_special): more test cases,
4949 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4950 reason why a signature was invalid
4952 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4953 skip the length of the string before we look at it in validation
4955 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4958 * dbus/dbus-message.c (_dbus_message_loader_new): default
4959 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4961 2005-02-05 Havoc Pennington <hp@redhat.com>
4963 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4964 if the signature of a variant was empty
4965 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4966 struct with no element type)
4968 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4969 mangled messages to break things
4971 2005-02-04 Havoc Pennington <hp@redhat.com>
4973 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4974 g_quark_try_string() so it actually can return 0
4975 (dbus_g_proxy_connect_signal): ditto
4977 2005-02-04 Havoc Pennington <hp@redhat.com>
4979 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4981 (tristring_from_message): assert cleanly on null path/interface
4982 (should not be possible though I decided later)
4983 (dbus_g_proxy_dispose): move proxy manager unregistration here
4984 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4985 g_return_if_fail() checks
4987 2005-02-04 Havoc Pennington <hp@redhat.com>
4989 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4991 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4992 (with some minor changes)
4994 * doc/dbus-specification.xml: add deprecated attribute to
4995 introspection format
4997 2005-01-31 Havoc Pennington <hp@redhat.com>
4999 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5000 think it's sort of right
5002 2005-01-30 Havoc Pennington <hp@redhat.com>
5004 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5006 2005-01-30 Havoc Pennington <hp@redhat.com>
5008 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5010 * autogen.sh: change to autotools 1.9
5012 * glib/dbus-gproxy.c: completely change how signals work
5013 (dbus_g_proxy_add_signal): new function to specify signature of a
5015 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5016 and g_warning if the incoming message has the wrong signature.
5018 2005-01-30 Havoc Pennington <hp@redhat.com>
5020 * tools/dbus-names-model.c (have_names_notify): fix this
5022 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5023 up the string array handling a bit
5025 2005-01-30 Havoc Pennington <hp@redhat.com>
5027 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5028 (dbus_g_pending_call_cancel): new function
5030 * dbus/dbus-glib.h: move GType decls for connection/message here;
5031 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5032 here, just kind of rationalizing how we handle all that
5034 * tools/dbus-names-model.c: new file for a tree model listing the
5037 * tools/dbus-tree-view.c (model_new): use proper typing on the
5040 2005-01-30 Havoc Pennington <hp@redhat.com>
5042 * glib/dbus-gmain.c: add a custom GSource back that just checks
5043 whether the message queue has anything in it; otherwise, there are
5044 cases where we won't see messages in the queue since there was no
5045 IO visible to the glib main loop
5047 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5048 increase default message timeout to 25 seconds
5050 2005-01-30 Havoc Pennington <hp@redhat.com>
5052 * test/glib/test-profile.c (no_bus_stop_server): remove the
5053 warning about the g_warning that I just fixed
5055 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5056 custom source, seems to be a lot easier to understand and work
5059 2005-01-30 Havoc Pennington <hp@redhat.com>
5061 I think this main loop thing is conceptually broken, but here are
5062 some band aids. I'll maybe rewrite it in a minute.
5064 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5065 custom GSource, so don't pass it in; confusing
5066 (gsource_server_finalize, gsource_connection_finalize): add
5067 finalize handlers that remove all the watches.
5069 2005-01-30 Havoc Pennington <hp@redhat.com>
5071 * glib/dbus-gobject.c (introspect_properties): fix the XML
5074 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5075 which effectively detects the use of freed messages
5077 * glib/dbus-gobject.c (handle_introspect): modify and return the
5078 reply message instead of the incoming message
5080 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5081 gee, maybe it should SEND THE XML instead of just making a string
5082 and freeing it again ;-)
5084 * tools/dbus-print-message.c (print_message): improve printing of
5087 * configure.in: add debug-glib.service to the output
5089 2005-01-30 Havoc Pennington <hp@redhat.com>
5091 dbus-viewer introspected and displayed the bus driver
5093 * dbus/dbus-object-tree.c
5094 (object_tree_test_iteration): add tests for a handler registered on "/"
5096 * dbus/dbus-object-tree.c
5097 (_dbus_decompose_path): fix to handle path "/" properly
5098 (run_decompose_tests): add tests for path decomposition
5100 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5103 * glib/dbus-gobject.c (handle_introspect): fix quotes
5105 * test/glib/run-test.sh: support launching the bus, then running
5108 * test/glib/test-service-glib.c (main): put in a trivial gobject
5109 subclass and register it on the connection
5111 * bus/driver.c (bus_driver_handle_introspect): implement
5112 introspection of the bus driver service
5114 * dbus/dbus-protocol.h: add #defines for the XML namespace,
5115 identifiers, doctype decl
5117 * bus/driver.c (bus_driver_handle_get_service_owner): handle
5118 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
5119 returning the service unchanged.
5120 (bus_driver_handle_message): remove old check for reply_serial in
5121 method calls, now the message type deals with that
5122 (bus_driver_handle_message): handle NULL interface
5124 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5126 * glib/dbus-gloader-expat.c (description_load_from_string): allow
5129 * tools/dbus-viewer.c: add support for introspecting a service on
5132 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5133 (dbus_g_pending_call_unref): add
5135 2005-01-29 Havoc Pennington <hp@redhat.com>
5137 * tools/dbus-tree-view.c: add support for displaying properties.
5138 (run dbus-viewer with an introspect xml file as arg, then resize
5139 the window so the tree elements show up, not sure what that is)
5141 * glib/dbus-gobject.c (handle_introspect): return
5142 org.freedesktop.Properties and org.freedesktop.Introspectable
5143 interfaces when we are introspected.
5145 * doc/dbus-specification.xml: allow empty interface name when
5148 2005-01-29 Havoc Pennington <hp@redhat.com>
5150 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5151 though it uses glib, it could be extended for any binding in
5154 * glib/dbus-gobject.c (gobject_message_function): change to the
5155 new way properties work
5157 * dbus/dbus-protocol.h: add the new interfaces
5159 * doc/dbus-specification.xml: document the introspection format,
5160 Introspectable interface, and add an org.freedesktop.Properties
5163 * glib/dbus-gparser.c: add support for a <property> element
5165 * glib/dbus-gidl.c: add PropertyInfo
5167 * glib/dbus-gobject.c (handle_introspect): put the outermost
5168 <node> outside the signal and property descriptions.
5169 (introspect_properties): export properties as <property> rather
5170 than as method calls
5172 2005-01-28 Havoc Pennington <hp@redhat.com>
5174 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5175 related to authentication protocol
5177 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
5179 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5180 - BUS_ACTIVATION -> BUS_STARTER
5181 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5182 - class MessageIter (__init__): Added recursion checking
5183 so we throw a nice error instead of just disconnecting from the
5185 (get): Added arg_type parameter for recursion.
5186 Removed the nil type
5187 Added signiture type placeholder (not implemented)
5188 Added struct type placeholder (not implemented)
5189 Added varient type placeholder (not implemented)
5190 Commented out dict type for now
5191 (get_element_type): renamed from get_array_type
5192 (get_*): changed to use the dbus_message_iter_get_basic API
5193 (get_*_array): removed in favor of recursive get_array method
5194 (get_array): new recursive method which calls get to marshal
5195 the elements of the array
5196 (value_to_dbus_sig): New method returns the corrasponding
5197 dbus signiture to a python value
5198 (append): Comment out dict handling for now
5199 Handle lists with the new recursive API
5200 Comment out None handling for now
5201 (append_nil): removed
5202 (append_*): changed to use dbus_message_iter_append_basic API
5203 (append_*_array): removed in favor of recursive append_array
5205 (__str__): Make it easier to print out recursive iterators
5207 - class Message (__str__): moved type inspection to the
5208 MessageIter class' __str__ method
5209 (get_iter): Added an append parameter wich defaults to False
5210 If True use the new API's to create an append iterator
5212 * python/dbus.py: Update to use new bindings API
5213 - TYPE_ACTIVATION -> TYPE_STARTER
5214 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5215 - class ActivationBus -> class StarterBus
5216 - class RemoteObject (__call__): get an append iterator
5217 - (_dispatch_dbus_method_call): get an append iterator
5218 - class Object (emit_signal): get an append iterator
5220 * python/examples/: Fixed up the examples to work with the new API
5222 2005-01-28 Joe Shaw <joeshaw@novell.com>
5224 * configure.in: Bump version up to 0.30.
5226 * HACKING: Add a release item to bump the version number up after
5229 2005-01-28 Havoc Pennington <hp@redhat.com>
5231 * doc/dbus-specification.xml: update to describe 16-bit types and
5234 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5237 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5240 * dbus/dbus-marshal-recursive.c: implement
5242 2005-01-27 Havoc Pennington <hp@redhat.com>
5244 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5246 * configure.in: find the right type for 16 and 32 bit ints as well
5249 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5250 the 16-bit types so people don't have to stuff them in 32-bit or
5253 2005-01-27 Havoc Pennington <hp@redhat.com>
5255 * dbus/dbus-message.c: byteswap the message if you init an
5256 iterator to read/write from it
5258 * dbus/dbus-marshal-byteswap.c: new file implementing
5259 _dbus_marshal_byteswap()
5261 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5263 2005-01-26 Havoc Pennington <hp@redhat.com>
5265 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5266 build, apparently - nobody noticed?)
5268 2005-01-26 Havoc Pennington <hp@redhat.com>
5270 * dbus/dbus-marshal-recursive.h: remove todo comment
5272 2005-01-25 Joe Shaw <joeshaw@novell.com>
5274 * Land the mono binding changes to conform to the new APIs.
5276 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5277 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5279 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5280 type code as a string.
5281 (InitAppending): Rename dbus_message_append_iter_init() to
5282 dbus_message_iter_init_append().
5284 * mono/BusDriver.cs: Rename ServiceEventHandler to
5285 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5286 Rename ServiceOwnerChanged to NameOwnerChanged.
5288 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5291 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5293 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5294 dbus_bus_acquire_service() to dbus_bus_request_name().
5296 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5297 of Type.UnderlyingSystemType to get the correct element type for
5299 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5300 dbus_message_get_{element|arg}_type() instead of
5301 dbus_message_iter_init_array_iterator().
5302 (Append): Replace dbus_message_iter_append_array() with
5303 dbus_message_iter_open_container() and
5304 dbus_message_iter_close_container().
5306 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5307 types have been removed.
5309 * mono/DBusType/*.cs: Replace calls of
5310 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5311 but specify the type in the DllImport extern declaration. Ditto
5312 for dbus_message_iter_append_[type]() ->
5313 dbus_message_iter_append_basic().
5315 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5316 NameOwnerChangedHandler.
5318 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5320 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5321 - get_base_service -> get_unique_name
5322 - bus_get_base_service -> bus_get_unique_name
5323 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5324 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5325 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5326 - bus_activate_service -> bus_start_service_by_name
5327 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5328 - bus_acquire_service -> bus_request_name
5329 - dbus_bus_acquire_service -> dbus_bus_request_name
5330 - bus_service_exists -> bus_name_has_owner
5331 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5333 * python/dbus.py: Rename of methods
5334 - activate_service -> start_service_by_name
5335 - bus_acquire_service -> bus_request_name
5336 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5337 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5340 2005-01-24 Joe Shaw <joeshaw@novell.com>
5342 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5343 signature for the method that can't be found.
5345 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5346 the message has any arguments, we need to call
5347 _dbus_type_reader_get_current_type(), not
5348 _dbus_type_reader_has_next().
5350 2005-01-24 Havoc Pennington <hp@redhat.com>
5352 * dbus/dbus-message-factory.c: more testing of message validation
5354 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5357 2005-01-23 Havoc Pennington <hp@redhat.com>
5359 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5360 get this all working, not many tests in the framework yet though
5362 2005-01-22 Havoc Pennington <hp@redhat.com>
5364 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5365 tutorial, based on work from David Wheeler.
5367 2005-01-21 Havoc Pennington <hp@redhat.com>
5369 * dbus/dbus-bus.c: add more return_if_fail checks
5371 * dbus/dbus-message.c (load_message): have the "no validation"
5372 mode (have to edit the code to toggle the mode for now though)
5374 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5375 skips all validation; I want to use this at least for benchmark
5376 baseline, I'm not sure if it should be a publicly-available switch.
5378 2005-01-21 Havoc Pennington <hp@redhat.com>
5380 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5381 toplevel doxygen group as the low-level API stuff
5383 * dbus/dbus.h: note that libdbus is the low-level API
5385 2005-01-20 Havoc Pennington <hp@redhat.com>
5387 * update-dbus-docs.sh: script to update docs on the web site, only
5388 works for me though. neener.
5390 2005-01-20 Havoc Pennington <hp@redhat.com>
5392 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5393 code can reveal bugs in it
5395 2005-01-20 Havoc Pennington <hp@redhat.com>
5397 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5398 select() version, patches from Tor Lillqvist
5400 2005-01-20 Havoc Pennington <hp@redhat.com>
5402 * doc/dbus-tutorial.xml: replace > with >
5404 * bus/services.c (bus_registry_acquire_service): validate the name
5405 and return a better error if it's no good.
5407 * doc/dbus-specification.xml: note NO_AUTO_START change
5409 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5410 from AUTO_START, we're toggling the default
5412 * bus/dispatch.c: adapt the tests to change of auto-start default
5414 2005-01-18 Havoc Pennington <hp@redhat.com>
5416 * rename dbus-daemon-1 to dbus-daemon throughout
5418 2005-01-18 Havoc Pennington <hp@redhat.com>
5420 * Throughout, grand renaming to strip out the use of "service",
5421 just say "name" instead (or "bus name" when ambiguous). Did not
5422 change the internal code of the message bus itself, only the
5423 programmer-facing API and messages.
5425 * doc/dbus-specification.xml: further update the message bus section
5427 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5430 2005-01-17 Havoc Pennington <hp@redhat.com>
5432 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5435 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5436 "invalid name character" not only non-ASCII
5438 * doc/dbus-specification.xml: further update spec, message bus
5439 parts are still out-of-date but the marshaling etc. stuff is now
5442 2005-01-17 Havoc Pennington <hp@redhat.com>
5444 * doc/dbus-specification.xml: partially update spec
5446 2005-01-17 Havoc Pennington <hp@redhat.com>
5448 * Throughout, align variant bodies according to the contained
5449 type, rather than always to 8. Should save a fair bit of space in
5452 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5453 fix handling of case where p == end
5455 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5457 2005-01-17 Havoc Pennington <hp@redhat.com>
5459 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5461 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5462 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5463 are marshaling/unmarshaling a boolean.
5465 2005-01-16 Havoc Pennington <hp@redhat.com>
5467 This is about it on what can be disabled/deleted from libdbus
5468 easily, back below 150K anyhow. Deeper cuts are more work than
5469 just turning the code off as I've done here.
5471 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5472 signed int convenience funcs
5474 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5477 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5478 things out of libdbus
5480 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5482 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5483 tests-enabled-only, though it should probably be deleted)
5485 * dbus/dbus-message-util.c: same stuff
5487 * dbus/dbus-auth-util.c: same stuff
5489 2005-01-16 Havoc Pennington <hp@redhat.com>
5491 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5493 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5494 way for stripping down dbus-userdb.c stuff included in libdbus.
5495 Rename _dbus_parse_uid for consistency.
5497 2005-01-16 Havoc Pennington <hp@redhat.com>
5499 * dbus/dbus-internals.c (_dbus_real_assert): print the function
5500 name the assertion failed in
5502 * dbus/dbus-internals.h (_dbus_return_if_fail)
5503 (_dbus_return_val_if_fail): assert that the name of the function
5504 containing the check doesn't start with '_', since we only want to
5505 use checks on public functions
5507 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5508 checks to assertions
5510 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5511 change checks to asserts for private function
5513 * dbus/dbus-message.c (_dbus_message_set_serial): checks
5514 to asserts for private function
5516 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5517 broken assertion that was breaking make check
5518 (_dbus_type_reader_array_is_empty): remove this rather than fix
5519 it, was only used in assertions
5521 2005-01-16 Havoc Pennington <hp@redhat.com>
5523 * test/unused-code-gc.py: hacky script to find code that's used
5524 only by the bus (not libdbus) or used only by tests or not used at
5525 all. It has some false alarms, but looks like we can clean up a
5526 lot of size from libdbus.
5528 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5529 dbus/Makefile.am: initially move 10K of binary size out of libdbus
5531 2005-01-16 Havoc Pennington <hp@redhat.com>
5533 * Add and fix docs according to Doxygen warnings throughout
5536 * dbus/dbus-marshal-recursive.c
5537 (_dbus_type_reader_array_is_empty): change this to just call
5538 array_reader_get_array_len() and make it static
5540 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5542 (dbus_message_iter_init_append): rename from append_iter_init
5544 * dbus/dbus-marshal-recursive.c
5545 (_dbus_type_reader_get_element_type): rename from
5546 _dbus_type_reader_get_array_type
5548 2005-01-15 Havoc Pennington <hp@redhat.com>
5550 * test/glib/test-profile.c (with_bus_server_filter): fix crash
5552 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5553 when DBUS_DISABLE_ASSERT
5554 (_dbus_marshal_set_basic): be sure we align for the string length
5556 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5559 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5560 inline macro version
5561 (_dbus_string_set_byte): provide inline macro version
5563 2005-01-15 Havoc Pennington <hp@redhat.com>
5565 * Land the new message args API and type system.
5567 This patch is huge, but the public API change is not
5568 really large. The set of D-BUS types has changed somewhat,
5569 and the arg "getters" are more geared toward language bindings;
5570 they don't make a copy, etc.
5572 There are also some known issues. See these emails for details
5574 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5575 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5577 * dbus/dbus-marshal-*: all the new stuff
5579 * dbus/dbus-message.c: basically rewritten
5581 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5582 freed blocks to be all non-nul bytes so using freed memory is less
5583 likely to work right
5585 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5586 DBUS_FAIL_MALLOC=N environment variable, so you can do
5587 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5588 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5591 * qt/message.cpp: port to the new message args API
5592 (operator<<): use str.utf8() rather than str.unicode()
5593 (pretty sure this is right from the Qt docs?)
5595 * glib/dbus-gvalue.c: port to the new message args API
5597 * bus/dispatch.c, bus/driver.c: port to the new message args API
5599 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5600 "locked" flag to TRUE and align_offset to 0; I guess we never
5601 looked at these anyhow, but seems cleaner.
5603 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5604 move allocation padding macro to this header; use it to implement
5605 (_DBUS_STRING_STATIC): ability to declare a static string.
5607 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5608 change to return TRUE if the interface is not set.
5610 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5611 to dbus-marshal-validate.[hc]
5613 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5616 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5617 to dbus-marshal-*.[hc]
5619 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5620 function here from dbus-marshal.c
5622 2005-01-12 Joe Shaw <joeshaw@novell.com>
5624 * NEWS: Update for 0.23.
5626 * configure.in: Release 0.23.
5628 2005-01-12 Joe Shaw <joeshaw@novell.com>
5630 * mono/Makefile.am, mono/example/Makefile.am: Always build the
5631 dbus DLL with --debug. Clean up after the .mdb files this leaves
5634 * mono/doc/Makefile.am: Need to uninstall the docs on "make
5637 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5638 is an enum, get the enum's underlying type. Another mono
5641 2005-01-11 Joe Shaw <joeshaw@novell.com>
5643 Patch from Sjoerd Simons <sjoerd@luon.net>
5645 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5646 DESTDIR. It breaks stuff.
5648 2005-01-11 Joe Shaw <joeshaw@novell.com>
5650 Patch from Tambet Ingo <tambet@ximian.com>
5652 * mono/DBusType/Array.cs (Get): Get the underlying element type by
5653 calling type.GetElementType(). The code previously depended on
5654 broken Mono behavior, which was fixed in Mono 1.1.3.
5656 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5657 Activator.CreateInstance() so that the class's constructor is
5658 called with the right parameters.
5660 2005-01-11 Joe Shaw <joeshaw@novell.com>
5662 Patch from Timo Teräs <ext-timo.teras@nokia.com>
5664 * dbus/dbus-connection.c
5665 (_dbus_connection_queue_received_message_link): Call
5666 _dbus_connection_remove_timeout() instead of the _locked()
5667 variant, since it's always called from
5668 _dbus_connection_handle_watch(), which handles the locking.
5669 Removed the _locked() variant since it's no longer used.
5671 2005-01-03 Havoc Pennington <hp@redhat.com>
5673 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5676 2004-12-26 Havoc Pennington <hp@redhat.com>
5678 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5680 2005-01-03 Havoc Pennington <hp@redhat.com>
5682 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5685 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5687 2005-01-02 Havoc Pennington <hp@redhat.com>
5689 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5691 2005-01-01 Havoc Pennington <hp@redhat.com>
5693 * configure.in: add -Wfloat-equal
5695 2005-01-01 Havoc Pennington <hp@redhat.com>
5697 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
5698 for a variety of reasons '==' doesn't do this.
5700 2004-12-31 Havoc Pennington <hp@redhat.com>
5702 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5703 I keep wishing I had
5705 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5707 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5709 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5711 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5712 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5713 dbus-protocol.h. Because they are defines and not enums they are not
5716 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
5718 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5719 dbus_bus_activate_service
5721 * python/dbus.py (Bus.activate_service): activate a service on the
5724 2004-12-24 Havoc Pennington <hp@redhat.com>
5726 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5727 file format has also changed and I haven't adapted to that yet
5729 * Makefile.am: load .gcno files from latest gcc
5731 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
5732 * Patch from Rob Taylor <robtaylor@fastmail.fm>
5734 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5737 * python/dbus.py (get_unix_user): Added binding to
5738 call dbus_bindings.bus_get_unix_user
5740 * python/extract.py: Modified the proto_pat regex to
5741 handle unsigned long
5743 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5745 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5746 better POSIX compliance.
5748 2004-12-19 Havoc Pennington <hp@redhat.com>
5750 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
5751 (_dbus_string_insert_8_aligned): new functions
5753 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5755 2004-12-18 Havoc Pennington <hp@redhat.com>
5757 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5760 * dbus/dbus-message.c: fix a comment, and add a still-unused
5761 not-implemented function
5763 * dbus/dbus-marshal.h: fix comment
5765 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5767 2004-12-17 Joe Shaw <joeshaw@novell.com>
5769 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5770 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5771 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5772 Type.UnderlyingSystemType to get the actual system type
5773 underneath. This code previously depended on the broken Mono
5774 behavior, which was fixed in 1.1.3.
5776 2004-11-27 Havoc Pennington <hp@redhat.com>
5778 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5780 (_dbus_string_get_const_data): inline when asserts are disabled
5782 * dbus/dbus-message.c: record the _dbus_current_generation of
5783 creation so we can complain if dbus_shutdown() is used improperly.
5784 Do this only if checks are enabled.
5786 * dbus/dbus-connection.c: ditto
5788 2004-11-26 Havoc Pennington <hp@redhat.com>
5790 * test/glib/test-profile.c: add with_bus mode to profile echoes
5791 that go through the bus.
5793 * test/glib/run-test.sh: add ability to run test-profile
5795 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5798 2004-11-26 Havoc Pennington <hp@redhat.com>
5800 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5801 thing was implemented
5803 2004-11-26 Havoc Pennington <hp@redhat.com>
5805 * test/glib/test-profile.c: tweak a bit, add support for some
5806 made-up minimal malloc overhead with plain sockets, since in
5807 real life some sort of buffers are unavoidable thus we could
5808 count them in the theoretical best case
5810 2004-11-26 Havoc Pennington <hp@redhat.com>
5812 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5813 where I was trying to cache one too many messages
5815 2004-11-26 Havoc Pennington <hp@redhat.com>
5817 * dbus/dbus-message.c: reimplement message cache as an array which
5818 makes the cache about twice as fast and saves maybe 1.5% overall
5820 2004-11-26 Havoc Pennington <hp@redhat.com>
5822 * dbus/dbus-threads.c (init_global_locks): forgot to put the
5823 message cache lock here
5825 2004-11-26 Havoc Pennington <hp@redhat.com>
5827 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5828 the "char byte_order" next to each other to save 4 bytes
5829 (dbus_message_new_empty_header): reduce preallocation, since the
5830 message cache should achieve a similar effect
5831 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5832 message cache that keeps a few DBusMessage around in a pool,
5833 another 8% speedup or so.
5835 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5837 2004-11-25 Havoc Pennington <hp@redhat.com>
5839 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5840 to write, without reading or blocking, try it before the poll()
5841 and skip the poll() if nothing remains to write. This is about a
5842 3% speedup in the echo client/server
5844 2004-11-25 Havoc Pennington <hp@redhat.com>
5846 The primary change here is to always write() once before adding
5847 the write watch, which gives us about a 10% performance increase.
5849 * dbus/dbus-transport-unix.c: a number of modifications to cope
5850 with removing messages_pending
5851 (check_write_watch): properly handle
5852 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5853 messages_pending stuff
5854 (check_read_watch): properly handle WAITING_FOR_MEMORY and
5856 (unix_handle_watch): after writing, see if the write watch can be
5858 (unix_do_iteration): assert that write_watch/read_watch are
5859 non-NULL rather than testing that they aren't, since they
5860 aren't allowed to be NULL. check_write_watch() at the end so
5861 we add the watch if we did not finish writing (e.g. got EAGAIN)
5863 * dbus/dbus-transport-protected.h: remove messages_pending call,
5864 since it resulted in too much inefficient watch adding/removing;
5865 instead we now require that the transport user does an iteration
5866 after queueing outgoing messages, and after trying the first
5867 write() we add a write watch if we got EAGAIN or exceeded our
5868 max bytes to write per iteration setting
5870 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5873 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5874 freed and then accessed, valgrind flagged this bug, fix it
5876 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5877 as the last valid field plus 1, where really it is equal to the
5878 last valid field. Corrects some message corruption issues.
5880 * dbus/dbus-mainloop.c: verbosity changes
5882 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5883 instead of aborting in one of the test codepaths
5885 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5886 caused not printing the pid ever again if a verbose was missing
5887 the newline at the end
5888 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5890 * dbus/dbus-connection.c: verbosity changes;
5891 (dbus_connection_has_messages_to_send): new function
5892 (_dbus_connection_message_sent): no longer call transport->messages_pending
5893 (_dbus_connection_send_preallocated_unlocked): do one iteration to
5894 try to write() immediately, so we can avoid the write watch. This
5895 is the core purpose of this patchset
5896 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5897 dump the outgoing message queue, so nobody will get confused
5898 trying to send them or thinking stuff is pending to be sent
5900 * bus/test.c: verbosity changes
5902 * bus/driver.c: verbosity/assertion changes
5904 * bus/dispatch.c: a bunch of little tweaks to get it working again
5905 because this patchset changes when/where you need to block.
5907 2004-11-23 Havoc Pennington <hp@redhat.com>
5909 * test/glib/test-profile.c: modify to accept a plain_sockets
5910 argument in which case it will bench plain sockets instead of
5911 libdbus, for comparison purposes.
5913 2004-11-22 Havoc Pennington <hp@redhat.com>
5915 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5916 threads for more time, so sysprof can get a grip on it.
5918 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5921 2004-11-13 Havoc Pennington <hp@redhat.com>
5923 * test/glib/test-profile.c: fix this thing up a bit
5925 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5926 preallocation sizes by a fair bit; not sure if this will be an
5927 overall performance win or not, but it does reduce reallocs.
5929 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5930 the test hack that forced constant realloc if asserts are
5931 disabled, so we can profile sanely. Sprinkle in some
5932 _DBUS_UNLIKELY() which are probably pointless, but before I
5933 noticed the real performance problem I put them in.
5934 (_dbus_string_validate_utf8): micro-optimize this thing a little
5935 bit, though callgrind says it didn't help; then special-case
5936 ascii, which did help a lot; then be sure we detect nul bytes as
5937 invalid, which is a bugfix.
5938 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5939 superstition; use memset to nul the padding instead of a manual
5941 (_dbus_string_get_length): inline this as a
5942 macro; it showed up in the profile because it's used for loop
5945 2004-11-10 Colin Walters <walters@verbum.org>
5947 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5950 2004-11-09 Colin Walters <walters@verbum.org>
5952 * dbus/dbus-string.c (_dbus_string_get_length): New
5953 function, writes DBusString to C buffer.
5955 * dbus/dbus-string.h: Prototype it.
5957 * dbus/dbus-message.c (dbus_message_type_to_string): New
5958 function, converts message type into C string.
5960 * dbus/dbus-message.h: Prototype it.
5962 * bus/selinux.c (bus_selinux_check): Take source pid,
5963 target pid, and audit data. Pass audit data to
5965 (log_audit_callback): New function, appends extra
5967 (bus_selinux_allows_acquire_service): Also take
5968 service name, add it to audit data.
5969 (bus_selinux_allows_send): Also take message
5970 type, interface, method member, error name,
5971 and destination, and add them to audit data.
5972 (log_cb): Initialize func_audit.
5974 * bus/selinux.h (bus_selinux_allows_acquire_service)
5975 (bus_selinux_allows_send): Update prototypes
5977 * bus/services.c (bus_registry_acquire_service): Pass
5978 service name to bus_selinux_allows_acquire_service.
5980 * bus/bus.c (bus_context_check_security_policy): Pass
5981 additional audit data. Move assignment of dest
5984 2004-11-07 Colin Walters <walters@verbum.org>
5986 * dbus/dbus-transport-unix.c (do_authentication): Always
5987 initialize auth_completed.
5989 2004-11-07 Colin Walters <walters@verbum.org>
5991 * bus/bus.c (load_config): Break into three
5992 separate functions: process_config_first_time_only,
5993 process_config_every_time, and process_config_postinit.
5994 (process_config_every_time): Move call of
5995 bus_registry_set_service_context_table into
5996 process_config_postinit.
5997 (process_config_postinit): New function, does
5998 any processing that needs to happen late
5999 in initialization (and also on reload).
6000 (bus_context_new): Instead of calling load_config,
6001 open config parser here and call process_config_first_time_only
6002 and process_config_every_time directly. Later, after
6003 we have forked but before changing UID,
6004 invoke bus_selinux_full_init, and then call
6005 process_config_postinit.
6006 (bus_context_reload_config): As in bus_context_new,
6007 load parse file inside here, and call process_config_every_time
6008 and process_config_postinit.
6010 * bus/services.h, bus/services.c
6011 (bus_registry_set_service_context_table): Rename
6012 from bus_registry_set_sid_table. Take string hash from config
6013 parser, and convert them here into SIDs.
6015 * bus/config-parser.c (struct BusConfigParser): Have
6016 config parser only store a mapping of service->context
6018 (merge_service_context_hash): New function.
6019 (merge_included): Merge context string hashes instead
6020 of using bus_selinux_id_table_union.
6021 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6022 simply create a new string hash.
6023 (bus_config_parser_unref): Unref it.
6024 (start_selinux_child): Simply insert strings into hash,
6025 don't call bus_selinux_id_table_copy_over.
6027 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6028 (bus_selinux_id_table_copy_over): Delete.
6030 2004-11-03 Colin Walters <walters@verbum.org>
6032 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6035 2004-11-03 Colin Walters <walters@verbum.org>
6037 * bus/test-main.c (test_pre_hook): Fix test logic,
6038 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6040 2004-11-02 Colin Walters <walters@redhat.com>
6042 * bus/selinux.c (bus_selinux_init): Split into two functions,
6043 bus_selinux_pre_init and bus_selinux_post_init.
6044 (bus_selinux_pre_init): Just determine whether SELinux is
6046 (bus_selinux_post_init): Do everything else.
6048 * bus/main.c (main): Call bus_selinux_pre_init before parsing
6049 config file, and bus_selinux_post_init after. This ensures that
6050 we don't lose the policyreload notification thread that
6051 bus_selinux_init created before forking previously.
6053 * bus/test-main.c (test_pre_hook): Update for split.
6055 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
6057 Patch from Johan Fischer <linux@fischaz.com>
6059 * mono/doc/Makefile.am (install-data-local): Added directory
6062 2004-10-29 Colin Walters <walters@redhat.com>
6064 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6065 parameter for fd to write pid to.
6067 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6069 * bus/bus.c (bus_context_new): Pass print_pid_fd
6070 to _dbus_become_daemon (bug #1720)
6072 2004-10-29 Colin Walters <walters@redhat.com>
6074 Patch from Ed Catmur <ed@catmur.co.uk>
6076 * mono/doc/Makefile.am (install-data-local): Handle
6079 2004-10-29 Colin Walters <walters@redhat.com>
6081 * bus/.cvsignore, qt/.cvsignore: Update.
6083 2004-10-29 Colin Walters <walters@redhat.com>
6085 Patch from Kristof Vansant <de_lupus@pandora.be>
6087 * configure.in: Detect Slackware.
6088 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6089 * bus/rc.messagebus.in: New file.
6091 2004-10-29 Colin Walters <walters@redhat.com>
6093 * tools/dbus-monitor.c (filter_func): Return
6094 DBUS_HANDLER_RESULT_HANDLED in filter function
6096 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6098 2004-10-29 Colin Walters <walters@redhat.com>
6100 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6102 * bus/services.c (bus_registry_acquire_service):
6103 Correctly retrieve service name from DBusString
6106 2004-10-29 Colin Walters <walters@redhat.com>
6108 * dbus/dbus-glib.h: Update documentation to not
6109 refer to internal APIs.
6111 2004-10-27 Joe Shaw <joeshaw@novell.com>
6113 * mono/Arguments.cs (GetDBusTypeConstructor):
6114 type.UnderlyingSystemType will return "System.Byte" if you do it
6115 on "byte[]", which is not what we want. So check the type.IsArray
6116 property and use System.Array instead.
6118 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
6120 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6121 the DBusUserInfo structure since this is passed into the function.
6122 This would cause a double free when the function that allocated
6123 the structure would try to free it when an error occured.
6125 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6126 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6127 for service activation to avoid 32bit/64bit parallel install issues
6129 2004-10-21 Colin Walters <walters@verbum.org>
6131 * AUTHORS: Fix my email address, the @gnu.org one
6132 has been bouncing for some time. Also add J5.
6134 2004-10-21 Colin Walters <walters@verbum.org>
6136 * dbus/dbus-transport-unix.c (do_authentication): Return
6137 authentication status to callers.
6138 (unix_handle_watch): If we completed authentication this round,
6139 don't do another read. Instead wait until the next iteration,
6140 after we've read any pending data in the auth buffer.
6141 (unix_do_iteration): Ditto.
6142 (unix_handle_watch): Updated for new do_authentication prototype.
6144 2004-10-18 Colin Walters <walters@verbum.org>
6146 * bus/selinux.c (bus_selinux_enabled): Handle
6147 --disable-selinux case.
6149 2004-10-18 Colin Walters <walters@verbum.org>
6151 * bus/selinux.h: Add bus_selinux_enabled.
6153 * bus/selinux.c (bus_selinux_enabled): Implement it.
6155 * bus/config-parser.c (struct include): Add
6156 if_selinux_enabled member.
6157 (start_busconfig_child): Parse if_selinux_enabled
6158 attribute for include.
6159 (bus_config_parser_content): Handle it.
6161 * bus/session.conf.in, bus/system.conf.in: Add
6162 inclusion of context mapping to default config files;
6163 conditional on SELinux being enabled.
6165 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6167 * test/data/invalid-config-files/badselinux-1.conf,
6168 test/data/invalid-config-files/badselinux-2.conf:
6169 Test files for bad syntax.
6171 2004-10-17 Colin Walters <walters@verbum.org>
6173 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6174 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6175 format specifier mismatches.
6177 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
6179 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6182 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6183 pointer (bug #1540, Leonardo Boiko).
6185 2004-09-28 Jon Trowbridge <trow@ximian.com>
6187 * mono/BusDriver.cs: Changed BusDriver struct to remove
6188 the ServiceCreated and ServiceDeleted events and replace them
6189 with the new ServiceOwnerChanged event.
6191 * mono/example/BusListener.cs: Added a new example program,
6192 which listens for and reports any ServiceOwnerChanged events
6195 * mono/example/Makefile.am (DESTDIR): Build changes for the
6196 new BusListener.cs example.
6198 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6200 * bus/signals.c (bus_match_rule_parse): validate the components of
6201 match rules (bug #1439).
6203 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6205 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6207 * doc/dbus-specification.xml: document ServiceOwnerChanged
6210 * bus/driver.c, bus/driver.h, bus/services.c: Use
6211 ServiceOwnerChanged signal instead of ServiceCreated and
6214 * bus/dispatch.c: update testcase for the new signal.
6216 2004-09-20 Jon Trowbridge <trow@ximian.com>
6218 Patch from Nat Friedman <nat@novell.com>
6220 * mono/Makefile.am: A number of small build fixes to allow "make
6221 distcheck" to succeed.
6223 * mono/example/Makefile.am: "make distcheck" fixes.
6225 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6228 * test/Makefile.am: "make distcheck" fixes.
6230 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6232 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6234 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6236 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6237 messages after the first one (bug #1389).
6239 * bus/dispatch.c (check_double_hello_message): add a test case for
6240 the double hello message bug.
6241 (check_existent_service_activation): fix check of spawning error.
6243 2004-09-16 David Zeuthen <david@fubar.dk>
6245 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6247 2004-09-12 David Zeuthen <david@fubar.dk>
6249 Patch from Kay Sievers <kay.sievers@vrfy.org>
6251 * bus/bus.c (bus_context_new):
6253 * bus/main.c (usage)
6255 Add commandline option --nofork to override configuration file
6258 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6260 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6261 compilers don't like it (bug #974).
6263 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6265 * qt/connection.*: Applied patch by Jérôme Lodewyck
6266 <lodewyck@clipper.ens.fr> to integrate an existing
6267 connection into the Qt eventloop
6269 2004-08-30 Jon Trowbridge <trow@ximian.com>
6271 * mono/BusDriver.cs: Added. This is a class for interacting with
6272 the org.freedesktop.DBus service.
6274 * mono/Message.cs: Added a mechanism to expose the message that is
6275 currently being dispatched via the static Message.Current
6276 property. Added Message.Sender and Message.Destination
6279 * mono/Handler.cs: Expose the dispatched message via
6280 Message.Current when handling method calls.
6282 * mono/Service.cs: Expose the dispatched message via
6283 Message.Current when handling signal emissions.
6285 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6286 Connection.BaseService property.
6288 2004-08-28 Havoc Pennington <hp@redhat.com>
6290 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6292 More fixes from Steve Grubb
6294 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6295 (_dbus_listen_tcp_socket): fix fd leak
6297 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6298 EINTR to a bit lower in the code
6300 2004-08-26 Jon Trowbridge <trow@ximian.com>
6302 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6303 TRUE if we are inquiring about the existence of the built-in
6304 org.freedesktop.DBus service.
6306 2004-08-25 John Palmieri <johnp@redhat.com>
6307 * bus/config-parser.c:
6308 (struct PolicyType): Add POLICY_CONSOLE
6309 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6310 (start_busconfig_child): Sets up console element when
6311 <policy at_console=""> is encountered in a policy file
6312 (append_rule_from_element): Convert console elements to console
6316 (bus_policy_create_client_policy): Add console rules to the client
6317 policy based on if the client is at the console
6318 (bus_policy_append_console_rule): New function for adding a
6319 console rule to a policy
6320 (bus_policy_merge): Handle console rule merging
6322 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6323 where we check for console user files
6325 * dbus/dbus-sysdeps.c:
6326 (_dbus_file_exists): New function which checks if the given
6328 (_dbus_user_at_console): New function which does the system
6329 specific process of checking if the user is at the console
6331 * dbus/dbus-userdb.c:
6332 (_dbus_is_console_user): New function converts a UID to user name
6333 and then calls the system specific _dbus_user_at_console to
6334 see if the user is at the console and therefor a console user
6336 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6338 * bus/config-parser.c (set_limit):
6339 * bus/dbus-daemon-1.1.in:
6340 * test/data/valid-config-files/many-rules.conf: set the
6341 max_match_rules_per_connection limt from the config file.
6343 * doc/busconfig.dtd: update the DTD.
6345 * bus/driver.c: remove some unused variables.
6347 2004-08-24 Mikael Hallendal <micke@imendio.com>
6349 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6350 it's been replaced by dbus_g_bus_get
6352 2004-08-23 Colin Walters <walters@redhat.com>
6354 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6356 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6358 * bus/selinux.c: Create a thread for policy reload notification.
6359 (bus_selinux_get_policy_root): Implement.
6361 * bus/config-parser.c (start_busconfig_child)
6362 (bus_config_parser_content): Support SELinux-root relative
6365 * configure.in <HAVE_SELINUX>: Add -lpthread.
6367 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6368 (test_post_hook): Move memory checking into here.
6369 (test_pre_hook, test_post_hook): Move SELinux checks in
6370 here, but conditional on a DBUS_TEST_SELINUX environment
6371 variable. Unfortunately we can't run the SELinux checks
6372 as a normal user, since they won't have any permissions
6373 for /selinux. So this will have to be tested manually
6374 for now, until we have virtualization for most of
6377 2004-08-23 Havoc Pennington <hp@redhat.com>
6379 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6380 drop supplementary groups, suggested by Steve Grubb
6382 2004-08-20 Colin Walters <walters@redhat.com>
6384 * bus/config-parser.c (start_busconfig_child): Remove some unused
6387 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6390 2004-08-17 Joe Shaw <joeshaw@novell.com>
6392 * configure.in: If --enable-mono is passed in, if we can't find
6395 * mono/Makefile.am: Use /gacutil to install assemblies into the
6398 2004-08-12 Havoc Pennington <hp@redhat.com>
6400 * NEWS: update for 0.22
6402 * configure.in: release 0.22
6404 2004-08-11 Colin Walters <walters@redhat.com>
6406 * tools/dbus-send.c (main, usage): Add --reply-timeout
6409 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6411 * bus/bus.c (process_config_first_time_only): get rid of an unused
6412 DBusError that was causing a memoy leak (bug #989).
6414 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6415 fix compilation on Solaris/Forte C (bug #974)
6417 * bus/main.c (main): plug two minuscule memleaks.
6419 2004-08-10 Havoc Pennington <hp@redhat.com>
6421 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6423 2004-08-09 Havoc Pennington <hp@redhat.com>
6425 * COPYING: switch to Academic Free License version 2.1 instead of
6426 2.0, to resolve complaints about patent termination clause.
6428 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6430 * README: added documentation for the --enable-python
6433 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6435 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6436 _unref in the SELinux support.
6438 * doc/busconfig.dtd: update DTD for SELinux support.
6440 * bus/config-loader-libxml.c: fix error handler and parser
6441 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6443 * configure.in: remove the warning about libxml2.
6445 * dbus/dbus-bus.c: silence doxygen warning.
6447 2004-07-31 Colin Walters <walters@redhat.com>
6449 * configure.in: Move #error in SELinux check to its own line.
6451 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6453 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6454 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6457 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6458 broken by the change in the _SET_OOM macros.
6460 2004-07-31 Colin Walters <walters@redhat.com>
6462 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6465 2004-07-31 Colin Walters <walters@redhat.com>
6467 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6468 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6471 2004-07-24 Havoc Pennington <hp@redhat.com>
6473 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6475 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6478 * configure.in: add --enable-selinux
6480 * bus/policy.c (bus_policy_merge): add FIXME to a comment
6482 * bus/main.c (main): initialize and shut down selinux
6484 * bus/connection.c: store SELinux ID on each connection, to avoid
6485 repeated getting of the string context and converting it into
6488 * bus/bus.c (bus_context_get_policy): new accessor, though it
6490 (bus_context_check_security_policy): check whether the security
6491 context of sender connection can send to the security context of
6492 recipient connection
6494 * bus/config-parser.c: add parsing for <selinux> and <associate>
6496 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6497 implement dbus_connection_get_unix_fd()
6499 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6500 function, used by the selinux stuff
6502 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
6504 * bus/config-loader-libxml.c: complete the implementation of
6505 libxml backend for config file loader. Doesn't work with full OOM
6508 * configure.in: change error when selecting libxml into a warning.
6510 * test/data/invalid-config-files: add two non-well-formed XML
6513 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6515 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6516 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6517 be necessary to read all the buffer. (bug #894)
6519 * bus/activation.c (bus_activation_activate_service): fix a
6520 potential assertion failure (bug #896). Small optimization in the
6521 case of auto-activation messages.
6523 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6524 add test case for byte-through-vararg bug (#901). patch by Kimmo
6527 2004-07-28 Anders Carlsson <andersca@gnome.org>
6530 * python/dbus_bindings.pyx.in:
6531 Add dbus.init_gthreads (), allow emit_signal to pass
6532 arguments to the signal.
6534 2004-07-24 Havoc Pennington <hp@redhat.com>
6536 * AUTHORS: add some people, not really comprehensively, let me
6537 know if I missed you
6539 2004-07-24 Havoc Pennington <hp@redhat.com>
6541 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6544 * test/Makefile.am (DIST_SUBDIRS): here also
6546 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6548 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6549 breaking build on Solaris, reported by Farhad Saberi on the ML.
6551 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6552 va_arg invocation to account for integer promotion in the case of
6553 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6555 * bus/services.c (bus_service_remove_owner): fix bug #902, use
6556 _dbus_list_get_first_link, not _dbus_list_get_first.
6558 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6560 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6561 handler functions so that the asserts in _dbus_object_subtree_unref
6564 * dbus/dbus-transport-unix.c (do_reading):
6565 _dbus_transport_queue_messages return value is of type
6566 dbus_bool_t, not DBusDispatchStatus.
6568 2004-07-19 David Zeuthen <david@fubar.dk>
6570 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6573 (check_get_connection_unix_user): Debug says GetProperty; but the
6574 method is called GetConnectionUnixUser
6575 (check_get_connection_unix_process_id): New function
6576 (bus_dispatch_test): Actually call check_get_connection_unix_user();
6577 also call check_get_connection_unix_process_id()
6580 (bus_driver_handle_get_connection_unix_process_id): New function,
6581 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6585 (handle_server_data_external_mech): Set pid from the credentials
6586 obtained from the socket
6588 * dbus/dbus-connection.c:
6589 (dbus_connection_get_unix_process_id): New function
6591 * dbus/dbus-connection.h:
6592 Add prototype for dbus_connection_get_unix_process_id
6594 * dbus/dbus-transport.c:
6595 (_dbus_transport_get_unix_process_id): New function
6597 * dbus/dbus-transport.h:
6598 Add prototype for _dbus_transport_get_unix_process_id
6600 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
6602 * dbus/dbus-message.c: Message counter fix, patch by Christian
6603 Hammond <chipx86@gnupdate.org>
6605 2004-07-18 Seth Nickell <seth@gnome.org>
6608 * python/dbus_bindings.pyx.in:
6609 * python/tests/test-client.py:
6611 Add dbus.ByteArray and dbus_bindings.ByteArray
6612 types so that byte streams can be passed back.
6614 Give jdahlin the heaps of credit that are so
6617 2004-07-12 Seth Nickell <seth@gnome.org>
6621 Add message argument to the default object_method_handler
6624 * python/dbus_bindings.pyx.in:
6626 Automatically return NIL when passed an empty list
6627 (we can't pass back a list since lists are typed
6628 and we don't have any idea what type the the client
6629 intended the list to be... :-( )
6631 2004-07-10 Seth Nickell <seth@gnome.org>
6633 * python/examples/Makefile.am:
6635 Fix distcheck breakage caused by new examples.
6637 2004-07-10 Seth Nickell <seth@gnome.org>
6641 Add "message" argument to service-side dbus.Object
6642 methods. This will break existing services written
6643 using the python bindings, but will allow extraction
6644 of all the message information (e.g. who its from).
6646 Add improved "object oriented" signal handling/emission.
6648 * python/examples/example-service.py:
6652 * python/examples/example-signal-emitter.py:
6653 * python/examples/example-signal-recipient.py:
6655 Two new examples that show how to emit and receive
6656 signals using the new APIs.
6658 * python/examples/example-signals.py:
6659 * python/examples/gconf-proxy-service.py:
6660 * python/examples/gconf-proxy-service2.py:
6662 Add "message" argument to service methods.
6664 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
6666 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6667 * dbus/bus.c (dbus_bus_get_unix_user)
6668 * doc/dbus-specification.xml: implement GetConnectionUnixUser
6669 method of org.freedesktop.DBus interface.
6671 * bus/dispatch.c: test case
6673 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
6675 * python/Makefile.am: switched include directory from glib/ to dbus/
6676 since dbus-glib.h moved
6678 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6680 * configure.in: prevent building the gcj stuff and libxml loader
6681 since they are broken.
6683 2004-06-20 Havoc Pennington <hp@redhat.com>
6685 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
6686 codes from the dbus error names
6688 * glib/dbus-glib.h: move to subdir dbus/ since it's included
6689 as dbus/dbus-glib.h and that breakage is now visible due to
6690 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6692 * glib/dbus-glib.h: s/gproxy/g_proxy/
6694 * dbus/dbus-shared.h: new header to hold stuff shared with
6697 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6700 * glib/dbus-glib.h (dbus_set_g_error): move to
6701 dbus-glib-lowlevel.h
6703 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6704 of stuff to enable this
6706 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6708 * a bunch of other changes with the same basic "separate glib
6709 bindings from dbus.h" theme
6711 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
6713 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6715 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6717 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6719 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6720 the reply value of the ServiceExists message.
6722 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
6724 * python/dbus_bindings.pyx.in: No longer need to parse path
6725 elements and pass them as arrays of strings. The C API now
6726 accepts plain path strings.
6727 (_build_parsed_path): removed
6729 2004-06-07 Havoc Pennington <hp@redhat.com>
6731 * doc/TODO: remove auto-activation item since it's done; sort
6732 items by importance/milestone
6734 2004-06-07 Havoc Pennington <hp@redhat.com>
6736 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6737 random signature when using REQUIRED_FIELDS (this hack won't work
6740 * dbus/dbus-message.c: change the signature to be a header field,
6741 instead of message->signature special-case string. Incremental
6742 step forward. Then we can fix up code to send the signature in the
6743 message, then fix up code to validate said signature, then fix up
6744 code to not put the typecodes inline, etc.
6745 (load_one_message): don't make up the signature after the fact
6746 (decode_header_data): require signature field for the known
6749 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6751 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6753 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
6755 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6757 * mono/Handler.cs: Updated to follow new path argument for
6758 (un-)registering objects.
6760 * mono/example/Makefile.am:
6762 * configure.in: Bumped required version for mono and use new -pkg
6765 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
6767 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6768 registration functions take the path argument as char* instead of
6771 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6772 split off the path decompostion part of
6773 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6776 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6778 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6780 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6781 machine approach. A state is implemented as a function that
6782 handles incoming events as specified for that state.
6784 * doc/dbus-specification.xml: Update auth protocol state machine
6785 specification to match implementation. Remove some leftover
6788 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6790 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6791 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6794 * Doxyfile.in: remove deprecated options.
6796 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6797 glib/test-thread.h, glib/test-thread-client.c,
6798 glib/test-thread-server.c, glib/test-profile.c,
6799 glib/test-dbus-glib.c: remove these unused files.
6801 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
6803 * dbus/dbus-object-tree.c
6804 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6805 non-fallback handlers (bug #684).
6806 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6807 (find_subtree_recurse): report wether the returned subtree is an
6808 exact match or a "fallback" match higher up in the tree.
6809 (object_tree_test_iteration): update test case.
6811 2004-06-01 Seth Nickell <seth@gnome.org>
6813 * python/dbus_bindings.pyx.in:
6814 * python/tests/test-client.py:
6816 Round off basic type support. Add dicts (yay!), and
6817 remaining array types.
6819 Make MessageIter more general so it works for dicts too.
6821 Mark all loop variables as C integers.
6823 2004-05-31 Havoc Pennington <hp@redhat.com>
6825 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6828 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6830 * glib/dbus-glib-tool.c (main): set up to have a --self-test
6831 option that runs the tests, and start filling in some code
6832 including for starters just dumping the interfaces to stdout
6834 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6836 * test/data/valid-introspection-files/lots-of-types.xml: test of
6837 an example introspection file
6839 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6842 2004-05-31 Seth Nickell <seth@gnome.org>
6844 * python/dbus_bindings.pyx.in:
6845 * python/tests/test-client.py:
6850 Fix string array memory trashing bug... oops...
6852 2004-05-30 Seth Nickell <seth@gnome.org>
6856 Add a nicer-but-less-flexible alternate API for handling
6857 calls to virtual objects in dbus.ObjectTree.
6859 Screw up the argument order to the dbus.Object constructor
6860 for consistency with dbus.ObjectTree (and to make dbus_methods
6861 optional for future extension)
6863 * python/examples/Makefile.am:
6864 * python/examples/gconf-proxy-service.py:
6865 * python/examples/gconf-proxy-service2.py:
6867 Alternate implementation of gconf-proxy-service using the
6868 nicer dbus.ObjectTree API.
6870 * python/examples/example-service.py:
6871 * python/tests/test-server.py
6873 Reverse the argument order to deal with dbus.Object constructor
6876 2004-05-30 Seth Nickell <seth@gnome.org>
6878 * python/examples/example-client.py:
6879 * python/examples/example-service.py:
6881 Take it back. Lists seem to work but they're broken
6882 in the test suite. Make the base examples use
6885 2004-05-30 Seth Nickell <seth@gnome.org>
6887 * python/dbus_bindings.pyx.in:
6888 * python/tests/test-client.py:
6890 Add some more tests and fix errors that crop up.
6891 Unfortunately, currently it seems like marshalling
6892 and unmarshalling of lists is completely broken :-(
6894 2004-05-30 Seth Nickell <seth@gnome.org>
6896 * python/dbus_bindings.pyx.in:
6898 Add support for ObjectPath type.
6902 Refactor message handling code to a common function.
6904 * python/tests/test-client.py:
6905 * python/tests/test-server.py:
6907 Add tests that check to make sure values of all types
6908 can be echoed from a service w/o mangling.
6910 2004-05-29 Seth Nickell <seth@gnome.org>
6914 Add ObjectTree class which allows implementation
6915 of trees of "virtual" objects. Basically the python
6916 wrapper for "register_fallback".
6918 * python/examples/Makefile.am
6919 * python/examples/gconf-proxy-client.py:
6920 * python/examples/gconf-proxy-service.py:
6922 Implement a simple GConf proxy service that supports
6923 get/set on string and int GConf keys using the ObjectTree.
6925 2004-05-29 Seth Nickell <seth@gnome.org>
6928 * python/examples/example-client.py:
6929 * python/examples/example-service.py:
6930 * python/examples/list-system-services.py:
6932 Add SessionBus, SystemBus and ActivationBus classes
6933 so you don't need to know the special little BUS_TYPE
6936 2004-05-29 Havoc Pennington <hp@redhat.com>
6938 * bus/config-parser.c (process_test_valid_subdir): temporarily
6939 stop testing config parser OOM handling, since expat has issues
6940 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6942 * bus/dbus-daemon-1.1.in: change requested_reply to
6943 send_requested_reply/receive_requested_reply so we can send the
6944 replies, not just receive them.
6946 * bus/config-parser.c: parse the new
6947 send_requested_reply/receive_requested_reply
6949 * bus/policy.c (bus_client_policy_check_can_send): add
6950 requested_reply argument and use it
6952 * bus/bus.c (bus_context_check_security_policy): pass through
6953 requested_reply status to message send check
6955 * bus/system.conf.in: adapt to requested_reply change
6957 2004-05-28 Havoc Pennington <hp@redhat.com>
6959 * test/glib/test-service-glib.c (main): remove unused variable
6961 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6963 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6964 from the enum, no longer in use.
6966 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6969 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6970 whether error_name passed in is a valid error name.
6972 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
6974 * dbus/dbus-message.c (dbus_message_get_args): Added support for
6975 OBJECT_PATH and OBJECT_PATH_ARRAY
6977 2004-05-28 Seth Nickell <seth@gnome.org>
6979 * python/examples/Makefile.am:
6981 Forget to add Makefile.am. Do not pass go.
6983 2004-05-28 Michael Meeks <michael@ximian.com>
6985 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
6988 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6990 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6991 (_dbus_message_iter_get_basic_type_array): impl.
6992 drastically simplify ~all relevant _get methods to use these.
6993 (_dbus_message_iter_append_basic_array),
6994 (dbus_message_iter_append_basic): impl
6995 drastically simplify ~all relevant _append methods to use these.
6997 * dbus/dbus-message-builder.c (parse_basic_type)
6998 (parse_basic_array, lookup_basic_type): impl.
6999 (_dbus_message_data_load): prune scads of duplicate /
7002 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
7003 (_dbus_demarshal_basic_type): implement,
7004 (demarshal_and_validate_len/arg): beef up debug.
7005 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7007 2004-05-27 Seth Nickell <seth@gnome.org>
7010 * python/Makefile.am:
7012 Include the example python apps in the tarball.
7014 * python/examples/list-system-services.py
7016 Add a python new example that fetches the list of services
7017 from the system bus.
7019 2004-05-27 Seth Nickell <seth@gnome.org>
7022 * python/dbus_bindings.pyx.in:
7024 Fix failure to notify that a signal was not handled,
7025 resulted in hung functions.
7027 2004-05-25 Colin Walters <walters@redhat.com>
7029 * tools/dbus-monitor.c (main): Monitor all types of messages.
7031 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
7033 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7034 which unregisters the object path and disposes the handler.
7036 2004-05-23 Kristian Høgsberg <krh@redhat.com>
7038 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7040 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7041 operands to && so we call dbus_message_iter_next () for the last
7044 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7046 * dbus/dbus-object-tree.c
7047 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7048 children even if the requested path isn't registered.
7049 (object_tree_test_iteration): test object_tree_list_registered.
7051 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7054 2004-05-20 Kristian Høgsberg <krh@redhat.com>
7056 * doc/TODO: Remove resolved items.
7058 * bus/expirelist.h (struct BusExpireList): remove unused n_items
7061 * bus/connection.c (bus_connections_expect_reply): Enforce the
7062 per-connection limit on pending replies.
7064 Patch from Jon Trowbridge <trow@ximian.com>:
7066 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
7067 up a watch that triggers a config reload when one end of the pipe
7069 (signal_handler): Instead of doing the config reload in our SIGHUP
7070 handler, just write to the reload pipe and let the associated
7071 watch handle the reload when control returns to the main loop.
7073 * bus/driver.c (bus_driver_handle_reload_config): Added.
7074 Implements a ReloadConfig method for requesting a configuration
7075 file reload via the bus driver.
7077 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
7079 * HACKING: Updated release instructions concerning the wiki page.
7081 2004-05-18 Kristian Høgsberg <krh@redhat.com>
7083 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7084 filter against auth->allowed_mechs; we only add allowed mechs in
7085 record_mechanisms().
7087 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7088 ALLOWED_MECHS to auth-script format so we can set the list of
7091 * data/auth/client-out-of-mechanisms.auth-script: New test to
7092 check client disconnects when it is out of mechanisms to try.
7094 * dbus/dbus-auth.c (process_command): Remove check for lines
7095 longer that 1 MB; we only buffer up maximum 16 kB.
7097 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7098 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7099 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7100 assume there might be unused bytes.
7102 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7103 client-out-of-mechs, it is handled in process_reject(). Move check
7104 for max failures to send_rejected(), as it's a server-only thing.
7106 * dbus/dbus-auth.c: Factor out protocol reply code into functions
7107 send_auth(), send_data(), send_rejected(), send_error(),
7108 send_ok(), send_begin() and send_cancel().
7110 2004-05-17 Kristian Høgsberg <krh@redhat.com>
7112 Remove base64 encoding, replace with hex encoding. Original patch
7113 from trow@ximian.com, added error handling.
7115 * dbus/dbus-string.c (_dbus_string_base64_encode)
7116 (_dbus_string_base64_decode): Remove.
7117 (_dbus_string_hex_decode): Add end_return argument so we can
7118 distinguish between OOM and invalid hex encoding.
7119 (_dbus_string_test): Remove base64 tests and add test case for
7122 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7123 Replace base64 with hex.
7125 * test/data/auth/invalid-hex-encoding.auth-script: New test case
7126 for invalid hex encoded data in auth protocol.
7128 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7130 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7133 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7135 * mono/dbus-sharp.dll.config.in: Added for GAC
7136 * mono/dbus-sharp.snk: Added for GAC
7137 * mono/Assembly.cs.in: Added for GAC
7138 * mono/Makefile.am: Changes for GAC installation
7139 * configure.in: Added refs for dbus-sharp.dll.config.in and
7140 Assembly.cs.in. More fixes for mono testing
7141 * mono/example/Makefile.am: Changed var to CSC
7142 * Makefile.am: Changed flag name to DBUS_USE_CSC
7144 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7146 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7147 * mono/doc/*: Added documentation framework
7148 * configure.in: Added monodoc check
7149 * README: Added description of mono configure flags
7151 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
7153 * doc/dbus-specification.xml: Added a "Required" column to the
7154 header fields table and changed the "zero or more" verbage in
7155 the above paragraph to read "The header must contain the required
7156 named header fields and zero or more of the optional named header
7158 * test/data/invalid-messages/*.message: Added the required PATH
7159 named header field to the tests so that they don't fail on
7160 'Missing path field'
7162 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
7164 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7165 the stack by implicitly defining variable and parameter types and
7166 removing the hack of defining C pointers as python objects and later
7169 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
7171 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7173 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
7175 * mono/DBusType/Dict.cs: Handle empty dicts
7176 * mono/DBusType/Array.cs: Handle empty arrays
7177 * mono/Arguments.cs: Handle empty arguments
7179 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
7181 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7184 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7186 * test/data/valid-messages/standard-*.message: Update message
7187 test scripts to new header field names.
7189 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7191 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7192 overflow to times_we_did_each_thing array which would chop off the
7193 first character of the failure_dir string. Increased the size of
7194 the array to 7 to reflect the number of random mutation functions
7197 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7199 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7200 unix_server->watch here, it is unreffed in disconnect.
7201 (_dbus_server_new_for_tcp_socket): convert NULL host to
7202 "localhost" here so we don't append NULL to address.
7204 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7205 various addresses, including tcp with no explicit host.
7207 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7209 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7210 fix incorrect setting of .name_offset in the HeaderField (it was
7211 off by two bytes, positioned right after the name and typecode)
7213 * bus/bus.c (bus_context_new, bus_context_unref): test before
7214 calling dbus_server_free_data_slot and _dbus_user_database_unref
7215 in case of an error.
7217 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7220 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7222 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7223 _dbus_poll() instead of select().
7225 2004-04-15 Jon Trowbridge <trow@ximian.com>
7227 * bus/main.c (signal_handler): Reload the configuration files
7229 (main): Set up our SIGHUP handler.
7231 * bus/bus.c (struct BusContext): Store the config file, user and
7232 fork flag in the BusContext.
7233 (process_config_first_time_only): Added. Contains the code
7234 (previously in bus_context_new) for setting up the BusContext from
7235 the BusConfigParser that should only be run the first time the
7236 config files are read.
7237 (process_config_every_time): Added. Contains the code (previously
7238 in bus_context_new) for setting up the BusContext from the
7239 BusConfigParser that should be run every time the config files are
7241 (load_config): Added. Builds a BusConfigParser from the config
7242 files and passes the resulting structure off to
7243 process_config_first_time_only (assuming this is the first time)
7244 and process_config_every_time.
7245 (bus_context_new): All of the config-related code has been moved
7246 to process_config_first_time_only and process_config_every_time.
7247 Now this function just does the non-config-related initializations
7248 and calls load_config.
7249 (bus_context_reload_config): Added.
7251 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7253 * bus/driver.c (bus_driver_handle_get_service_owner):
7254 implement a GetServiceOwner method.
7255 * doc/dbus-specification.xml: document it.
7256 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7258 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7259 implement, using the bus GetServiceOwner method.
7261 * test/glib/test-dbus-glib.c:
7262 use dbus_gproxy_new_for_service_owner so that we can receive the
7265 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7267 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7268 dbus/dbus-message.c, dbus/dbus-protocol.h
7269 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7271 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7272 dbus/dbus-message.c, dbus/dbus-protocol.h
7273 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7275 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7276 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7277 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7279 * doc/dbus-specification.xml (Header Fields Table):
7280 s/SERVICE/DESTINATION
7281 s/SENDER_SERVICE/SENDER
7284 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7286 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7289 2004-04-13 Michael Meeks <michael@ximian.com>
7291 * glib/dbus-gobject.c (handle_introspect): split out
7292 (introspect_properties): this.
7293 (handle_introspect): implement this.
7295 * test/glib/Makefile.am: use the absolute path so the bus
7296 daemon's chdir ("/") doesn't kill us dead.
7298 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7300 2004-04-12 Jon Trowbridge <trow@ximian.com>
7302 * bus/config-parser.c (struct BusConfigParser): Added
7303 included_files field.
7304 (seen_include): Added. Checks whether or not a file has already
7305 been included by any parent BusConfigParser.
7306 (bus_config_parser_new): Copy the parent's included_files.
7307 (include_file): Track which files have been included, and fail on
7308 circular inclusions.
7309 (process_test_valid_subdir): Changed printf to report if we are
7310 testing valid or invalid conf files.
7311 (all_are_equiv): Changed printf to be a bit clearer about
7312 what we are actually doing.
7313 (bus_config_parser_test): Test invalid configuration files.
7315 2004-04-09 Jon Trowbridge <trow@ximian.com>
7317 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7318 argument. If non-null, the newly-constructed BusConfigParser will
7319 be initialized with the parent's BusLimits instead of the default
7321 (include_file): When including a config file, pass in
7322 the current parser as the parent and then copy the BusLimits
7323 from the included BusConfigParser pack to the current parser.
7324 (process_test_valid_subdir): Renamed from process_test_subdir.
7325 (process_test_equiv_subdir): Added. Walks through a directory,
7326 descending into each subdirectory and loading the config files
7327 it finds there. If any subdirectory contains two config files
7328 that don't produce identical BusConfigParser structs, fail.
7329 For now, the BusConfigParser's BusPolicies are not compared.
7330 (bus_config_parser_test): Call both process_test_valid_subdir and
7331 process_test_equiv_subdir.
7333 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7334 argument and pass it along to the call to bus_config_parser_new.
7335 Also made a few small changes to allow this code to compile.
7337 * bus/config-loader-expat.c (bus_config_load): Take a parent
7338 argument and pass it along to the call to bus_config_parser_new.
7340 * bus/bus.c (bus_context_new): Load the config file
7341 with a NULL parent argument.
7343 2004-03-29 Michael Meeks <michael@ximian.com>
7345 * glib/dbus-gobject.c (introspect_properties): split
7346 out, fix mangled 'while' flow control.
7347 (introspect_signals): implement.
7348 (handle_introspect): update.
7350 2004-03-29 Michael Meeks <michael@ximian.com>
7352 * glib/dbus-gobject.c (set_object_property): split out /
7353 re-work, use the property type, and not the message type(!)
7354 (get_object_property): ditto.
7356 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7357 (dbus_gvalue_marshal): make this code re-usable, needed
7358 for signals too, also on both proxy and server side.
7359 Re-write for more efficiency / readability.
7361 2004-03-29 Michael Meeks <michael@ximian.com>
7363 * dbus/dbus-message.c
7364 (dbus_message_new_error_printf): impl.
7366 * dbus/dbus-connection.c
7367 (dbus_connection_unregister_object_path): fix warning.
7369 * configure.in: fix no-mono-installed situation.
7371 2004-03-27 Havoc Pennington <hp@redhat.com>
7373 Patch from Timo Teräs:
7375 * tools/dbus-send.c (main): if --print-reply, assume type is
7376 method call; support boolean type args
7378 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7379 bunch of memleak and logic bugs
7381 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7383 * mono/Arguments.cs:
7384 * mono/Introspector.cs:
7386 * mono/InterfaceProxy.cs:
7388 * mono/ProxyBuilder.cs:
7390 Added InterfaceProxy class to avoid building proxies for every
7394 * dbus-message.c (dbus_message_append_args_valist)
7395 (dbus_message_iter_get_object_path)
7396 (dbus_message_iter_get_object_path_array)
7397 (dbus_message_iter_append_object_path)
7398 (dbus_message_iter_append_object_path_array):
7399 Added object_path iter functions to handle OBJECT_PATH arguments
7401 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7403 First checkin of mono bindings.
7406 Build stuff for the bindings
7407 * dbus-sharp.pc.in: Added for pkgconfig
7409 2004-03-21 Havoc Pennington <hp@redhat.com>
7411 * test/test-service.c (main): remove debug spew
7413 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7415 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7418 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7419 (dbus_message_iter_init_array_iterator)
7420 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7421 indicate whether the iterator is empty
7423 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7426 2004-03-19 Havoc Pennington <hp@redhat.com>
7428 * NEWS: 0.21 updates
7430 * configure.in: 0.21
7432 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7434 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7435 you don't need pyrex to make dist
7437 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7440 2004-03-18 Richard Hult <richard@imendio.com>
7442 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7443 (dbus_message_set_auto_activation): Add doxygen docs.
7445 2004-03-16 Richard Hult <richard@imendio.com>
7447 * bus/activation.c: (bus_activation_service_created),
7448 (bus_activation_send_pending_auto_activation_messages),
7449 (bus_activation_activate_service):
7451 * bus/dispatch.c: (bus_dispatch),
7452 (check_nonexistent_service_auto_activation),
7453 (check_service_auto_activated),
7454 (check_segfault_service_auto_activation),
7455 (check_existent_service_auto_activation), (bus_dispatch_test):
7456 * bus/driver.c: (bus_driver_handle_activate_service):
7457 * bus/services.c: (bus_registry_acquire_service):
7458 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7459 (dbus_message_get_auto_activation):
7460 * dbus/dbus-message.h:
7461 * dbus/dbus-protocol.h: Implement auto-activation.
7463 * doc/dbus-specification.xml: Add auto-activation to the spec.
7465 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7467 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7468 fix a bug with CUSTOM types.
7470 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7471 a unit test for this bug (used to fail).
7473 2004-03-12 Mikael Hallendal <micke@imendio.com>
7476 (babysitter_watch_callback): notify all pending activations waiting for
7477 the same exec that the activation failed.
7478 (bus_activation_activate_service): shortcut the activation if we
7479 already waiting for the same executable to start up.
7481 2004-03-12 Mikael Hallendal <micke@imendio.com>
7484 - Added service file reloading.
7485 Each service files directory is kept in an hash table in
7486 BusActivation and each BusActivationEntry knows what .service-file it
7487 was read from. So when you try to activate a service the bus will
7488 check if it's been updated, removed or if new .service-files has
7490 - Test code at the bottom for the service file reloading.
7491 * bus/test-main.c: (main):
7493 - added service reloading test.
7494 * dbus/dbus-sysdeps.c:
7495 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7497 2004-03-08 Michael Meeks <michael@ximian.com>
7499 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
7500 bail immediately if disconnected, to avoid busy loop.
7502 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7503 cleanup cut/paste/inefficiency.
7505 2004-03-01 David Zeuthen <david@fubar.dk>
7507 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7508 bug where args were used twice. This bug resulted in a segfault
7509 on a Debian/PPC system when starting the messagebus daemon. Include
7510 dbus-sysdeps.h for DBUS_VA_COPY
7512 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7514 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7515 appropriate va_copy implementation. From GLib
7517 2004-02-24 Joe Shaw <joe@ximian.com>
7519 * bus/services.c (bus_registry_acquire_service): We need to pass
7520 in the service name to dbus_set_error() to prevent a crash.
7522 2003-12-26 Anders Carlsson <andersca@gnome.org>
7524 * AUTHORS: Reveal my True identity.
7526 2003-12-17 Mikael Hallendal <micke@imendio.com>
7528 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7529 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7531 2003-12-13 Mikael Hallendal <micke@imendio.com>
7533 * doc/TODO: Added not about better error check of configuration files.
7535 2003-12-02 Richard Hult <richard@imendio.com>
7537 * Update AFL version to 2.0 throughout the source files to reflect
7538 the update that was done a while ago.
7540 2003-12-02 Richard Hult <richard@imendio.com>
7542 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7543 wrote_dict_key to FALSE on the iter that the dict is appended to,
7544 just like when appending other types. Fixes a bug where a dict
7545 couldn't be put inside a dict.
7546 (dbus_message_iter_append_dict_key): Fix typo in warning message.
7547 (message_iter_test, _dbus_message_test): Add test case for dict
7550 2003-12-01 David Zeuthen <david@fubar.dk>
7552 * python/dbus.py: Add the actual message when calling the reciever
7553 of a signal such that parameters can be inspected. Add the method
7554 remove_signal_receiver
7556 2003-11-26 Mikael Hallendal <micke@imendio.com>
7560 * glib/*.[ch]: Made ref functions return the pointer
7562 2003-11-25 Zack Rusin <zack@kde.org>
7564 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7566 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
7569 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
7570 the Integrator and to better fit with the server,
7572 2003-11-24 Zack Rusin <zack@kde.org>
7574 * qt/connection.h, qt/connection.cpp: removing initDbus method since
7575 the integrator handles it now
7577 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7578 since QTimer wasn't really meant to be used the way DBusTimeout is
7580 2003-11-24 Zack Rusin <zack@kde.org>
7582 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
7583 Integrator class which integrates D-BUS with the Qt event loop,
7585 * qt/connection.h, qt/connection.cpp: Move all the code which
7586 was dealing with D-BUS integration to the Integrator class,
7587 and start using Integrator,
7589 2003-11-23 Zack Rusin <zack@kde.org>
7591 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
7594 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7595 switching namespaces to DBusQt, reworking the class,
7597 * Makefile.cvs: switching dependencies so that it matches KDE
7600 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
7603 2003-11-19 Havoc Pennington <hp@redhat.com>
7607 * configure.in: bump version to 0.20
7609 * configure.in (have_qt): add yet another place to look for qt
7610 (someone hand trolltech a .pc file...)
7612 2003-11-01 Havoc Pennington <hp@redhat.com>
7614 * doc/dbus-specification.xml: add state machine docs on the auth
7615 protocol; just a first draft, I'm sure it's wrong.
7617 2003-10-28 David Zeuthen <david@fubar.dk>
7619 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7620 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7622 2003-10-28 Havoc Pennington <hp@redhat.com>
7624 * dbus/dbus-message.c (get_next_field): delete unused function
7626 2003-10-28 Havoc Pennington <hp@redhat.com>
7628 * bus/expirelist.c (do_expiration_with_current_time): detect
7629 failure of the expire_func due to OOM
7631 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7633 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7634 NoReply error that's now created by the bus when the service exits
7636 2003-10-28 Havoc Pennington <hp@redhat.com>
7638 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7639 tests for set_path, set_interface, set_member, etc.
7641 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7643 * dbus/dbus-message.c (set_string_field): always just delete and
7644 re-append the field; accept NULL for deletion
7645 (re_align_fields_recurse): reimplement
7647 2003-10-26 Havoc Pennington <hp@redhat.com>
7649 * dbus/dbus-connection.c: fix docs to properly describe the
7650 disconnected message
7651 (_dbus_connection_notify_disconnected): remove this function;
7652 we can't synchronously add the disconnected message, we have to
7653 do it after we've queued any remaining real messages
7654 (_dbus_connection_get_dispatch_status_unlocked): queue the
7655 disconnect message only if the transport has finished queueing all
7656 its real messages and is disconnected.
7657 (dbus_connection_disconnect): update the dispatch status here
7659 2003-10-22 Havoc Pennington <hp@redhat.com>
7661 * bus/bus.c (bus_context_check_security_policy): fix up assertion
7663 * bus/connection.c (bus_transaction_send_from_driver): set the
7664 destination to the connection's base service
7666 2003-10-20 Havoc Pennington <hp@redhat.com>
7668 hmm, make check is currently not passing.
7670 * doc/dbus-specification.xml: add requirement that custom type
7671 names follow the same rules as interface names.
7673 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7674 duplication and allow 'c' to be 'custom'; dict is now 'm' for
7677 * doc/dbus-specification.xml: update type codes to match
7678 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7679 CUSTOM. Add type OBJECT_PATH to the spec.
7681 2003-10-17 Havoc Pennington <hp@redhat.com>
7683 * bus/driver.c (create_unique_client_name): use "." as separator
7684 in base service names instead of '-'
7686 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7687 byte at the end of the string
7689 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7690 optimization macros since string validation seems to be a slow
7693 * doc/dbus-specification.xml: restrict valid
7694 service/interface/member/error names. Add test suite code for the
7697 * dbus/dbus-string.c: limit service/interface/member/error names
7700 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7701 format arg to verbose spew
7703 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7704 memory, return instead of g_error
7706 * test/test-service.c (path_message_func): support emitting a
7709 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7710 activation bus type if DBUS_BUS_ACTIVATION was set; default to
7711 assuming the activation bus was the session bus so that services
7712 started manually will still register.
7713 (init_connections_unlocked): fix so that in OOM situation we get
7714 the same semantics when retrying the function
7716 * test/test-service.c (main): change to use path registration, to
7717 test those codepaths; register with DBUS_BUS_ACTIVATION rather
7718 than DBUS_BUS_SESSION
7720 2003-10-16 Havoc Pennington <hp@redhat.com>
7722 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7724 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7725 coverage of the tests
7726 (coverage-report.txt): don't move the .da and .bbg files around
7728 2003-10-16 Havoc Pennington <hp@redhat.com>
7730 * bus/bus.c (struct BusContext): remove struct field I didn't mean
7733 2003-10-16 Havoc Pennington <hp@redhat.com>
7735 * bus/connection.c (bus_pending_reply_expired): either cancel or
7737 (bus_connections_check_reply): use unlink, not remove_link, as we
7738 don't want to free the link; fixes double free mess
7740 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7741 where no reply was received
7743 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7746 * bus/signals.c (match_rule_matches): add special cases for the
7747 bus driver, so you can match on sender/destination for it.
7749 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7750 DBUS_PRINT_BACKTRACE is set
7752 * dbus/dbus-internals.c: add pid to assertion failure messages
7754 * dbus/dbus-connection.c: add message type code to the debug spew
7756 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7757 sender=foo not service=foo
7759 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7760 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
7761 DBUS_ACTIVATION_ADDRESS instead
7763 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7764 DBUS_SYSTEM_BUS_ADDRESS if appropriate
7766 * bus/bus.c (bus_context_new): handle OOM copying bus type into
7769 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7770 (dbus_message_iter_get_object_path_array): new function (half
7771 finished, disabled for the moment)
7773 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7774 DBUS_MESSAGE_TYPE_ERROR
7776 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7777 avoid redirecting stderr to /dev/null
7778 (babysit): close stdin if not doing the "exit_with_session" thing
7780 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7781 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7782 stdout/stdin, so things don't get confused
7784 * bus/system.conf.in: fix to allow replies, I modified .conf
7785 instead of .conf.in again.
7787 2003-10-14 David Zeuthen <david@fubar.dk>
7789 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7790 argtype to arg_type when raising unknown arg type exception.
7791 Changed type list to reflect the changes in dbus-protocol.h so
7792 the bindings actually work.
7794 2003-10-14 Havoc Pennington <hp@redhat.com>
7796 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7797 to have a bug keeping it from outputting the .da files sometimes
7798 (string_get_string): don't append garbage nul bytes to the string.
7800 2003-10-15 Seth Nickell <seth@gnome.org>
7802 * python/Makefile.am:
7804 Include dbus_h_wrapper.h in the dist tarball.
7806 2003-10-14 Havoc Pennington <hp@redhat.com>
7808 * bus/bus.c (bus_context_check_security_policy): revamp this to
7809 work more sanely with new policy-based requested reply setup
7811 * bus/connection.c (bus_transaction_send_from_driver): set bus
7812 driver messages as no reply
7814 * bus/policy.c (bus_client_policy_check_can_receive): handle a
7815 requested_reply attribute on allow/deny rules
7817 * bus/system.conf: add <allow requested_reply="true"/>
7819 * bus/driver.c (bus_driver_handle_message): fix check for replies
7820 sent to the bus driver, which was backward. How did this ever work
7821 at all though? I think I'm missing something.
7823 * dbus/dbus-message.c (decode_header_data): require error and
7824 method return messages to have a reply serial field to be valid
7825 (_dbus_message_loader_queue_messages): break up this function;
7826 validate that reply serial and plain serial are nonzero;
7827 clean up the OOM/error handling.
7828 (get_uint_field): don't return -1 from this
7829 (dbus_message_create_header): fix signed/unsigned bug
7831 * bus/connection.c (bus_connections_expect_reply): save serial of
7832 the incoming message, not reply serial
7834 2003-10-14 Havoc Pennington <hp@redhat.com>
7836 * bus/connection.c: implement pending reply tracking using
7839 * bus/bus.c (bus_context_check_security_policy): verify that a
7840 reply is pending in order to allow a reply to be sent. Deny
7841 messages of unknown type.
7843 * bus/dbus-daemon-1.1.in: update to mention new resource limits
7845 * bus/bus.c (bus_context_get_max_replies_per_connection): new
7846 (bus_context_get_reply_timeout): new
7848 2003-10-13 Seth Nickell <seth@gnome.org>
7850 * python/Makefile.am:
7852 Pass "make distcheck": remove a couple files from DIST_FILES
7853 that weren't included in the final version.
7855 2003-10-12 Havoc Pennington <hp@pobox.com>
7857 Added test code that 1) starts an actual bus daemon and 2) uses
7858 DBusGProxy; fixed bugs that were revealed by the test. Lots
7859 more testing possible, but this is the basic framework.
7861 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7862 empty proxy lists from the proxy list hash
7864 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7865 couple of return_if_fail checks
7867 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7868 to allocate, so everything is cleared to NULL as it should be.
7870 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7871 source as data to dbus_connection_set_timeout_functions() as the
7872 timeout functions expected
7874 * test/glib/run-test.sh: add a little script to start up a message
7875 bus and run tests using it
7877 * tools/dbus-launch.1: updates
7879 * tools/dbus-launch.c (main): add --config-file option
7881 * tools/dbus-launch.c (main): remove confusing else if (runprog)
7882 that could never be reached.
7884 * dbus/dbus-message.c (dbus_message_new_method_return)
7885 (dbus_message_new_error, dbus_message_new_signal): set the
7886 no-reply-expected flag on all these. Redundant, but may
7887 as well be consistent.
7889 2003-10-11 Havoc Pennington <hp@pobox.com>
7891 * test/decode-gcov.c (function_solve_graph): make broken block
7892 graph a nonfatal error since it seems to be broken. Need to debug
7895 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7896 can't just check type > INVALID < LAST anymore
7898 * dbus/dbus-message.c (dbus_message_get_signature): new function
7899 (dbus_message_has_signature): new function
7900 (struct DBusMessage): add signature field (right now it isn't sent
7901 over the wire, just generated on the fly)
7902 (dbus_message_copy): copy the signature, and init strings to
7903 proper length to avoid some reallocs
7904 (dbus_message_iter_init_array_iterator): return void, since it
7906 (dbus_message_iter_init_dict_iterator): return void since it can't fail
7907 (_dbus_message_loader_queue_messages): add silly temporary hack to
7908 fill in message->signature on load
7910 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7911 characters, so they are relatively human-readable.
7913 2003-10-11 Havoc Pennington <hp@pobox.com>
7915 * dbus/dbus-message.c (_dbus_message_test): add more test
7916 coverage, but #if 0 for now since they uncover a bug
7917 not fixed yet; I think in re_align_field_recurse()
7918 (re_align_field_recurse): add FIXME about broken assertion
7920 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7922 * bus/connection.c: share a couple code bits with expirelist.c
7924 * bus/expirelist.h, bus/expirelist.c: implement a generic
7925 expire-items-after-N-seconds facility, was going to share between
7926 expiring connections and replies, decided not to use for expiring
7927 connections for now.
7929 * COPYING: include AFL 2.0 (still need to change all the file headers)
7931 2003-10-09 Havoc Pennington <hp@redhat.com>
7933 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7934 gcc 3.3. Not that we do anything about it yet.
7936 * bus/signals.c (bus_match_rule_parse): impose max length on the
7939 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7941 2003-10-09 Havoc Pennington <hp@redhat.com>
7943 Make matching rules theoretically work (add parser).
7945 * bus/bus.c (bus_context_check_security_policy): fix up to handle
7946 the case where destination is explicitly specified as bus driver
7947 and someone else is eavesdropping.
7949 * bus/policy.c (bus_client_policy_check_can_receive): fix up
7950 definition of eavesdropping and assertion
7952 * tools/dbus-send.c (main): use dbus_message_type_from_string
7954 * bus/signals.c (bus_match_rule_parse): implement
7956 * dbus/dbus-message.c (dbus_message_type_from_string): new
7958 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7960 2003-10-02 Havoc Pennington <hp@pobox.com>
7962 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7963 dbus_gproxy_oneway_call
7965 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
7966 (dbus_server_setup_with_g_main): fix to allow calling them more
7967 than once on the same args
7968 (dbus_bus_get_with_g_main): new function
7970 2003-10-02 Havoc Pennington <hp@redhat.com>
7972 * doc/dbus-tutorial.xml: write some stuff
7974 2003-09-29 Havoc Pennington <hp@pobox.com>
7976 * configure.in: split checks for Doxygen from XML docs, check for
7979 * doc/Makefile.am: XML-ify all the docs, and add a blank
7982 2003-09-29 Havoc Pennington <hp@pobox.com>
7984 * Merge dbus-object-names branch. To see the entire patch
7985 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7986 it's huuuuge though.
7987 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7989 2003-09-28 Havoc Pennington <hp@pobox.com>
7991 * HACKING: update to reflect new server
7993 2003-09-26 Seth Nickell <seth@gnome.org>
7996 * python/examples/example-signals.py:
7998 Start implementing some notions of signals. The API
7999 is really terrible, but they sort of work (with the
8000 exception of being able to filter by service, and to
8001 transmit signals *as* a particular service). Need to
8002 figure out how to make messages come from the service
8005 * python/dbus_bindings.pyx.in:
8007 Removed duplicate message_handler callbacks.
8009 2003-09-25 Havoc Pennington <hp@redhat.com>
8011 * bus/session.conf.in: fix my mess
8013 2003-09-25 Havoc Pennington <hp@pobox.com>
8015 * bus/session.conf.in: fix security policy, reported by Seth Nickell
8017 2003-09-25 Seth Nickell <seth@gnome.org>
8019 * python/examples/example-service.py:
8021 Johan notices complete wrong code in example-service, but
8022 completely wrong in a way that works exactly the same (!).
8023 Johan is confused, how could this possibly work? Example
8024 code fails to serve purpose of making things clear.
8027 2003-09-25 Mark McLoughlin <mark@skynet.ie>
8029 * doc/dbus-specification.sgml: don't require header fields
8030 to be 4-byte aligned and specify that fields should be
8031 distinguished from padding by the fact that zero is not
8034 * doc/TODO: remove re-alignment item and add item to doc
8035 the OBJECT_PATH type.
8037 * dbus/dbus-message.c:
8038 (HeaderField): rename the original member to value_offset
8039 and introduce a name_offset member to keep track of where
8040 the field actually begins.
8041 (adjust_field_offsets): remove.
8042 (append_int_field), (append_uint_field),
8043 (append_string_field): don't align the start of the header
8044 field to a 4-byte boundary.
8045 (get_next_field): impl finding the next marhsalled field
8046 after a given field.
8047 (re_align_field_recurse): impl re-aligning a number of
8048 already marshalled fields.
8049 (delete_field): impl deleting a field of any type and
8050 re-aligning any following fields.
8051 (delete_int_or_uint_field), (delete_string_field): remove.
8052 (set_int_field), (set_uint_field): no need to re-check
8053 that we have the correct type for the field.
8054 (set_string_field): ditto and impl re-aligning any
8056 (decode_header_data): update to take into account that
8057 the fields aren't 4-byte aligned any more and the new
8058 way to distinguish padding from header fields. Also,
8059 don't exit when there is too much header padding.
8060 (process_test_subdir): print the directory.
8061 (_dbus_message_test): add test to make sure a following
8062 field is re-aligned correctly after field deletion.
8064 * dbus/dbus-string.[ch]:
8065 (_dbus_string_insert_bytes): rename from insert_byte and
8066 allow the insert of multiple bytes.
8067 (_dbus_string_test): test inserting multiple bytes.
8069 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8070 warning note to docs about having to re-align any
8071 marshalled values following the string.
8073 * dbus/dbus-message-builder.c:
8074 (append_string_field), (_dbus_message_data_load):
8075 don't align the header field.
8077 * dbus/dbus-auth.c: (process_test_subdir): print the
8080 * test/break-loader.c: (randomly_add_one_byte): upd. for
8083 * test/data/invalid-messages/bad-header-field-alignment.message:
8086 * test/data/valid-messages/unknown-header-field.message: shove
8087 a dict in the unknown field.
8089 2003-09-25 Seth Nickell <seth@gnome.org>
8092 * python/dbus_bindings.pyx.in:
8094 Handle return values.
8096 * python/examples/example-client.py:
8097 * python/examples/example-service.py:
8099 Pass back return values from the service to the client.
8101 2003-09-24 Seth Nickell <seth@gnome.org>
8105 Connect Object methods (when you are sharing an object) up... pass
8106 in a list of methods to be shared. Sharing all the methods just
8107 worked out too weird. You can now create nice Services over the
8110 * python/dbus_bindings.pyx.in:
8112 Keep references to user_data tuples passed into C functions so
8113 Python doesn't garbage collect on us.
8115 Implement MethodReturn and Error subclasses of Message for creating
8116 DBusMessage's of those types.
8118 * python/examples/example-client.py:
8119 * python/examples/example-service.py:
8121 Simple example code showing both how create DBus services and objects,
8122 and how to use them.
8124 2003-09-23 Havoc Pennington <hp@pobox.com>
8126 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8128 2003-09-23 Havoc Pennington <hp@redhat.com>
8130 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8131 (dbus_gproxy_disconnect_signal): implement
8132 (dbus_gproxy_manager_remove_signal_match): implement
8133 (dbus_gproxy_manager_add_signal_match): implement
8134 (dbus_gproxy_oneway_call): implement
8136 2003-09-23 Havoc Pennington <hp@pobox.com>
8138 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8139 subclass. This means dropping the transparent thread safety of the
8140 proxy; you now need a separate proxy per-thread, or your own
8141 locking on the proxy. Probably right anyway.
8142 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8144 2003-09-22 Havoc Pennington <hp@redhat.com>
8146 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8148 2003-09-21 Seth Nickell <seth@gnome.org>
8150 First checkin of the Python bindings.
8152 * python/.cvsignore:
8153 * python/Makefile.am:
8154 * python/dbus_bindings.pyx.in:
8155 * python/dbus_h_wrapper.h:
8157 Pieces for Pyrex to operate on, building a dbus_bindings.so
8158 python module for low-level access to the DBus APIs.
8162 High-level Python module for accessing DBus objects.
8167 Build stuff for the python bindings.
8171 Extra macro needed for finding the Python C header files.
8173 2003-09-21 Havoc Pennington <hp@pobox.com>
8175 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8176 implementing the proxy manager, didn't get very far.
8178 * dbus/dbus-bus.c (dbus_bus_add_match): new
8179 (dbus_bus_remove_match): new
8181 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8182 path_name argument; adjust the other not-yet-implemented
8183 gproxy constructors to be what I think they should be.
8185 2003-09-21 Havoc Pennington <hp@pobox.com>
8187 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8188 by default for message bus connections.
8190 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8191 exit_on_disconnect flag is set and we process the disconnected
8193 (dbus_connection_set_exit_on_disconnect): new function
8195 2003-09-21 Havoc Pennington <hp@pobox.com>
8197 Get matching rules mostly working in the bus; only actually
8198 parsing the rule text remains. However, the client side of
8199 "signal connections" hasn't been started, this patch is only the
8202 * dbus/dispatch.c: fix for the matching rules changes
8204 * bus/driver.c (bus_driver_handle_remove_match)
8205 (bus_driver_handle_add_match): send an ack reply from these
8208 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8209 arguments, reported by Seth Nickell
8211 * bus/config-parser.c (append_rule_from_element): support
8212 eavesdrop=true|false attribute on policies so match rules
8213 can be prevented from snooping on the system bus.
8215 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8216 and "destination" in attribute names; fix some docs bugs;
8217 add eavesdrop=true|false attribute
8219 * bus/driver.c (bus_driver_handle_add_match)
8220 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8223 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8224 rid of broadcast service concept, signals are just always broadcast
8226 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8227 mostly implement matching rules stuff (currently only exposed as signal
8230 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8232 * doc/dbus-specification.sgml: Change the header field name
8233 to be an enum and update the rest of the spec to reference
8234 the fields using the conventinal name.
8236 * dbus/dbus-protocol.h: update to reflect the spec.
8238 * doc/TODO: add item to remove the 4 byte alignment requirement.
8240 * dbus/dbus-message.c: Remove the code to generalise the
8241 header/body length and serial number header fields as named
8242 header fields so we can reference field names using the
8244 (append_int_field), (append_uint_field), (append_string_field):
8245 Append the field name as a byte rather than four chars.
8246 (delete_int_or_uint_field), (delete_string_field): reflect the
8247 fact that the field name and typecode now occupy 4 bytes instead
8249 (decode_string_field), (decode_header_data): update to reflect
8250 protocol changes and move the field specific encoding from
8251 decode_string_field() back into decode_header_data().
8253 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8254 Add utility to aid debugging.
8256 * dbus/dbus-message-builder.c:
8257 (append_string_field), (_dbus_message_data_load): Update to
8258 reflect protocol changes; Change the FIELD_NAME directive
8259 to HEADER_FIELD and allow it to take the field's conventional
8260 name rather than the actual value.
8262 * test/data/*/*.message: Update to use HEADER_FIELD instead
8263 of FIELD_NAME; Always align the header on an 8 byte boundary
8264 *before* updating the header length.
8266 2003-09-15 Havoc Pennington <hp@pobox.com>
8268 * dbus/dbus-pending-call.c: add the get/set object data
8269 boilerplate as for DBusConnection, etc. Use generic object data
8270 for the notify callback.
8272 * glib/dbus-gparser.c (parse_node): parse child nodes
8274 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8276 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8277 contain functions shared between the convenience lib and the
8280 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8281 -export-symbols-regex to the GLib library
8283 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8284 fix the locking in here, and add a default handler for
8285 Introspect() that just returns sub-nodes.
8287 2003-09-14 Havoc Pennington <hp@pobox.com>
8289 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8290 rather than gfoo consistent
8292 * glib/dbus-gproxy.h: delete for now, move contents to
8293 dbus-glib.h, because the include files don't work right since we
8294 aren't in the dbus/ subdir.
8296 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8297 (dbus_gproxy_end_call): finish
8298 (dbus_gproxy_begin_call): finish
8300 * glib/dbus-gmain.c (dbus_set_g_error): new
8302 * glib/dbus-gobject.c (handle_introspect): include information
8303 about child nodes in the introspection
8305 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8306 function to help in implementation of introspection
8308 * dbus/dbus-object-tree.c
8309 (_dbus_object_tree_list_registered_and_unlock): new function
8311 2003-09-12 Havoc Pennington <hp@pobox.com>
8313 * glib/dbus-gidl.h: add common base class for all the foo_info
8316 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8319 * test/Makefile.am: try test srcdir -ef . in addition to test
8320 srcdir = ., one of them should work (yeah lame)
8322 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8325 * glib/dbus-gparser.h: make description_load routines return
8326 NodeInfo* not Parser*
8328 * Makefile.am (SUBDIRS): build test dir after all library dirs
8330 * configure.in: add GTK+ detection
8332 2003-09-07 Havoc Pennington <hp@pobox.com>
8334 * Make Doxygen contented.
8336 2003-09-07 Havoc Pennington <hp@pobox.com>
8338 * doc/dbus-specification.sgml: more updates
8340 2003-09-06 Havoc Pennington <hp@pobox.com>
8342 * doc/dbus-specification.sgml: partial updates
8344 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8345 zillionth time; hopefully I edited the right file this time.
8347 * bus/config-parser.c (append_rule_from_element): support
8348 send_type, send_path, receive_type, receive_path
8350 * bus/policy.c: add message type and path to the list of things
8351 that can be "firewalled"
8353 2003-09-06 Havoc Pennington <hp@pobox.com>
8355 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8356 (dbus_connection_register_object_path): make this not handle
8357 messages to paths below the given path
8359 2003-09-03 Havoc Pennington <hp@pobox.com>
8361 * test/glib/Makefile.am: add this with random glib-linked test
8364 * glib/Makefile.am: remove the random test programs from here,
8365 leave only the unit tests
8367 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8368 uscore/javacaps conversion, and fix
8369 (get_object_property, set_object_property): change to .NET
8370 convention for mapping props to methods, set_FooBar/get_FooBar,
8371 since one language has such a convention we may as well copy it.
8372 Plus real methods in either getFooBar or get_foo_bar style won't
8373 collide with this convention.
8375 2003-09-01 Havoc Pennington <hp@pobox.com>
8377 * glib/dbus-gparser.c: implement
8379 * glib/dbus-gobject.c: start implementing skeletons support
8381 * configure.in: when disabling checks/assert, also define
8382 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8384 2003-09-01 Havoc Pennington <hp@pobox.com>
8386 * glib/Makefile.am: rearrange a bunch of files and get "make
8387 check" framework set up
8389 2003-08-31 Havoc Pennington <hp@pobox.com>
8391 * fix build with --disable-tests
8393 2003-08-30 Havoc Pennington <hp@pobox.com>
8395 * dbus/dbus-connection.c: purge DBusMessageHandler
8397 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8398 use callbacks everywhere
8400 2003-08-30 Havoc Pennington <hp@pobox.com>
8402 * test/data/valid-config-files/system.d/test.conf: change to
8403 root for the user so warnings don't get printed
8405 * dbus/dbus-message.c: add dbus_message_get_path,
8406 dbus_message_set_path
8408 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8409 dispatching to a path
8411 * dbus/dbus-string.c (_dbus_string_validate_path): add
8413 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8414 (_dbus_marshal_object_path): implement
8416 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8417 to contain the path to the target object
8418 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8419 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8421 2003-08-30 Havoc Pennington <hp@pobox.com>
8423 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8425 2003-08-29 Havoc Pennington <hp@pobox.com>
8427 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8429 (struct DBusObjectSubtree): shrink this
8430 a lot, since we may have a lot of them
8431 (_dbus_object_tree_free_all_unlocked): implement
8432 (_dbus_object_tree_dispatch_and_unlock): implement
8434 2003-08-29 Havoc Pennington <hp@pobox.com>
8436 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8438 2003-08-28 Havoc Pennington <hp@pobox.com>
8442 * dbus/dbus-connection.c: port to no ObjectID, create a
8443 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8445 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8446 everything except UnregisterFunction and MessageFunction
8448 * dbus/dbus-marshal.c: port away from DBusObjectID,
8449 add DBUS_TYPE_OBJECT_PATH
8451 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8452 dbus/dbus-objectid.[hc]: remove these, we are moving to
8453 path-based object IDs
8455 2003-08-25 Havoc Pennington <hp@pobox.com>
8457 Just noticed that dbus_message_test is hosed, I wonder when I
8458 broke that. I thought make check was passing earlier...
8460 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8461 container tree, will replace most of dbus-object-registry
8463 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8466 2003-08-19 Havoc Pennington <hp@pobox.com>
8468 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8469 (dbus_message_is_error): fix this function
8471 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8474 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8475 reflect clarified man page
8476 (bus_client_policy_check_can_send): ditto
8478 * bus/session.conf.in: fixup
8480 * bus/system.conf.in: fixup
8482 2003-08-18 Havoc Pennington <hp@redhat.com>
8484 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8486 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8487 dumb bug created earlier (wrong order of args to
8488 decode_header_data())
8490 * tools/dbus-send.c: port
8492 * tools/dbus-print-message.c (print_message): port
8494 * test/data/*messages: port all messages over
8496 * dbus/dbus-message-builder.c: support including
8499 * bus/driver.c: port over
8501 * bus/dispatch.c: port over to new stuff
8503 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8504 rename disconnect signal to "Disconnected"
8506 2003-08-17 Havoc Pennington <hp@pobox.com>
8508 This doesn't compile yet, but syncing up so I can hack on it from
8509 work. What are branches for if not broken code? ;-)
8511 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8512 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8513 DBUS_HEADER_FIELD_ERROR_NAME
8515 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8516 for the interface+member pairs
8517 (string_hash): change to use g_str_hash algorithm
8518 (find_direct_function, find_string_function): refactor these to
8521 * dbus/dbus-message.c: port all of this over to support
8522 interface/member fields instead of name field
8524 * dbus/dbus-object-registry.c: port over
8526 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8527 from _dbus_string_validate_name
8529 * bus/dbus-daemon-1.1: change file format for the
8530 <deny>/<allow> stuff to match new message naming scheme
8532 * bus/policy.c: port over
8534 * bus/config-parser.c: parse new format
8536 2003-08-16 Havoc Pennington <hp@pobox.com>
8538 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8541 * glib/dbus-gproxy.c: some hacking
8543 2003-08-15 Havoc Pennington <hp@redhat.com>
8545 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8547 * dbus/dbus-connection.c
8548 (dbus_connection_send_with_reply_and_block): factor out internals;
8549 change to convert any error replies to DBusError instead of
8550 returning them as a message
8552 2003-08-15 Havoc Pennington <hp@pobox.com>
8554 * dbus/dbus-connection.c,
8555 dbus/dbus-pending-call.c: Finish the pending call stuff
8557 2003-08-14 Havoc Pennington <hp@redhat.com>
8559 * dbus/dbus-pending-call.c: start on new object that will replace
8560 DBusMessageHandler and ReplyHandlerData for tracking outstanding
8563 * dbus/dbus-gproxy.c: start on proxy object used to communicate
8564 with remote interfaces
8566 * dbus/dbus-gidl.c: do the boring boilerplate in here
8568 2003-08-12 Havoc Pennington <hp@pobox.com>
8570 * bus/dispatch.c (bus_dispatch): make this return proper
8571 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8573 * dbus/dbus-errors.c (dbus_set_error): use
8574 _dbus_string_append_printf_valist
8576 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8577 (_dbus_string_append_printf): new
8579 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8582 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8583 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8584 message is unhandled.
8586 2003-08-11 Havoc Pennington <hp@pobox.com>
8588 * bus/test.c (client_disconnect_handler): change to return
8589 HANDLED (would have been REMOVE_MESSAGE)
8591 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8592 HANDLED/NOT_YET_HANDLED instead of
8593 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
8596 2003-08-10 Havoc Pennington <hp@pobox.com>
8598 * tools/dbus-send.c (main): add --type argument, for now
8599 supporting only method_call and signal types.
8601 * tools/dbus-print-message.c: print message type
8603 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8604 init connection->objects
8606 * doc/dbus-specification.sgml: fix sgml
8608 * bus/*.c: port over to object-instance API changes
8610 * test/test-service.c: ditto
8612 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8613 name, we will have to fix up the rest of the code to also handle
8615 (dbus_message_new): generic message-creation call
8616 (set_string_field): allow appending name field
8618 2003-08-06 Havoc Pennington <hp@pobox.com>
8620 * dbus/dbus-object-registry.c: implement signal connection
8623 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8625 * dbus/dbus-internals.c (_dbus_memdup): new function
8627 2003-08-02 Havoc Pennington <hp@pobox.com>
8629 * dbus/dbus-message.c (dbus_message_get_no_reply)
8630 (dbus_message_set_no_reply): add these and remove
8631 set_is_error/get_is_error
8633 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
8634 remove the ERROR flag, since there's now an ERROR type
8636 2003-08-01 Havoc Pennington <hp@pobox.com>
8638 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8641 * dbus/dbus-message.c (dbus_message_get_type): new function
8643 * doc/dbus-specification.sgml: add "type" byte to messages
8645 2003-08-01 Havoc Pennington <hp@pobox.com>
8647 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8648 a message type enum to distinguish kinds of message
8649 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
8650 that need not be replied to
8652 2003-08-01 Havoc Pennington <hp@pobox.com>
8654 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8655 (unpack_8_octets): fix no-64-bit-int bug
8657 * dbus/dbus-object-registry.c (validate_id): validate the
8658 connection ID bits, not just the instance ID.
8660 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8661 the connection-global 33 bits of the object ID
8663 * dbus/dbus-object-registry.c (info_from_entry): fill in
8664 object ID in the new way
8666 * dbus/dbus-objectid.h: rather than high/low bits, specifically
8667 define server/client/instance bits.
8669 2003-07-30 Havoc Pennington <hp@pobox.com>
8671 * dbus/dbus-connection.c (dbus_connection_register_object): fix
8674 2003-07-13 Havoc Pennington <hp@pobox.com>
8676 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8677 fields to DBusObjectVTable and DBusObjectInfo
8679 2003-07-12 Havoc Pennington <hp@pobox.com>
8681 * dbus/dbus-object-registry.c: implement unit test,
8682 fix bugs discovered in process
8684 * dbus/dbus-connection.c: remove handler_table and
8685 register_handler(), add DBusObjectRegistry usage
8687 * dbus/dbus-objectid.c (dbus_object_id_is_null)
8688 (dbus_object_id_set_null): new functions
8690 2003-07-08 Havoc Pennington <hp@pobox.com>
8692 * dbus/dbus-object.c: implement some of this
8694 * dbus/dbus-object-registry.c
8695 (_dbus_object_registry_add_and_unlock): fill in the object_id out
8697 (_dbus_object_registry_new): handle OOM
8699 2003-07-08 Havoc Pennington <hp@pobox.com>
8701 * dbus/dbus-object.h: sketch out an API for registering objects
8702 with a connection, that allows us to use as little as 24 bytes
8703 per object and lets application code represent an object in
8704 any conceivable way.
8706 * dbus/dbus-object-registry.c: implement the hard bits of the
8707 DBusConnection aspect of object API. Not yet wired up.
8709 2003-07-06 Havoc Pennington <hp@pobox.com>
8711 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8712 (_dbus_marshal_object_id): new
8713 (_dbus_demarshal_object_id): new
8714 (_dbus_marshal_get_arg_end_pos): support object ID type, and
8715 consolidate identical switch cases. Don't conditionalize handling
8716 of DBUS_TYPE_UINT64, need to handle the type always.
8717 (_dbus_marshal_validate_arg): consolidate identical cases, and
8718 handle DBUS_TYPE_OBJECT_ID
8720 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8722 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8724 2003-09-28 Havoc Pennington <hp@pobox.com>
8728 2003-09-28 Havoc Pennington <hp@pobox.com>
8730 * doc/Makefile.am (dbus-specification.html): testing a funky hack
8731 to work with Debian db2html
8733 2003-09-28 Havoc Pennington <hp@pobox.com>
8735 * configure.in: 0.13
8737 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8738 stylesheet-images for benefit of Debian
8740 Change back to using filesystem-linked sockets for the system
8741 bus, so only root can create the default system bus address.
8743 * bus/system.conf.in: change to use
8744 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8746 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8749 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8750 here, and AC_DEFINE DBUS_SYSTEM_PATH
8752 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8755 * doc/busconfig.dtd:
8758 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8760 * doc/dbus-specification.sgml:
8761 Add activation reply values.
8763 2003-08-05 Havoc Pennington <hp@redhat.com>
8765 * configure.in: 0.12
8767 2003-08-05 Anders Carlsson <andersca@codefactory.se>
8769 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8770 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8771 (add_watch), (remove_watch), (create_source):
8772 Refcount fds, fixes some reentrancy issues.
8774 2003-07-30 Havoc Pennington <hp@redhat.com>
8776 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8777 bus address to be abstract if we have abstract sockets
8781 2003-07-28 Havoc Pennington <hp@redhat.com>
8783 * bus/messagebus.in: fix to avoid processname/servicename
8784 confusion, from Michael Kearey
8785 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8787 2003-07-23 Havoc Pennington <hp@pobox.com>
8789 * dbus/dbus-message.c (dbus_message_iter_get_named):
8790 fix from Andy Hanton to remove broken "+1"
8792 2003-07-16 Havoc Pennington <hp@pobox.com>
8794 * tools/dbus-launch.c (babysit): close stdout/stderr in the
8795 babysitter process, as suggested by Thomas Leonard, so
8796 an "eval `dbus-launch --exit-with-session`" will actually
8799 2003-07-16 Havoc Pennington <hp@pobox.com>
8801 * configure.in: print out EXPANDED_* variables in the summary at
8802 the end; clean up the code that computes EXPANDED_ variables and
8803 get the ones using exec_prefix right. Should make things work
8804 when you build without --prefix
8806 2003-06-29 Havoc Pennington <hp@pobox.com>
8808 * mono/Test.cs (class Test): fire up a main loop and run it
8810 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8811 done once, the app has to do it
8813 2003-06-26 Havoc Pennington <hp@pobox.com>
8815 * mono/Connection.cs: set up connection with the glib main loop
8817 2003-07-01 Havoc Pennington <hp@redhat.com>
8819 * doc/dbus-specification.sgml: clarify the format of a type code,
8820 change suggested by Jim Blandy
8822 2003-06-29 Miloslav Trmac <mitr@volny.cz>
8825 * tools/Makefile.am: Don't assume srcdir == builddir.
8827 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8828 the allocated block.
8829 (_dbus_memory_test): New function.
8830 * dbus/dbus-test.h: Add _dbus_memory_test ().
8831 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8833 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8835 (dbus_message_new): Remove obsolete @todo.
8837 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8838 (_dbus_marshal_set_uint64): Fix comment.
8840 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8841 hardcode FIELD_REPLY_SERIAL.
8843 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8844 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8846 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8847 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8849 2003-06-24 Havoc Pennington <hp@pobox.com>
8851 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8853 2003-06-23 Anders Carlsson <andersca@codefactory.se>
8859 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8860 * gcj/org/.cvsignore:
8861 * gcj/org/Makefile.am:
8862 * gcj/org/freedesktop/.cvsignore:
8863 * gcj/org/freedesktop/Makefile.am:
8864 * gcj/org/freedesktop/dbus/.cvsignore:
8865 * gcj/org/freedesktop/dbus/Makefile.am:
8866 * gcj/org/freedesktop/dbus/Message.java: (Message),
8868 * gcj/org/freedesktop/dbus/natMessage.cc:
8869 Fix the build system.
8871 2003-06-22 Havoc Pennington <hp@pobox.com>
8873 * mono/Connection.cs: add more bindings
8875 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8878 2003-06-22 Havoc Pennington <hp@pobox.com>
8880 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8881 Start wrapping more stuff.
8883 2003-06-22 Havoc Pennington <hp@pobox.com>
8885 * mono/Message.cs: implement Message.Wrap() that ensures we only
8886 have a single C# wrapper per DBusMessage, assuming it works which
8887 it probably doesn't.
8889 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8890 (dbus_message_free_data_slot): new
8891 (dbus_message_set_data): new
8892 (dbus_message_get_data): new
8894 2003-06-22 Havoc Pennington <hp@pobox.com>
8896 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8897 (_dbus_data_slot_allocator_alloc): rework these to keep a
8898 reference count on each slot and automatically manage a global
8899 slot ID variable passed in by address
8901 * bus/bus.c: convert to new dataslot API
8903 * dbus/dbus-bus.c: convert to new dataslot API
8905 * dbus/dbus-connection.c: convert to new dataslot API
8907 * dbus/dbus-server.c: convert to new dataslot API
8909 * glib/dbus-gmain.c: ditto
8913 * bus/connection.c: ditto
8915 2003-06-22 Anders Carlsson <andersca@codefactory.se>
8917 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8918 after the gcj checks so that the correct configuration tags
8919 will be added to libtool.
8921 * dbus-glib-1.pc.in: No need to specify any includes since
8922 dbus-1.pc.in has those.
8924 2003-06-22 Havoc Pennington <hp@pobox.com>
8926 * mono/*, gcj/*, configure.in, Makefile.am:
8927 Check in makefiles and subdirs for mono and gcj bindings.
8928 Neither binding actually exists, just trying to get through
8929 all the build and other boring bits.
8931 2003-06-21 Philip Blundell <philb@gnu.org>
8933 * tools/dbus-monitor.1: Updated.
8935 * tools/dbus-send.1: Likewise.
8937 2003-06-20 Anders Carlsson <andersca@codefactory.se>
8939 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8940 for hangup and error after checking read so we won't discard
8941 pending data if both hangup and read are set.
8943 2003-06-19 Philip Blundell <philb@gnu.org>
8945 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8947 * tools/dbus-send.c: Accept both --system and --session.
8949 * tools/dbus-monitor.c: Same here.
8951 2003-06-19 Anders Carlsson <andersca@codefactory.se>
8953 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8954 from C++ (Patch by Miloslav Trmac).
8956 2003-06-15 Joe Shaw <joe@assbarn.com>
8958 * configure.in: Check for socklen_t.
8960 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8962 * test/test-segfault.c: Add #include <sys/time.h>
8964 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8965 dbus-launch needs it.
8967 2003-06-09 Havoc Pennington <hp@redhat.com>
8969 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8970 SUN_LEN, it breaks abstract socket usage
8972 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8975 2003-06-04 Havoc Pennington <hp@pobox.com>
8977 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8978 using unix:abstract=/foo, and when listening in a tmpdir
8979 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8981 * dbus/dbus-transport.c (_dbus_transport_open): support
8984 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8985 support abstract sockets
8987 * dbus/dbus-transport-unix.c
8988 (_dbus_transport_new_for_domain_socket): support abstract sockets
8990 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8991 toggle as an argument, implement abstract namespace support
8992 (_dbus_listen_unix_socket): ditto
8994 * configure.in: add --enable-abstract-sockets and implement
8995 a configure check for autodetection of the right value.
8997 2003-06-01 Havoc Pennington <hp@pobox.com>
8999 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9000 in /tmp (though on Linux this will end up being useless,
9001 when we add abstract namespace support)
9003 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9006 2003-05-28 Colin Walters <walters@verbum.org>
9008 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9010 2003-05-18 Anders Carlsson <andersca@codefactory.se>
9012 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9014 2003-05-17 Colin Walters <walters@gnu.org>
9016 * tools/dbus-send.c: Don't exit with an error code if --help was
9017 passed. Default to using the session bus instead of the system
9020 * tools/dbus-launch.c: Ditto.
9022 * tools/dbus-monitor.c: Ditto.
9024 * tools/dbus-send.1: Update with new arguments.
9026 * tools/dbus-launch.c: Emit code to export variables. New
9027 arguments -s and -c to specify shell syntax, and a bit of code to
9028 autodetect syntax. Also, allow specifying a program to run.
9030 * tools/dbus-launch.1: Update with new arguments.
9032 * tools/dbus-send.1: Ditto.
9034 * tools/dbus-monitor.1: Ditto.
9036 2003-05-17 Havoc Pennington <hp@pobox.com>
9038 * bus/config-parser.c (merge_included): merge in policies from
9039 child configuration file.
9041 * bus/policy.c (bus_policy_merge): function to merge two policies
9044 2003-05-16 Havoc Pennington <hp@redhat.com>
9046 * dbus/dbus-connection.c: disable verbose lock spew
9048 * tools/dbus-send.c: add --print-reply command line option
9050 * tools/dbus-print-message.h (print_message): new util function
9051 shared by dbus-send and dbus-monitor
9053 * tools/dbus-monitor.c (handler_func): exit on disconnect
9055 * dbus/dbus-transport-unix.c (do_reading): if the transport is
9056 disconnected, don't try to use the read_watch
9058 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9059 so we can find this bug more easily
9061 2003-05-16 Havoc Pennington <hp@redhat.com>
9063 * bus/policy.c (free_rule_list_func): avoid a crash when passed
9064 NULL as DBusHashTable is annoyingly likely to do.
9066 2003-05-16 Colin Walters <walters@verbum.org>
9068 * tools/dbus-monitor.c: Add --session argument and usage()
9071 * tools/dbus-monitor.1: Update with new --session arg.
9073 * bus/Makefile.am (install-data-hook): Create
9074 $(libdir)/dbus-1.0/services so that the session bus is happy.
9076 2003-05-15 Havoc Pennington <hp@redhat.com>
9078 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9079 on non-x86. ifdef's are evil.
9081 2003-05-15 Havoc Pennington <hp@redhat.com>
9083 * configure.in: 0.11
9087 * bus/Makefile.am (initddir): apparently we are supposed to put
9088 init scripts in /etc/rc.d/init.d not /etc/init.d
9090 * bus/Makefile.am: remove the "you must --enable-tests to make
9091 check" as it broke distcheck
9093 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9095 2003-05-13 James Willcox <jwillcox@gnome.org>
9098 * bus/activation.c: (bus_activation_service_created),
9099 (bus_activation_activate_service):
9100 * bus/driver.c: (bus_driver_send_service_deleted),
9101 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9102 (bus_driver_send_service_acquired),
9103 (bus_driver_send_welcome_message),
9104 (bus_driver_handle_list_services):
9105 * bus/session.conf.in:
9106 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9107 (dbus_bus_service_exists), (dbus_bus_activate_service):
9110 Add some convenience API which lets you activate a service, and did a
9111 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9112 and dbus_message_get_args()
9114 2003-05-11 Havoc Pennington <hp@pobox.com>
9116 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9117 calling _dbus_marshal_validate_arg() for every byte in a byte
9120 * dbus/dbus-message-handler.c: use atomic reference counting to
9121 reduce number of locks slightly; the global lock in here sucks
9123 * dbus/dbus-connection.c
9124 (_dbus_connection_update_dispatch_status_and_unlock): variant of
9125 update_dispatch_status that can be called with lock held; then use
9126 in a couple places to reduce locking/unlocking
9127 (dbus_connection_send): hold the lock over the whole function
9128 instead of acquiring it twice.
9130 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9132 * bus/connection.c (bus_connections_setup_connection): fix access
9133 to already-freed memory.
9135 * dbus/dbus-connection.c: keep a little cache of linked list
9136 nodes, to avoid using the global linked list alloc lock in the
9137 normal send-message case. Instead we just use the connection lock
9138 that we already have to take.
9140 * dbus/dbus-list.c (_dbus_list_find_last): new function
9142 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9143 change to use a struct for the atomic type; fix docs,
9144 they return value before increment, not after increment.
9146 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9147 (_dbus_string_append_8_aligned): new functions to try to
9148 microoptimize this operation.
9149 (reallocate_for_length): break this out of set_length(), to
9150 improve profile info, and also so we can consider inlining the
9153 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9154 strings with some preallocation, cuts down on our calls to realloc
9155 a fair bit. Though if we can get the "move entire string to empty
9156 string" optimization below to kick in here, it would be better.
9158 * dbus/dbus-string.c (_dbus_string_move): just call
9159 _dbus_string_move_len
9160 (_dbus_string_move_len): add a special case for moving
9161 an entire string into an empty string; we can just
9162 swap the string data instead of doing any reallocs.
9163 (_dbus_string_init_preallocated): new function
9165 2003-05-11 Havoc Pennington <hp@pobox.com>
9167 Write a "test-profile" that does echo client-server with threads;
9168 profile reveals lock contention, memcpy/realloc of buffers, and
9169 UTF-8 validation as hot spots. 20% of lock contention eliminated
9170 with dbus_atomic_inc/dec implementation on x86. Much remaining
9171 contention is global mempool locks for GList and DBusList.
9173 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9176 * dbus/dbus-connection.c (struct DBusConnection): use
9177 dbus_atomic_t for the reference count
9179 * dbus/dbus-message.c (struct DBusMessage): declare
9180 dbus_atomic_t values as volatile
9182 * configure.in: code to detect ability to use atomic integer
9183 operations in assembly, from GLib patch
9185 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9186 time, tired of it being wrong in threads and forked processes
9188 * glib/test-profile.c: a little program to bounce messages back
9189 and forth between threads and eat CPU
9191 * dbus/dbus-connection.c: add debug spew macros for debugging
9192 thread locks; include config.h at top; fix deadlock in
9193 dbus_connection_flush()
9195 2003-05-08 Havoc Pennington <hp@pobox.com>
9197 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9198 data from getting written, and there wasn't a good reason to
9201 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9202 dbus_verbose lines in test coverage
9203 (main): add list of functions sorted by # of untested blocks
9204 to the coverage report
9206 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9208 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9210 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9211 extend test coverage
9213 * test/data/auth/cancel.auth-script: test canceling an
9216 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9217 aren't used. in CVS history if we end up needing them.
9219 2003-05-04 Havoc Pennington <hp@pobox.com>
9221 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9224 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9225 function, which assumed length was in # of strings, not bytes
9227 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9230 * dbus/dbus-connection.c
9231 (_dbus_connection_queue_received_message): disable function for
9232 now, we are only using it in test mode
9234 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9235 remove a mistaken FIXME
9237 2003-05-04 Havoc Pennington <hp@pobox.com>
9239 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9240 unlock mutex on successful return, patch from Anders Gustafsson
9242 2003-05-04 Havoc Pennington <hp@pobox.com>
9244 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9247 2003-05-04 Havoc Pennington <hp@pobox.com>
9249 * tools/dbus-launch.c: implement
9251 * bus/main.c (main), bus/bus.c (bus_context_new):
9252 implement --print-pid and --fork
9254 2003-05-03 Havoc Pennington <hp@redhat.com>
9256 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9257 the address had no value, and add to test suite. Fix and
9258 regression test from Miloslav Trmac
9260 2003-05-03 Havoc Pennington <hp@pobox.com>
9262 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9263 watch is invalid when handled
9265 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9266 dbus-launch utility to launch the bus from a shell script. Didn't
9267 actually implement dbus-launch yet, it's just a placeholder still.
9269 2003-05-03 Havoc Pennington <hp@pobox.com>
9271 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9272 daemon; also documents daemon config file, so replaces
9273 doc/config-file.txt. Corrected some stuff from config-file.txt in
9274 the process of moving it.
9276 2003-05-03 Havoc Pennington <hp@pobox.com>
9278 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9281 2003-05-03 Colin Walters <walters@verbum.org>
9283 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9284 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9286 * Makefile.am: Update to use new .pc versioning scheme.
9288 2003-05-02 Havoc Pennington <hp@redhat.com>
9290 * bus/system.conf.in: allow send/receive to/from message bus
9293 2003-04-30 Havoc Pennington <hp@redhat.com>
9295 * configure.in: print a note when building with unit tests and
9298 2003-04-30 Havoc Pennington <hp@redhat.com>
9300 * Makefile.am: add a check-local that complains if you didn't
9301 configure with --enable-tests
9303 2003-04-29 Havoc Pennington <hp@redhat.com>
9305 * glib/dbus-gmain.c: docs cleanups
9307 * dbus/dbus-types.h: add docs on int64 types
9309 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9310 public API docs section
9312 2003-04-29 Havoc Pennington <hp@redhat.com>
9314 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9315 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9316 parallel install API version, not with the D-BUS package version.
9318 * HACKING: move some of README over here
9320 * README: updates, and document API/ABI policy
9322 * configure.in: reindentation
9324 2003-04-29 Havoc Pennington <hp@redhat.com>
9326 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9327 to use this library" to be sure people have the right
9330 2003-04-28 Havoc Pennington <hp@redhat.com>
9332 * configure.in: add --enable-docs which by default is auto yes if
9333 doxygen and db2html found, no otherwise; but can be forced on/off
9335 * doc/Makefile.am: conditionalize whether to build docs on
9338 2003-04-28 Havoc Pennington <hp@redhat.com>
9340 * configure.in: 0.10
9344 * bus/system.conf.in: add <includedir>system.d</includedir>
9346 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9347 username was provided but not uid
9349 * bus/config-parser.c (struct BusConfigParser): keep track of
9350 whether the parser is toplevel or was included; change some
9351 of the error handling if it's included.
9353 2003-04-27 Havoc Pennington <hp@pobox.com>
9357 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9358 report correct status if we finish processing authentication
9359 inside this function.
9361 * bus/activation.c (try_send_activation_failure): use
9362 bus_transaction_send_error_reply
9364 * bus/connection.c (bus_connection_get_groups): return an error
9365 explaining the problem
9367 * bus/bus.c (bus_context_check_security_policy): implement
9368 restriction here that inactive connections can only send the
9369 hello message. Also, allow bus driver to send anything to
9372 * bus/connection.c (bus_connection_complete): create the
9373 BusClientPolicy here instead of on-demand.
9374 (bus_connection_get_policy): don't return an error
9376 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9377 sender field in message being replied to
9379 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9380 causing it to return FALSE always
9382 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9383 we checked sender rather than destination
9385 2003-04-25 Havoc Pennington <hp@redhat.com>
9387 test suite is slightly hosed at the moment, will fix soon
9389 * bus/connection.c (bus_connections_expire_incomplete): fix to
9390 properly disable the timeout when required
9391 (bus_connection_set_name): check whether we can remove incomplete
9392 connections timeout after we complete each connection.
9394 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9395 probably still broken.
9397 * bus/services.c (bus_registry_acquire_service): implement max
9398 number of services owned, and honor allow/deny rules on which
9399 services a connection can own.
9401 * bus/connection.c (bus_connection_get_policy): report errors here
9403 * bus/activation.c: implement limit on number of pending
9406 2003-04-25 Havoc Pennington <hp@redhat.com>
9408 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9409 where we used >= 0 instead of != DBUS_UID_UNSET.
9411 2003-04-25 Havoc Pennington <hp@redhat.com>
9413 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9414 were toggled without add/remove, fix from Anders Gustafsson
9416 2003-04-24 Havoc Pennington <hp@redhat.com>
9418 * test/data/valid-config-files/basic.conf: add <limit> tags to
9421 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9422 <limit> tag in configuration file.
9424 2003-04-24 Havoc Pennington <hp@redhat.com>
9426 * bus/dispatch.c: somehow missed some name_is
9428 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9429 (_dbus_timeout_set_interval): new
9431 * bus/connection.c (bus_connections_setup_connection): record time
9432 when each connection is first set up, and expire them after the
9433 auth timeout passes.
9435 2003-04-24 Havoc Pennington <hp@redhat.com>
9437 * dbus/dbus-message.c (dbus_message_name_is): rename
9438 (dbus_message_service_is): rename
9439 (dbus_message_sender_is): rename
9440 (dbus_message_get_service): rename
9442 2003-04-24 Havoc Pennington <hp@redhat.com>
9444 * configure.in: add --enable-checks
9446 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9448 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9449 to use thread locks.
9450 (_dbus_connection_handler_destroyed_locked): move some private
9451 functions into proper docs group
9453 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9454 _dbus_return_val_if_fail
9456 Throughout: use dbus_return_if_fail
9458 2003-04-23 James Willcox <jwillcox@gnome.org>
9461 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9462 (dbus_connection_setup_with_g_main),
9463 (dbus_server_setup_with_g_main):
9464 * glib/test-dbus-glib.c: (main):
9465 * glib/test-thread-client.c: (main):
9466 * glib/test-thread-server.c: (new_connection_callback), (main):
9467 * tools/dbus-monitor.c: (main):
9469 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9470 and dbus_server_setup_with_g_main().
9472 2003-04-20 Havoc Pennington <hp@pobox.com>
9474 * doc/dbus-specification.sgml: document the restrictions on
9475 message and service names
9477 2003-04-22 Havoc Pennington <hp@redhat.com>
9479 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9480 support, and do some code cleanups to share more code and
9481 speed up array marshal/demarshal.
9483 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9485 * configure.in: generate dbus-arch-deps.h
9487 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9490 2003-04-22 Havoc Pennington <hp@redhat.com>
9492 * test/data/valid-messages/opposite-endian.message: fix test
9493 to use proper type for rply field
9495 * test/data/invalid-messages: add tests for below validation
9497 * dbus/dbus-message.c (decode_header_data): validate field types,
9498 and validate that named fields are valid names
9499 (decode_name_field): consider messages in the
9500 org.freedesktop.Local. namespace to be invalid.
9502 * dbus/dbus-string.c (_dbus_string_validate_name): new
9504 2003-04-19 Havoc Pennington <hp@pobox.com>
9506 * bus/driver.c (bus_driver_handle_hello): check limits and
9507 return an error if they are exceeded.
9509 * bus/connection.c: maintain separate lists of active and inactive
9510 connections, and a count of each. Maintain count of completed
9511 connections per user. Implement code to check connection limits.
9513 * dbus/dbus-list.c (_dbus_list_unlink): export
9515 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9516 number of bytes in the message queue for a connection
9518 2003-04-18 Havoc Pennington <hp@pobox.com>
9520 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9522 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9525 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9526 on realloc be sure to update the pointer in the keyring
9528 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9529 offset to avoid writing to unallocated memory
9531 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9532 try the next mechanism, so we properly handle OOM
9534 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9536 (_dbus_keyring_new): fix OOM bug
9537 (_dbus_keyring_new_homedir): always set error; impose a maximum
9538 number of keys we'll load from the file, mostly to speed up the
9539 test suite and make its OOM checks more useful, but also for
9542 * dbus/dbus-auth.c (process_error_server): reject authentication
9543 if we get an error from the client
9544 (process_cancel): on cancel, send REJECTED, per the spec
9545 (process_error_client): send CANCEL if we get an error from the
9548 2003-04-18 Havoc Pennington <hp@pobox.com>
9550 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9553 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9556 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9557 about DBUS_TEST_HOMEDIR once
9559 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9562 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9563 config file so we test the right thing
9565 Throughout: assorted docs improvements
9567 2003-04-18 Havoc Pennington <hp@pobox.com>
9569 * glib/dbus-gmain.c: adapt to watch changes
9571 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9573 * dbus/dbus-server.h: remove dbus_server_handle_watch
9575 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9577 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9578 like DBusTimeout, so we don't need dbus_connection_handle_watch
9581 2003-04-17 Havoc Pennington <hp@redhat.com>
9583 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9584 database usage so it all goes via the DBusUserDatabase cache.
9586 2003-04-17 Havoc Pennington <hp@redhat.com>
9588 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9589 there was an OOM watch we skipped, we always return TRUE so we
9590 iterate again to have a look at it again. Fixes test suite hang.
9591 Code rearrangement also lets us lose some memset and only iterate
9592 over callbacks once.
9594 * bus/driver.c (bus_driver_handle_message): sense of test for
9597 2003-04-16 Havoc Pennington <hp@pobox.com>
9599 * doc/dbus-specification.sgml: make spec say serials are unsigned
9601 * dbus/dbus-message.h: change message serials to unsigned
9603 * dbus/dbus-connection.c: adapt to message serials being unsigned
9605 2003-04-15 Havoc Pennington <hp@pobox.com>
9607 * bus/bus.c: create and keep around a shared DBusUserDatabase
9610 * bus/connection.c (bus_connection_get_groups): don't cache
9611 groups for user in the connection object, since user database
9612 object now does that.
9614 2003-04-16 Havoc Pennington <hp@redhat.com>
9616 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9617 list of size counters
9618 (_dbus_message_loader_putback_message_link): put back a popped link
9620 * dbus/dbus-connection.c
9621 (dbus_connection_set_max_live_messages_size): rename
9623 (dbus_connection_get_outgoing_size): get size of outgoing
9625 (_dbus_connection_set_connection_counter): remove this cruft
9627 2003-04-14 Havoc Pennington <hp@redhat.com>
9629 * dbus/dbus-userdb.c: user database abstraction, mostly to get
9630 caching, but at some point we might want to be able to use a
9633 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9634 SHA1 conf file to test the sha1 auth mechanism, since the regular
9635 test always uses EXTERNAL when available.
9638 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9639 add conf file that requires use of sha1 auth
9641 2003-04-13 Havoc Pennington <hp@pobox.com>
9643 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9644 from Philip Blundell to send messages and monitor them.
9646 2003-04-13 Havoc Pennington <hp@pobox.com>
9648 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9651 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9654 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9655 fix to only recover unused bytes if we're already authenticated
9656 (_dbus_transport_get_is_authenticated): fix to still mark us
9657 authenticated if there are unused bytes.
9659 * bus/dispatch.c: implement security policy checking
9661 * bus/connection.c (bus_transaction_send_from_driver): new
9663 * bus/bus.c (bus_context_check_security_policy): new
9665 * bus/dispatch.c (send_service_nonexistent_error): delete this,
9666 now we just set the DBusError and it gets converted to an error
9669 * bus/connection.c (allow_user_function): enable code using actual
9670 data from the config file
9672 * bus/policy.c (list_allows_user): handle wildcard rules for
9673 user/group connection perms
9675 2003-04-13 Havoc Pennington <hp@pobox.com>
9677 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9679 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9681 * bus/policy.c (bus_policy_append_mandatory_rule)
9682 (bus_policy_append_default_rule, bus_policy_append_user_rule)
9683 (bus_policy_append_group_rule): new functions
9685 2003-04-12 Havoc Pennington <hp@pobox.com>
9687 * bus/config-parser.c (bus_config_parser_new): fix a memleak
9689 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9690 the pid/gid/uid, just for paranoia.
9692 * test/break-loader.c (randomly_do_n_things): find a byte
9693 containing a type code, and randomly change it to a different
9696 2003-04-12 Havoc Pennington <hp@pobox.com>
9698 * bus/policy.h: change BusPolicy to be the thing from the config
9699 file, and rename old BusPolicy to BusClientPolicy
9701 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9702 match change in how policy works
9704 * dbus/dbus-internals.h: mark assert_not_reached as
9705 __attribute((noreturn))__
9707 2003-04-11 Havoc Pennington <hp@redhat.com>
9709 * doc/dbus-specification.sgml: fix a spot with the wrong name for
9710 the broadcast service. Use boolean return for ServiceExists.
9712 2003-04-11 Havoc Pennington <hp@redhat.com>
9714 * configure.in: add another directory to look for qt in.
9716 2003-04-11 Havoc Pennington <hp@redhat.com>
9718 * AUTHORS: add Colin Walters
9720 2003-04-11 Havoc Pennington <hp@redhat.com>
9726 2003-04-11 Havoc Pennington <hp@redhat.com>
9728 * bus/messagebus.in: remove pid file when stopping the
9729 message bus, since the bus won't have privileges to remove it
9732 2003-04-11 Havoc Pennington <hp@redhat.com>
9734 * bus/bus.c (bus_context_new): move credentials change after
9737 2003-04-11 Havoc Pennington <hp@pobox.com>
9739 * test/decode-gcov.c: add "below average functions" to the
9740 coverage report, and change how some of the code works.
9742 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9743 not in the coverage stats.
9745 * test/test-service.c (main): use _dbus_verbose not fprintf in a
9746 couple places so running the test suite doesn't result in megaspam.
9748 2003-04-11 Havoc Pennington <hp@pobox.com>
9750 * bus/dispatch.c (check_existent_service_activation): accept a no
9751 memory error in a place we didn't before
9753 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9754 in case the first one failed," since the test suite is less
9757 2003-04-10 Havoc Pennington <hp@pobox.com>
9759 * bus/dispatch.c (check_segfault_service_activation): add test
9760 for launching an executable that just crashes.
9762 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9763 don't leave a million cores. We'll see how portable this is.
9765 2003-04-10 Havoc Pennington <hp@pobox.com>
9767 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9768 the possible parent failures before we fork, so that we don't
9769 fail to create a babysitter after creating the child.
9771 * bus/activation.c (bus_activation_activate_service): kill child
9772 if we don't successfully complete the activation.
9774 2003-04-10 Havoc Pennington <hp@redhat.com>
9776 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9777 the connection if it's disconnected
9779 * bus/activation.c (bus_activation_service_created): use new
9780 transaction features to roll back removal of pending activation if
9781 we don't successfully create the service after all. Don't remove
9782 pending activation if the function fails.
9784 * dbus/dbus-list.c (_dbus_list_insert_before_link)
9785 (_dbus_list_insert_after_link): new code to facilitate
9788 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9789 new functionality, so we can preallocate the ability to insert
9792 * bus/connection.c (bus_transaction_add_cancel_hook): new function
9793 allowing us to put custom hooks in a transaction to be used for
9794 cancelling said transaction
9796 * doc/dbus-specification.sgml: add some discussion of secondary
9797 service owners, and disallow zero-length service names
9799 * bus/services.c (bus_registry_acquire_service): new function,
9800 splits out part of bus_driver_handle_acquire_service() and fixes
9801 a bug where we didn't remove the service doing the acquiring
9802 from the secondary queue if we failed to remove the current owner
9803 from the front of the queue.
9805 2003-04-10 Alexander Larsson <alexl@redhat.com>
9807 * doc/dbus-specification.sgml:
9808 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9810 2003-04-10 Alexander Larsson <alexl@redhat.com>
9815 Added files to cvsignore
9817 * dbus/dbus-message.h:
9818 * dbus/dbus-message.c: (dbus_message_iter_get_named):
9819 Make get_named() take two out argument and return a boolean.
9820 (dbus_message_iter_get_args_valist):
9821 Update usage of get_named().
9822 (dbus_message_iter_append_byte):
9824 (dbus_message_iter_append_named)
9826 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9829 2003-04-10 Alexander Larsson <alexl@redhat.com>
9831 * dbus/dbus-marshal.[ch]:
9832 Add array_type_pos argument to _dbus_marshal_validate_arg.
9833 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9835 * dbus/dbus-message.[ch]:
9836 Multi-dimensional arrays have full type specification in the
9837 outermost array. Iter code re-arranged to handle this.
9838 Added some more iter tests.
9840 * doc/dbus-specification.sgml:
9843 Update new array encoding description.
9844 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9846 * test/data/invalid-messages/array-with-mixed-types.message:
9847 * test/data/valid-messages/array-of-array-of-uint32.message:
9848 Change to the new array format.
9850 * test/data/invalid-messages/too-short-dict.message:
9853 * test/data/valid-messages/recursive-types.message:
9854 Fix up and extend test.
9856 2003-04-10 Havoc Pennington <hp@pobox.com>
9858 * bus/dispatch.c: lots of fixes
9860 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9861 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9862 that was crack, broke the test service.
9864 * dbus/dbus-transport.c (_dbus_transport_open): fix error
9865 handling to avoid piling up errors if we get a failure on the
9868 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9869 pid in assertion failures.
9871 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9872 to some fixed size of file descriptor array. Don't return TRUE
9873 anytime a timeout exists, that led to lots of busy loop silliness
9876 2003-04-09 Havoc Pennington <hp@redhat.com>
9878 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9879 I'd checked this in earlier but hadn't.
9881 2003-04-09 Havoc Pennington <hp@redhat.com>
9883 * bus/dispatch.c (bus_dispatch_test): get a bit further through
9884 the activation test (man this is getting old!)
9886 2003-04-09 Havoc Pennington <hp@redhat.com>
9888 * test/test-utils.c: use dispatch status function to fix this up
9890 * bus/connection.c (connection_watch_callback): don't dispatch
9892 (connection_timeout_callback): don't dispatch from here
9893 (bus_connections_setup_connection): set the dispatch status function
9894 (bus_connection_disconnected): unset it
9896 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9897 used to add a connection to be dispatched
9898 (_dbus_loop_iterate): do the dispatching at the end of each
9901 * dbus/dbus-connection.c
9902 (dbus_connection_set_dispatch_status_function): new function
9903 allowing us to fix up main loop usage
9904 (_dbus_connection_last_unref): free all the various function
9906 (dbus_connection_dispatch): call the DispatchStatusFunction
9907 whenever this function returns
9908 (dbus_connection_handle_watch): call DispatchStatusFunction
9909 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9910 (reply_handler_timeout): call DispatchStatusFunction
9911 (dbus_connection_flush): call DispatchStatusFunction
9913 2003-04-09 Havoc Pennington <hp@redhat.com>
9915 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9918 * bus/dispatch.c (check_service_activated): fix bug in test
9920 * dbus/dbus-mainloop.c (check_timeout): fix this up
9922 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9923 verbose output so we can sort out output from different processes,
9924 e.g. in the activation case.
9926 2003-04-08 Colin Walters <walters@gnu.org>
9928 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9930 (bus_context_new): Set it.
9931 (bus_context_unref): Use it to delete the pid file.
9933 2003-04-08 Havoc Pennington <hp@redhat.com>
9935 * test/data/invalid-messages/array-with-mixed-types.message:
9936 regression test that fails for the moment
9938 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9939 tests for convenience
9941 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9942 array of nil, it broke things.
9944 * test/data/invalid-messages/array-of-nil.message: regression test
9946 * test/data/valid-messages/array-of-array-of-uint32.message:
9947 happened to write this so added it to suite
9949 2003-04-08 Havoc Pennington <hp@redhat.com>
9951 * bus/driver.c (bus_driver_handle_acquire_service): init
9952 retval/reply before checking name
9954 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9955 recursion depth argument
9957 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9958 in the public struct for future extension
9960 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9963 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9966 * doc/dbus-specification.sgml: fix typo
9968 2003-04-08 Alexander Larsson <alexl@redhat.com>
9970 Implemented recursive types, named types and new-style iters
9973 * glib/test-thread-client.c: (thread_func):
9974 * glib/test-thread-server.c: (handle_test_message):
9975 * test/test-service.c: (handle_echo):
9984 * dbus/dbus-internals.c: (_dbus_type_to_string):
9985 Update for new types.
9987 * dbus/dbus-marshal.[ch]:
9988 Implement recursive types and the new marshalling format.
9989 Remove hardcoded dict marshalling.
9990 Marshal named types.
9992 * dbus/dbus-message-builder.c:
9994 Remove references to old types
9996 * dbus/dbus-message.[ch]:
9997 New non-refcounted iter API that supports recursive iters.
9998 Use iters for appending, including support for recursive
10000 Add byte and named type support.
10001 Update everything to new marshalling formats.
10002 Add tests for new API.
10004 * dbus/dbus-protocol.h:
10005 Remove old array types.
10006 Add types: BYTE, ARRAY, DICT, NAMED
10008 * dbus/dbus-string.c:
10009 * dbus/dbus-sysdeps.c:
10010 Make parse_double locale safe.
10012 * dbus/dbus-test-main.c:
10015 * dbus/dbus-test.c:
10018 * doc/dbus-specification.sgml:
10021 * test/data/incomplete-messages/missing-body.message:
10022 * test/data/invalid-messages/bad-boolean.message:
10023 * test/data/invalid-messages/bad-boolean-array.message:
10024 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10025 * test/data/invalid-messages/boolean-has-no-value.message-raw:
10026 * test/data/invalid-messages/too-short-dict.message:
10027 * test/data/valid-messages/dict-simple.message:
10028 * test/data/valid-messages/dict.message:
10029 * test/data/valid-messages/emptiness.message:
10030 * test/data/valid-messages/lots-of-arguments.message:
10031 * test/data/valid-messages/no-padding.message:
10032 * test/data/valid-messages/recursive-types.message:
10033 Add missing NAME fields
10034 Fix up dicts & arrays
10036 * test/data/invalid-messages/dict-with-nil-value.message:
10037 Removed, this is not invalid anymore.
10039 * test/data/valid-messages/recursive-types.message:
10040 Add new test for deeply recursive types.
10042 2003-04-07 Havoc Pennington <hp@pobox.com>
10044 * bus/driver.c (bus_driver_handle_acquire_service): return an
10045 error if you try to acquire a service that starts with ':'
10047 2003-04-07 Havoc Pennington <hp@redhat.com>
10049 * doc/dbus-specification.sgml: require that base service names
10050 start with ':' and that the base service is created/deleted
10051 as first and last things a connection does on the bus
10053 * bus/dispatch.c (check_existent_service_activation): lots more
10054 work on the activation test; it doesn't fully pass yet...
10056 * test/test-service.c (main): fix so we don't memleak the
10057 connection to the message bus
10058 (filter_func): accept a message asking us to exit
10060 2003-04-06 Havoc Pennington <hp@pobox.com>
10062 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10065 * configure.in: fixes to Qt detection from Colin Walters
10067 * doc/Makefile.am: Only remove generated docbook dirs if they
10068 exist, from Colin Walters
10070 * dbus/dbus-bus.c: change how we set well-known connections to
10071 NULL, so that it works if a single connection is stored in
10072 two well-known array slots.
10074 * test/Makefile.am: remove a lot of stuff that isn't immediately
10075 useful, it's in CVS history if we want it.
10077 * test/test-service.c: use dbus-mainloop instead of that
10080 2003-04-06 Havoc Pennington <hp@pobox.com>
10082 * dbus/Makefile.am: split lists of sources into stuff that goes in
10083 the library, util functions that go in the lib and are also used
10084 elsewhere, and util functions that are used in tests/daemon but
10085 don't go in the lib.
10087 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10088 here so it can be used in test binaries also
10090 2003-04-06 Havoc Pennington <hp@pobox.com>
10092 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10093 here in the parent process, so we can return an error if it
10094 fails. Also, move some of the code into the child so the parent
10095 is less hosed if we fail midway through.
10097 * bus/bus.c (bus_context_new): move pidfile detection further up
10098 in the function, before we start overwriting sockets and such.
10100 * bus/messagebus.in: adjust this a bit, not sure if it will work.
10102 * configure.in: add --with-system-pid-file and --with-system-socket
10104 2003-04-06 Colin Walters <walters@verbum.org>
10106 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10108 * bus/system.conf.in: Declare a pidfile.
10110 * bus/bus.c (bus_context_new): Test for an existing pid file, and
10111 create one (if appropriate).
10113 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10114 (struct BusConfigParser) [pidfile]: New.
10115 (element_type_to_name, merge_included, start_busconfig_child)
10116 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10117 (bus_config_parser_unref): Free it.
10118 (bus_config_parser_get_pidfile): New function.
10120 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10122 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10124 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10126 * dbus/dbus-sysdeps.h: Prototype it.
10128 2003-04-06 Havoc Pennington <hp@pobox.com>
10130 * bus/bus.c (bus_context_new): print the address in here, rather
10131 than in main(), because we need to do it before forking the daemon
10133 * bus/dispatch.c (send_service_nonexistent_error): set the sender
10134 on the service nonexistent error
10136 * bus/driver.c (bus_driver_handle_acquire_service): set the
10137 sender on the AcquireService reply
10139 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10140 server also listen on a UNIX socket so services can connect to it.
10142 2003-04-06 Havoc Pennington <hp@pobox.com>
10144 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10145 so it detects deadlocks and also we actually init threads when
10148 2003-04-06 Havoc Pennington <hp@pobox.com>
10150 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10151 save the domain socket name, and unlink it when we disconnect the
10152 server. Means that at least when we exit normally, we won't leave
10153 a bunch of junk in /tmp
10155 * dbus/dbus-transport-unix.c
10156 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10157 memory management). (I was making a real change here but then
10160 2003-04-06 Havoc Pennington <hp@pobox.com>
10162 * bus/bus.c (bus_context_new): fix wrong handling of
10163 server_data_slot_unref() in the error case.
10165 * dbus/dbus-internals.h (_dbus_assert): change so it passes
10166 "(condition) != 0" to _dbus_real_assert so that
10167 "_dbus_assert (pointer)" doesn't cause a warning
10169 * bus/main.c (main): accept --print-address option to print out
10170 the message bus address
10172 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10174 * dbus/dbus-transport.c (_dbus_transport_open): special error for
10175 "tmpdir" option to unix: address on client side
10177 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10180 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10181 we can use to create sockets in the test suite.
10183 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10184 cleanly. To be used for testing.
10186 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10188 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10190 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10191 handle trying to call this when there's no servers active
10193 2003-04-05 Havoc Pennington <hp@pobox.com>
10197 * configure.in: 0.8
10199 2003-04-05 Havoc Pennington <hp@pobox.com>
10201 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10202 crash on startup. Need to get "try starting the daemon"
10203 in the test suite I guess. ;-)
10205 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10206 tracked the number of open connections; it's better done in
10207 application-specific code as you want it to span all servers etc.
10209 2003-04-05 Havoc Pennington <hp@pobox.com>
10211 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10212 patch from Colin Walters
10214 2003-04-05 Havoc Pennington <hp@pobox.com>
10216 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10217 reality; in fact multiple mechanisms are allowed.
10219 * dbus/dbus-internals.c (_dbus_real_assert)
10220 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10221 _dbus_assert_not_reached() into functions, so that they don't show
10222 up in basic block counts for test coverage, and don't use up as
10223 much disk space. Does mean slower execution speed though, so
10224 assumes --disable-asserts is the normal production case.
10226 2003-04-05 Havoc Pennington <hp@pobox.com>
10228 * test/Makefile.am (dist-hook): also dist *.in files
10232 * configure.in: 0.7
10234 2003-04-05 Havoc Pennington <hp@pobox.com>
10236 * dbus/dbus-string.c: docs warning
10238 * dbus/dbus-spawn.c: missing docs
10240 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10242 2003-04-05 Havoc Pennington <hp@pobox.com>
10244 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10247 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10248 to -1 once we've reaped the babysitter
10249 (_dbus_babysitter_handle_watch): do as much work as we can, not
10252 * bus/activation.c: add code using DBusBabysitter so that we
10253 handle it when a service fails to start up properly.
10254 (bus_activation_service_created): don't remove the activation
10255 entries as we go, just let them get removed when we free the pending
10256 activation. Unref reply messages after sending them.
10258 2003-04-05 Havoc Pennington <hp@pobox.com>
10260 * test/decode-gcov.c (main): print per-directory stats in the report
10262 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10264 2003-04-05 Havoc Pennington <hp@pobox.com>
10266 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10268 * test/decode-gcov.c: hack up a little program to suck data
10269 out of gcov files. Yes this is sort of silly.
10271 * configure.in: define something in config.h and do an
10272 AM_CONDITIONAL when gcov is enabled
10274 2003-04-04 Havoc Pennington <hp@redhat.com>
10276 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10277 return a "babysitter" object that is used to monitor the status of
10278 the spawned process and reap it when required.
10280 * test/test-segfault.c, test/test-exit.c,
10281 test/test-sleep-forever.c: binaries that do various lame things,
10282 used in the test suite.
10284 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10286 2003-04-03 Havoc Pennington <hp@pobox.com>
10288 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10289 in preparation for modifying it, dbus-sysdeps is getting
10290 a bit unmanageable.
10292 2003-04-03 Havoc Pennington <hp@redhat.com>
10294 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10297 * bus/*.[hc]: adapt to mainloop change
10299 2003-04-03 Havoc Pennington <hp@redhat.com>
10301 * bus/activation.c (load_directory): fix up memleaks
10302 (bus_activation_entry_free): free the entry
10304 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10305 we get one from the message bus; fix memleaks.
10307 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10309 2003-04-03 Havoc Pennington <hp@pobox.com>
10311 * bus/config-parser.c (bus_config_parser_unref): free
10312 list of mechanisms, bug discovered by test suite enhancements
10313 (putting system.conf and session.conf into suite)
10315 * test/Makefile.am, test/test-service.c: add placeholder for a
10316 test service that we'll activate as part of test suite. Doesn't
10319 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10320 setting NULL value, and use system malloc not dbus_malloc()
10321 when we have unavoidable memleakage.
10323 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10324 didn't work, and support DBUS_BUS_ACTIVATION.
10326 * bus/activation.c (child_setup): pass our well-known bus type to
10329 * bus/config-parser.c: support <type> to specify well-known type
10331 * doc/dbus-specification.sgml: document the env variables to
10332 locate well-known buses and find service activator
10334 2003-04-02 Havoc Pennington <hp@redhat.com>
10336 * test/Makefile.am (all-local): add a rule to copy tests to
10337 builddir, so we can have generated tests. Use this to remove the
10338 silly hack for testing system.conf and session.conf. Will use this
10339 shortly to generate .service files pointing to test binaries.
10341 2003-04-02 Havoc Pennington <hp@redhat.com>
10343 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10344 current alloc and needed new length, not max of the doubled
10345 allocation and needed new length. Also, when building tests,
10346 don't do the double-allocation stuff, just realloc every time.
10348 2003-04-02 Havoc Pennington <hp@redhat.com>
10350 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10352 (_dbus_string_get_dirname): new
10353 (_dbus_sysdeps_test): new
10354 (_dbus_directory_open): include dirnames in error messages
10356 * bus/config-parser.c: interpret <include> and <includedir> and
10357 <servicedir> relative to config file location if the given
10358 filename is not absolute.
10360 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10362 2003-04-02 Havoc Pennington <hp@redhat.com>
10364 * bus/connection.c (bus_transaction_send_error_reply): set sender
10365 service for the error, and unref the reply on success
10367 * bus/activation.c: convert to use BusTransaction so OOM can be
10369 (bus_activation_service_created): set sender of the message
10371 2003-04-01 Havoc Pennington <hp@redhat.com>
10373 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10374 <includedir> (at least mostly)
10376 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10377 first, then the user ID
10379 2003-04-01 Havoc Pennington <hp@pobox.com>
10381 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10384 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10386 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10388 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10389 socket 0777, and unlink any existing socket.
10391 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10392 the configuration file so specifies; set up auth mechanism
10395 * bus/config-parser.c (bus_config_parser_content): add support
10396 for <fork> option and fill in code for <auth>
10398 * bus/system.conf.in: add <fork/> to default configuration,
10399 and limit auth mechanisms to EXTERNAL
10401 * doc/config-file.txt (Elements): add <fork>
10403 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10404 (_dbus_change_identity): new function
10406 2003-03-31 Havoc Pennington <hp@redhat.com>
10408 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10409 (_dbus_listen_unix_socket): fix off-by-one error in null
10410 termination spotted by Nalin
10412 2003-03-31 Havoc Pennington <hp@redhat.com>
10414 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10415 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10416 having a real home directory available.
10418 2003-03-31 Havoc Pennington <hp@redhat.com>
10420 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10422 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10424 * configure.in: add support for specifying a style of init script
10427 2003-03-31 Havoc Pennington <hp@redhat.com>
10429 Fix some annoying DBusString API and fix all affected code.
10431 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10432 max_length argument
10433 (_dbus_string_get_data): change to return string instead of using
10435 (_dbus_string_get_const_data): ditto
10436 (_dbus_string_get_data_len): ditto
10437 (_dbus_string_get_const_data_len): ditto
10439 2003-03-31 Havoc Pennington <hp@redhat.com>
10441 * bus/main.c (main): fix up the command line arguments to be nicer
10443 2003-03-31 Havoc Pennington <hp@redhat.com>
10445 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10446 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10447 final location that lands in the config file
10449 * bus/config-loader-expat.c (bus_config_load): fix type of
10450 XML_Parser variable
10452 * doc/TODO: remove TODO item for dbus_bus_get()
10454 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10456 2003-03-31 Havoc Pennington <hp@pobox.com>
10458 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10459 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10460 argument since they are always client side
10462 * dbus/dbus-server.c (dbus_server_get_address): new function
10464 * bus/main.c (main): take the configuration file as an argument.
10466 * test/data/valid-config-files/debug-allow-all.conf: new file to
10467 use with dispatch.c tests for example
10469 * bus/test-main.c (main): require test data dir
10471 * bus/bus.c (bus_context_new): change this to take a
10472 configuration file name as argument
10474 * doc/config-file.txt (Elements): add <servicedir>
10476 * bus/system.conf, bus/session.conf: new files
10478 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10479 well-known socket if none set
10481 * configure.in: create system.conf and session.conf
10483 2003-03-30 Havoc Pennington <hp@pobox.com>
10485 * bus/config-parser.c: hacking
10487 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10488 to shut down, since it could cause weirdness with the DBusList
10491 * dbus/dbus-list.c (_dbus_list_test): add tests for the
10492 link-oriented stack routines
10493 (alloc_link): free the mempool if the first alloc from it fails
10495 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10497 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10499 (_dbus_string_skip_white): new
10501 * doc/config-file.txt (Elements): add <includedir>
10503 2003-03-28 Havoc Pennington <hp@pobox.com>
10505 * dbus/dbus-string.c (_dbus_string_copy_data_len)
10506 (_dbus_string_copy_data): new functions
10508 2003-03-28 Anders Carlsson <andersca@codefactory.se>
10510 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10514 * dbus/dbus-memory.c:
10517 2003-03-28 Havoc Pennington <hp@pobox.com>
10519 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10520 I think it may have just been superstition. Not sure.
10522 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10523 failures that were not being handled.
10525 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10527 * dbus/dbus-memory.c: add ability to set number of mallocs in a
10528 row that will fail on out-of-memory.
10530 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10531 function for testing out-of-memory handling.
10533 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10534 allocation functions, they do map exactly to the expat ones.
10536 2003-03-27 Havoc Pennington <hp@redhat.com>
10538 * bus/config-loader-libxml.c (bus_config_load): add another error
10541 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10544 Add note about automatic service activation.
10546 * doc/dbus-specification.sgml:
10547 Rename the specification and clarify a few things.
10549 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10552 * dbus/dbus-address.c:
10553 * dbus/dbus-dict.c:
10554 * dbus/dbus-marshal.c:
10555 * dbus/dbus-server-debug-pipe.c:
10556 * dbus/dbus-transport-unix.c:
10557 Fix documentation warnings.
10559 2003-03-26 Havoc Pennington <hp@pobox.com>
10561 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10562 after every test so it's quick and easy to see which leaked, and
10563 so we test multiple dbus_shutdown() calls
10565 * configure.in: change configure.in XML stuff to also support
10568 * config-loader-libxml.c: some hacking
10570 * config-loader-expat.c: some hacking
10572 * config-parser.c: some hacking, plus tests
10574 2003-03-25 Havoc Pennington <hp@redhat.com>
10576 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10578 * configure.in: add --with-xml option to specify XML library,
10579 right now only libxml is supported.
10581 * bus/config-loader-libxml.c, config-parser.c: sync some minor
10582 nonworking code between home and work, still just stubs
10584 2003-03-24 Havoc Pennington <hp@redhat.com>
10586 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10589 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10590 NULL argument for "message" if the error is a well-known one,
10591 fill in a generic message in this case.
10593 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10596 * bus/test.c (bus_test_flush_bus): add
10598 * bus/policy.c (bus_policy_test): test code stub
10600 2003-03-24 Havoc Pennington <hp@pobox.com>
10602 * bus/connection.c (bus_connections_setup_connection): set up
10603 the "can this user connect" function, but it always returns
10604 TRUE until we have a config file parser so we can have a config
10605 file that allows connections.
10607 2003-03-23 Havoc Pennington <hp@pobox.com>
10609 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10610 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10611 the mutex, so we can check for proper memory management
10614 * dbus/dbus-dataslot.c: remove the mutex from
10615 DBusDataSlotAllocator and lock it manually when using it,
10616 to simplify fitting it into the global slots framework.
10618 * dbus/dbus-threads.c (init_static_locks): rework how we're
10619 handling global locks so they are easily shut down.
10621 * bus/policy.c (bus_policy_append_rule): fix
10623 * bus/test-main.c (main): check for memleaks
10625 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10626 test suite check for memleaks
10628 * dbus/dbus-memory.c: add support in test mode for tracking
10629 number of outstanding blocks
10631 2003-03-23 Havoc Pennington <hp@pobox.com>
10633 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10636 * dbus/dbus-hash.h: add ULONG hash keys
10638 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10639 (_dbus_get_group_id): new function
10641 2003-03-20 Havoc Pennington <hp@redhat.com>
10643 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10645 (dbus_connection_get_unix_user): new function
10647 2003-03-20 Havoc Pennington <hp@pobox.com>
10649 * bus/connection.c (bus_connection_send_oom_error): assert that
10650 message has a sender
10651 (connection_execute_transaction): ditto
10652 (bus_connection_preallocate_oom_error): fix to set the sender, and
10653 set recipient to the destination service, not the bus driver
10655 * bus/policy.c: hacking
10657 * dbus/dbus-message.c (dbus_message_service_is): new function
10658 (dbus_message_sender_is): new
10660 2003-03-19 Havoc Pennington <hp@redhat.com>
10662 * bus/policy.c: start sketching code for policy restrictions on
10663 what connections can do.
10665 2003-03-18 Havoc Pennington <hp@redhat.com>
10667 * doc/TODO: some notes on high-level todo items. Little nitpick
10668 stuff is all in @todo, so no need to add it here.
10670 * doc/config-file.txt: some notes on how config file might look
10672 2003-03-18 Anders Carlsson <andersca@codefactory.se>
10674 * configure.in: 0.6
10678 2003-03-17 Havoc Pennington <hp@redhat.com>
10680 * dbus/dbus-internals.h: add gcc attributes so that
10681 our printf-style functions warn on bad arguments to
10684 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10687 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10690 2003-03-17 Havoc Pennington <hp@redhat.com>
10692 * bus/test-main.c (main): make it print something as it runs
10693 so make check doesn't look stuck
10695 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10696 from CVS, now obsolete
10698 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10700 * bus/dispatch.c: (bus_dispatch):
10701 Refetch the service name since it may have been reallocated
10702 when dbus_message_set_sender was called.
10704 * dbus/dbus-sysdeps.c: (_dbus_accept):
10705 Add address and address length variables and use them to stop
10706 valgrind from complaining.
10708 2003-03-17 Havoc Pennington <hp@pobox.com>
10710 All tests pass, no memleaks, no valgrind complaints.
10712 * bus/test.c: refcount handler_slot
10714 * bus/connection.c (bus_connections_new): refcount
10715 connection_data_slot
10717 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10718 bytes so that auth scripts pass.
10720 * bus/dispatch.c: init message_handler_slot so it gets allocated
10723 * bus/dispatch.c (message_handler_slot_ref): fix memleak
10725 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10726 dealloc server_pipe_hash when no longer used for benefit of
10729 * dbus/dbus-auth.c (process_command): memleak fix
10731 * bus/dispatch.c (check_hello_message): memleak fix
10733 2003-03-16 Havoc Pennington <hp@pobox.com>
10735 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10737 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10739 * bus/activation.c (bus_activation_activate_service): Append
10740 the pending activation entry to the list of pending activations.
10742 2003-03-16 Havoc Pennington <hp@pobox.com>
10744 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10747 * dbus/dbus-address.c (create_entry): fix OOM handling when
10748 failing to alloc entry->method
10750 2003-03-16 Havoc Pennington <hp@pobox.com>
10752 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10755 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10756 add some missing dbus_set_result
10758 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10759 alloc the DBusMessageHandler
10761 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10762 the transport here, since we call this from the finalizer; it
10763 resulted in a double-finalize.
10765 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10766 where we tried to use transport->connection that was NULL,
10767 happened when transport was disconnected early on due to OOM
10769 * bus/*.c: adapt to handle OOM for watches/timeouts
10771 * dbus/dbus-transport-unix.c: port to handle OOM during
10774 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10775 reference to unused bytes instead of a copy
10777 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10780 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10783 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10786 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10788 * doc/dbus-specification.sgml:
10789 Document reply message for ActivateService.
10791 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10793 * bus/activation.c: (bus_pending_activation_entry_free),
10794 (bus_pending_activation_free), (bus_activation_new),
10795 (bus_activation_unref), (bus_activation_service_created),
10796 (bus_activation_activate_service):
10797 * bus/activation.h:
10798 * bus/bus.c: (bus_context_new):
10799 * bus/desktop-file.c: (new_section):
10800 * bus/driver.c: (bus_driver_send_service_deleted),
10801 (bus_driver_handle_activate_service):
10802 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10804 * dbus/dbus-connection.c:
10805 (dbus_connection_send_with_reply_and_block):
10806 * dbus/dbus-message.c: (dbus_message_append_args_valist):
10807 * dbus/dbus-protocol.h:
10808 Make activation work better. Now pending activations will be queued
10809 and the daemon won't try to activate services that are already registered.
10811 2003-03-16 Havoc Pennington <hp@pobox.com>
10813 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10816 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10817 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10819 2003-03-16 Havoc Pennington <hp@pobox.com>
10821 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10822 this. always run the test suite before commit...
10824 * bus/*: adapt to DBusConnection API changes
10826 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10827 requires renaming stuff to avoid dbus_connection_dispatch name
10830 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10833 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10834 separate from _dbus_message_loader_return_buffer()
10836 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10837 this, because it's now always broken to use; the number of
10838 messages in queue vs. the number still buffered by the message
10839 loader is undefined/meaningless. Should use
10840 dbus_connection_get_dispatch_state().
10841 (dbus_connection_dispatch): rename from
10842 dbus_connection_dispatch_message
10844 2003-03-16 Havoc Pennington <hp@pobox.com>
10846 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10849 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10851 * dbus/dbus-connection.c:
10852 (dbus_connection_send_with_reply_and_block):
10853 Decrease connection->n_incoming when removing an entry
10855 * dbus/dbus-dict.c: (dbus_dict_entry_free),
10856 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10857 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10858 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10859 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10860 (dbus_dict_get_byte_array):
10861 Handle NULL arrays and strings. Also add support for byte arrays.
10863 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10864 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10865 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10866 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10867 (_dbus_demarshal_dict), (demarshal_and_validate_len),
10868 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10869 * dbus/dbus-marshal.h:
10870 Add support for marshalling and demarshalling empty arrays and strings.
10872 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10873 (dbus_message_append_string_array),
10874 (dbus_message_iter_get_boolean),
10875 (dbus_message_iter_get_boolean_array),
10876 (dbus_message_iter_get_int32_array),
10877 (dbus_message_iter_get_uint32_array),
10878 (dbus_message_iter_get_double_array),
10879 (dbus_message_iter_get_byte_array),
10880 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10881 (check_message_handling):
10882 Add support for getting empty arrays and dicts.
10884 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10885 Don't do any validation at all for now, that's better than just checking
10888 * test/data/valid-messages/emptiness.message:
10889 New test message with lots of empty arrays.
10891 2003-03-16 Havoc Pennington <hp@pobox.com>
10893 * dbus/dbus-connection.c
10894 (_dbus_connection_queue_received_message_link): new function that
10895 can't fail due to OOM
10897 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10898 new function pops a message together with a list link
10901 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10902 message queuing functions to avoid needing to alloc memory
10904 2003-03-16 Havoc Pennington <hp@pobox.com>
10906 Oops - test code was only testing failure of around 30 of the
10907 mallocs in the test path, but it turns out there are 500+
10908 mallocs. I believe this was due to misguided linking setup such
10909 that there was one copy of dbus_malloc etc. in the daemon and one
10910 in the shared lib, and only daemon mallocs were tested. In any
10911 case, the test case now tests all 500+ mallocs, and doesn't pass
10912 yet, though there are lots of fixes in this patch.
10914 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10915 this so that it doesn't need to allocate memory, since it
10916 has no way of indicating failure due to OOM (and would be
10917 annoying if it did).
10919 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10921 * bus/Makefile.am: rearrange to create two self-contained
10922 libraries, to avoid having libraries with overlapping symbols.
10923 that was resulting in weirdness, e.g. I'm pretty sure there
10924 were two copies of global static variables.
10926 * dbus/dbus-internals.c: move the malloc debug stuff to
10929 * dbus/dbus-list.c (free_link): free list mempool if it becomes
10932 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10934 * dbus/dbus-address.c (dbus_parse_address): free list nodes
10937 * bus/dispatch.c (bus_dispatch_add_connection): free
10938 message_handler_slot when no longer using it, so
10939 memory leak checkers are happy for the test suite.
10941 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10943 * bus/bus.c (new_connection_callback): disconnect in here if
10944 bus_connections_setup_connection fails.
10946 * bus/connection.c (bus_connections_unref): fix to free the
10948 (bus_connections_setup_connection): if this fails, don't
10949 disconnect the connection, just be sure there are no side
10952 * dbus/dbus-string.c (undo_alignment): unbreak this
10954 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10956 (_dbus_auth_new): fix the order in which we free strings
10959 * bus/connection.c (bus_connection_disconnected): fix to
10960 not send ServiceDeleted multiple times in case of memory
10963 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10964 get the base service name
10965 (dbus_bus_register_client): don't return base service name,
10966 instead store it on the DBusConnection and have an accessor
10968 (dbus_bus_register_client): rename dbus_bus_register()
10970 * bus/dispatch.c (check_hello_message): verify that other
10971 connections on the bus also got the correct results, not
10972 just the one sending hello
10974 2003-03-15 Havoc Pennington <hp@pobox.com>
10976 Make it pass the Hello handling test including all OOM codepaths.
10977 Now to do other messages...
10979 * bus/services.c (bus_service_remove_owner): fix crash when
10980 removing owner from an empty list of owners
10981 (bus_registry_ensure): don't leave service in the list of
10982 a connection's owned services if we fail to put the service
10985 * bus/connection.c (bus_connection_preallocate_oom_error): set
10986 error flag on the OOM error.
10988 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10989 handle _dbus_transport_set_connection failure
10991 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10992 to create watches up front and simply enable/disable them as
10994 (unix_connection_set): this can now fail on OOM
10996 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10997 of enabling/disabling a watch or timeout.
10999 * bus/loop.c (bus_loop_iterate): don't touch disabled
11002 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11004 2003-03-15 Havoc Pennington <hp@pobox.com>
11006 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11007 write useful test code, after all that futzing around ;-)
11009 Test does not yet pass because we can't handle OOM in
11010 _dbus_transport_messages_pending (basically,
11011 dbus_connection_preallocate_send() does not prealloc the write
11012 watch). To fix this, I think we need to add new stuff to
11013 set_watch_functions, namely a SetEnabled function so we can alloc
11014 the watch earlier, then enable it later.
11016 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11017 dbus-memory.c to the convenience lib
11019 * bus/test.c: rename some static functions to keep them clearly
11020 distinct from stuff in connection.c. Handle client disconnection.
11022 2003-03-14 Havoc Pennington <hp@pobox.com>
11024 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11025 transport, tests more of the real codepath. Set up clients
11026 with bus_setup_debug_client.
11028 * bus/test.c (bus_setup_debug_client): function to set up debug
11029 "clients" on the main loop
11031 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11034 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11037 * dbus/dbus-server-debug.c: support a debug server based on pipes
11039 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11040 (_dbus_close): new function
11042 * configure.in: check for socketpair
11044 2003-03-14 Havoc Pennington <hp@redhat.com>
11046 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11049 * dbus/dbus-transport-debug.c: rework this a good bit to be
11050 less complicated. hopefully still works.
11052 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11055 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11058 * dbus/dbus-message.c (dbus_message_copy): rename from
11059 dbus_message_new_from_message, fix it up to copy
11060 all the message fields, add test case
11062 * bus/dispatch.c (bus_dispatch_test): add some more test code,
11063 not quite passing yet
11065 2003-03-14 Havoc Pennington <hp@pobox.com>
11067 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11068 until no work remains" in test code. (the large diff here
11069 is just code movement, no actual changes)
11071 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11072 1, no point waiting around for test code.
11073 (_dbus_server_debug_accept_transport): unref the timeout
11074 after adding it (right?)
11076 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11078 2003-03-13 Havoc Pennington <hp@redhat.com>
11080 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11083 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11086 * dbus/dbus-connection.h: Make AddWatchFunction and
11087 AddTimeoutFunction return a bool so they can fail on out-of-memory
11089 * bus/bus.c (bus_context_new): set up timeout handlers
11091 * bus/connection.c (bus_connections_setup_connection): set up
11094 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11097 * bus/bus.c (bus_context_new): adapt to changes
11099 * bus/connection.c: adapt to changes
11101 * test/watch.c: adapt to DBusWatch changes
11103 * bus/dispatch.c (bus_dispatch_test): started adding this but
11106 2003-03-14 Anders Carlsson <andersca@codefactory.se>
11108 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11110 2003-03-13 Havoc Pennington <hp@pobox.com>
11112 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11113 set up a test framework as for the library
11115 2003-03-12 Havoc Pennington <hp@pobox.com>
11117 Throughout: purge global variables, introduce BusActivation,
11118 BusConnections, BusRegistry, etc. objects instead.
11120 * bus/bus.h, bus/bus.c: introduce BusContext as a global
11123 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11124 going to redo this a bit differently I think
11126 2003-03-12 Havoc Pennington <hp@redhat.com>
11128 Mega-patch that gets the message bus daemon initially handling
11129 out-of-memory. Work still needed. Also lots of random
11130 moving stuff to DBusError instead of ResultCode.
11132 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11134 * dbus/dbus-connection.c
11135 (dbus_connection_send_with_reply_and_block): use DBusError
11137 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11140 * dbus/dbus-connection.c (dbus_connection_send): drop the result
11141 code here, as the only failure possible is OOM.
11143 * bus/connection.c (bus_connection_disconnect):
11144 rename bus_connection_disconnected as it's a notification only
11146 * bus/driver.c (bus_driver_handle_acquire_service): don't free
11147 "name" on get_args failure, should be done by get_args;
11148 don't disconnect client for bad args, just return an error.
11149 (bus_driver_handle_service_exists): ditto
11151 * bus/services.c (bus_services_list): NULL-terminate returned array
11153 * bus/driver.c (bus_driver_send_service_lost)
11154 (bus_driver_send_service_acquired): send messages from driver to a
11155 specific client to the client's unique name, not to the broadcast
11158 * dbus/dbus-message.c (decode_header_data): reject messages that
11159 contain no name field
11160 (_dbus_message_get_client_serial): rename to
11161 dbus_message_get_serial and make public
11162 (_dbus_message_set_serial): rename from set_client_serial
11163 (_dbus_message_set_reply_serial): make public
11164 (_dbus_message_get_reply_serial): make public
11166 * bus/connection.c (bus_connection_foreach): allow stopping
11167 iteration by returning FALSE from foreach function.
11169 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11170 (dbus_connection_free_preallocated_send)
11171 (dbus_connection_preallocate_send): new API for sending a message
11172 without possibility of malloc failure.
11173 (dbus_connection_send_message): rename to just
11174 dbus_connection_send (and same for whole function family)
11176 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11178 * dbus/dbus-sysdeps.c (_dbus_exit): new function
11180 * bus/activation.c: handle/return errors
11182 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11184 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11185 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11186 (_dbus_result_from_errno): move to this file
11188 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11190 * dbus/dbus-marshal.c:
11191 (_dbus_marshal_set_string):
11192 Take a length argument so we can marshal the correct string
11195 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11196 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11197 (_dbus_marshal_test):
11198 * dbus/dbus-marshal.h:
11199 Add support for marshalling and demarshalling dicts.
11201 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11202 Add support for TYPE DICT.
11204 * dbus/dbus-message.c: (set_string_field):
11205 Adjust header padding.
11207 (dbus_message_append_args_valist), (dbus_message_append_dict),
11208 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11209 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11210 (check_message_handling), (check_have_valid_message):
11211 * dbus/dbus-message.h:
11212 Add functions for setting and getting dicts.
11214 * dbus/dbus-protocol.h:
11215 Add DBUS_TYPE_DICT.
11220 * doc/dbus-specification.sgml:
11221 Add information about how dicts are marshalled.
11223 * test/data/invalid-messages/dict-with-nil-value.message:
11224 * test/data/invalid-messages/too-short-dict.message:
11225 * test/data/valid-messages/dict-simple.message:
11226 * test/data/valid-messages/dict.message:
11227 Add sample messages containing dicts.
11229 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11231 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11233 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11235 * dbus/Makefile.am:
11236 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11237 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11238 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11239 (dbus_dict_set_double), (dbus_dict_set_string),
11240 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11241 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11242 (dbus_dict_set_string_array), (_dbus_dict_test):
11243 * dbus/dbus-dict.h:
11244 Fix according to comments from Havoc.
11246 2003-03-06 Michael Meeks <michael@server.home>
11248 * configure.in: if we don't have kde-config, disable have_qt.
11250 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11252 * dbus/Makefile.am:
11255 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11256 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11257 (dbus_dict_remove), (dbus_dict_get_value_type),
11258 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11259 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11260 (dbus_dict_put_double), (dbus_dict_put_string),
11261 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11262 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11263 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11264 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11265 (dbus_dict_get_double), (dbus_dict_get_string),
11266 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11267 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11268 (dbus_dict_get_string_array), (_dbus_dict_test):
11269 * dbus/dbus-dict.h:
11270 Add DBusDict implementation
11272 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11273 * dbus/dbus-test.h:
11274 Add _dbus_dict_test
11276 2003-03-04 Havoc Pennington <hp@pobox.com>
11278 * test/data/auth/*: adapt to changes
11280 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11281 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11284 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11285 more stuff from being in a context name, to make the protocol
11286 simpler to deal with
11288 * dbus/dbus-errors.c (dbus_error_has_name): new function
11289 (dbus_error_is_set): new function
11291 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11292 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11294 * dbus/dbus-connection.c (dbus_connection_flush): also read
11295 messages during a flush operation
11297 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11299 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11301 * configure.in: Check for gethostbyname on Solaris.
11303 * dbus/dbus-transport.c: (_dbus_transport_open):
11304 Remove duplicate "tcp" entry.
11306 * doc/dbus-specification.sgml:
11307 Clarify some things.
11309 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11311 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11312 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11313 (_dbus_keyring_test):
11314 * dbus/dbus-md5.c: (_dbus_md5_compute):
11315 * dbus/dbus-sha.c: (_dbus_sha_compute):
11318 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11320 * README: Add some things.
11322 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11324 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11325 after case DBUS_TYPE_BOOELAN.
11327 2003-03-02 Havoc Pennington <hp@pobox.com>
11329 * test/break-loader.c (randomly_set_extreme_ints): add test that
11330 sets really huge and small integers
11332 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11333 that length of boolean array fits in the string, and that
11334 string has room for boolean value in single-bool case.
11336 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11337 optional value to "ALIGN" command which is what to fill the
11340 * test/data/valid-messages/no-padding.message: add regression
11341 test for the message padding problem
11343 2003-03-02 Havoc Pennington <hp@pobox.com>
11345 * dbus/dbus-message.c (decode_header_data): fix to always init
11346 message_padding, from Benjamin Dauvergne
11348 2003-03-02 Havoc Pennington <hp@pobox.com>
11350 * configure.in: 0.5
11354 2003-03-01 Joe Shaw <joe@assbarn.com>
11356 * configure.in: Check for "struct cmsgcred" and try to access its
11357 members for BSD-like unices.
11359 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11360 _dbus_read_credentials_unix_socket().
11361 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11362 read() for reading the credential byte off the unix socket. Use
11363 struct cmsgcred on systems that support it.
11365 2003-02-27 Alexander Larsson <alexl@redhat.com>
11367 * glib/Makefile.am:
11369 Make gthreads-2.0 dependency optional. Don't build thread test if
11372 2003-02-27 Havoc Pennington <hp@pobox.com>
11374 * dbus/dbus-connection.c
11375 (dbus_connection_send_message_with_reply_and_block): fix doh!
11376 doh! doh! bug that resulted in never removing a reply from the
11377 queue, no wonder we called get_reply_serial so much ;-)
11379 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11380 and client serial instead of demarshaling them every time
11382 2003-02-27 Havoc Pennington <hp@pobox.com>
11384 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11385 more inlined, using dbus-string-private.h, speeds things up
11388 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11389 when freeing the string
11390 (_dbus_string_steal_data): fix for align offset
11391 (undo_alignment): new function
11393 2003-02-26 Havoc Pennington <hp@redhat.com>
11395 All kinds of audit fixes from Owen, plus initial attempt to
11396 handle unaligned memory returned from malloc.
11398 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11399 leave room for align_offset and nul byte
11400 (fixup_alignment): function to track an align_offset and
11401 ensure real->str is aligned
11402 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11403 to allow a nul byte plus align offset
11404 (_dbus_string_lock): fix overflow issue
11405 (_dbus_string_init_const_len): add assertions on sanity of len,
11406 assign allocated to be ALLOCATION_PADDING larger than len
11407 (set_length): fixup the overflow handling
11408 (_dbus_string_get_data_len): fix overflow in assertion
11409 (open_gap): detect overflow in size of gap to be opened
11410 (_dbus_string_lengthen): add overflow check
11411 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11412 (_dbus_string_append): add overflow check
11413 (_dbus_string_append_unichar): overflow
11414 (_dbus_string_delete): fix overflow in assertion
11415 (_dbus_string_copy_len): overflow in assertion
11416 (_dbus_string_replace_len): overflows in assertions
11417 (_dbus_string_find): change to implement in terms of
11418 _dbus_string_find_to
11419 (_dbus_string_find_to): assorted fixage
11420 (_dbus_string_equal_c_str): assert c_str != NULL,
11421 fix logic so the function works
11422 (_dbus_string_ends_with_c_str): fix overflow thingy
11423 (_dbus_string_base64_encode): overflow fix
11424 (_dbus_string_validate_ascii): overflow
11425 (_dbus_string_validate_nul): overflow
11427 2003-02-26 Havoc Pennington <hp@redhat.com>
11429 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11431 2003-02-26 Alexander Larsson <alexl@redhat.com>
11434 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11436 * dbus/dbus-connection.c:
11437 * dbus/dbus-connection.h:
11438 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11439 Add dbus_connection_set_wakeup_main_function and use it when queueing
11440 incoming and outgoing messages.
11443 * dbus/dbus-dataslot.c:
11444 Threadsafe usage of DBusDataSlotAllocator
11446 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11449 * dbus/dbus-server-unix.c:
11452 * glib/dbus-gmain.c:
11453 Implement the new wakeup functions for glib.
11455 * glib/Makefile.am:
11456 * glib/test-thread-client.c:
11457 * glib/test-thread-server.c:
11458 * glib/test-thread.h:
11459 Initial cut at some thread test code. Not really done yet.
11461 2003-02-26 Havoc Pennington <hp@pobox.com>
11463 * dbus/dbus-connection.c
11464 (dbus_connection_send_message_with_reply_and_block): fix crash
11465 where we ref'd the outgoing message instead of the returned reply
11467 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11468 at the end of this function, so if we didn't need to read for
11469 authentication, we reinstall it for receiving messages
11471 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11472 a NULL sender for peer-to-peer case
11474 * dbus/dbus-transport-unix.c (check_read_watch): handle
11475 !authenticated case correctly
11477 * glib/dbus-gmain.c: add support for DBusServer
11479 * dbus/dbus-server.c: add data slot support
11481 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11482 return values and handle errors
11484 * dbus/dbus-dataslot.c: factor out the data slot stuff from
11487 * Doxyfile.in (INPUT): add glib subdir
11489 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11490 setup_with_g_main instead of hookup_with_g_main; write docs
11492 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11494 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11495 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11496 * dbus/dbus-message.c: (dbus_message_append_boolean),
11497 (dbus_message_append_boolean_array),
11498 (dbus_message_get_args_valist), (_dbus_message_test):
11499 * dbus/dbus-message.h:
11500 * doc/dbus-specification.sgml:
11501 Various fixes as pointed out by Havoc.
11503 * test/data/invalid-messages/bad-boolean-array.message:
11504 * test/data/invalid-messages/bad-boolean.message:
11505 Add invalid boolean value test cases.
11507 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11509 * dbus/dbus-internals.c: (_dbus_type_to_string):
11510 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11511 (_dbus_marshal_validate_arg):
11512 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11513 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11514 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11515 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11516 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11517 (dbus_message_iter_get_double),
11518 (dbus_message_iter_get_boolean_array), (message_iter_test):
11519 * dbus/dbus-message.h:
11520 * dbus/dbus-protocol.h:
11521 * doc/dbus-specification.sgml:
11522 * test/data/valid-messages/lots-of-arguments.message:
11523 Add support for boolean and boolean array types.
11525 2003-02-23 Havoc Pennington <hp@pobox.com>
11527 * dbus/dbus-keyring.c: finish most of this implementation and
11530 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11531 these barf if the error isn't cleared to NULL
11533 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11534 (_dbus_create_directory): new function
11536 * dbus/dbus-errors.c (dbus_set_error): fix warning
11538 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11539 (_dbus_string_hex_decode): new function
11540 (test_hex_roundtrip): test code
11542 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11544 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11546 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11547 the save-to-temp/rename trick to atomically write the new file
11548 (_dbus_string_parse_uint): new function
11550 2003-02-22 Havoc Pennington <hp@pobox.com>
11552 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11554 2003-02-22 Havoc Pennington <hp@pobox.com>
11556 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11557 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11559 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11561 * dbus/test/data/sha-1: add US government test suite for SHA-1
11563 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11565 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11566 Make string arrays NULL-terminated.
11568 * dbus/dbus-memory.c: (dbus_free_string_array):
11569 * dbus/dbus-memory.h:
11570 New function for freeing NULL-terminated string arrays.
11572 * dbus/dbus-message-builder.c: (append_quoted_string),
11573 (_dbus_message_data_load):
11574 Add support for array types.
11576 * dbus/dbus-message.c: (check_message_handling):
11577 Add more types as test cases.
11579 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11580 (_dbus_string_parse_double):
11581 Add the start offset to the end offset.
11583 * test/data/valid-messages/lots-of-arguments.message:
11584 New test message with lots of arguments.
11586 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11588 * dbus/dbus-message.c: (dbus_message_append_nil),
11589 (dbus_message_append_int32), (dbus_message_append_uint32),
11590 (dbus_message_append_double), (dbus_message_append_string),
11591 (dbus_message_append_int32_array),
11592 (dbus_message_append_uint32_array),
11593 (dbus_message_append_double_array),
11594 (dbus_message_append_byte_array),
11595 (dbus_message_append_string_array):
11596 Fix all out-of-memory handling in these functions.
11598 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11600 * dbus/dbus-message.c: (dbus_message_append_nil):
11603 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11605 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11606 (dbus_message_append_nil), (dbus_message_append_int32_array),
11607 (dbus_message_append_uint32_array),
11608 (dbus_message_append_double_array),
11609 (dbus_message_append_byte_array),
11610 (dbus_message_append_string_array), (dbus_message_get_args_valist),
11611 (dbus_message_iter_get_int32_array),
11612 (dbus_message_iter_get_uint32_array),
11613 (dbus_message_iter_get_double_array),
11614 (dbus_message_iter_get_byte_array),
11615 (dbus_message_iter_get_string_array):
11617 * dbus/dbus-message.h:
11618 Add functions for appending and getting arrays.
11620 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11622 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11623 element size at least 8 bytes, fixes mempool tests on
11626 2003-02-20 Alexander Larsson <alexl@redhat.com>
11628 * dbus/dbus-transport-unix.c (unix_do_iteration):
11629 Unlock the connection mutex during a blocking select call.
11630 Add todo about how we need a way to wake up the select.
11632 * dbus/dbus-connection-internal.h:
11633 * dbus/dbus-connection.c:
11634 Add _dbus_connection_lock and _dbus_connection_unlock.
11636 2003-02-19 Havoc Pennington <hp@pobox.com>
11638 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11639 Doxyfile.in, not Doxyfile
11641 * dbus/dbus-keyring.c: do some hacking on this
11643 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11645 * dbus/dbus-errors.c (dbus_set_error_const): do not call
11647 (dbus_set_error): remove dbus_error_init, check for message ==
11648 NULL *before* we sprintf into it, and add @todo about including
11649 system headers in this file
11651 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11653 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11655 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11656 get various bits of user information based on either username
11658 (_dbus_homedir_from_username): new function
11660 2003-02-19 Anders Carlsson <andersca@codefactory.se>
11663 Add check for nonposix getpwnam_r
11665 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11666 Align the pool element size to a sizeof (void *) boundary.
11668 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11669 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11670 General Solaris fixes.
11672 * test/data/valid-messages/simplest-manual.message:
11673 Explicitly state that we want little-endian packing.
11675 2003-02-19 Mikael Hallendal <micke@codefactory.se>
11677 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11679 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11680 Added to create a transport connecting using a tcp/ip socket.
11682 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11683 to a tcp socket at given host and port.
11684 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11687 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11689 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11690 Added to create a server listening on a TCP/IP socket.
11692 2003-02-19 Havoc Pennington <hp@pobox.com>
11694 Throughout: mop up all the Doxygen warnings and undocumented
11697 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11698 to search any paths.
11700 * dbus/dbus-threads.c: move global mutex initializers to
11701 dbus-internals.h, multiple prototypes was confusing doxygen
11702 besides being kind of ugly
11704 * Doxyfile (PREDEFINED): have Doxygen define
11705 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11706 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11707 (do not abuse the feature! it's for stuff like the autogenerated
11708 macros in dbus-md5.c, not just for things you don't feel like
11711 2003-02-18 Havoc Pennington <hp@pobox.com>
11713 * dbus/dbus-string.c (_dbus_string_zero): new function
11715 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11716 wrap it in some dbus-friendly API
11718 * dbus/dbus-types.h: add 16-bit types
11720 2003-02-18 Joe Shaw <joe@assbarn.com>
11722 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11723 credentials from our currently running process.
11724 (get_word): Fix a buglet where we were copying the entire length
11725 instead of relative to our position.
11727 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11728 keys on the stack... it's 640k of data.
11730 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11731 read the credentials byte off the socket, even if we don't have
11733 (_dbus_poll): Implement poll() using select() for systems which
11736 * glib/test-dbus-glib.c (main): Print out an error if no
11737 parameters are given.
11739 * test/data/auth/fallback.auth-script: Added. Tests that a client
11740 can fallback to a secondary auth mechanism if the first fails.
11742 2003-02-18 Havoc Pennington <hp@pobox.com>
11744 * AUTHORS: add Alex
11746 2003-02-17 Havoc Pennington <hp@pobox.com>
11748 * doc/dbus-specification.sgml: lots of cosmetic
11749 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11750 env variable to DBUS_BUS_ADDRESS, s/client/application/,
11751 s/server/bus/ (except in authentication section). Add a section
11752 "Message Bus Message Routing"
11754 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
11760 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11762 * doc/dbus-specification.sgml:
11763 Specification updates.
11765 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11767 * bus/activation.c: (bus_activation_init), (child_setup),
11768 (bus_activation_activate_service):
11769 * bus/activation.h:
11770 * bus/main.c: (main):
11771 Set DBUS_ADDRESS environment variable.
11773 * dbus/dbus-errors.c: (dbus_set_error):
11774 Don't use va_copy since that's a C99 feature.
11776 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11777 (_dbus_spawn_async):
11778 * dbus/dbus-sysdeps.h:
11779 Add child_setup_func to _dbus_spawn_async.
11781 * doc/dbus-specification.sgml:
11782 Update specification.
11784 * test/spawn-test.c: (setup_func), (main):
11787 2003-02-17 Alexander Larsson <alexl@redhat.com>
11789 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11792 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11796 * doc/dbus-test-plan.sgml:
11797 Add test plan document.
11799 * test/Makefile.am:
11802 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11804 * dbus/dbus-message.c: (decode_header_data),
11805 (_dbus_message_loader_return_buffer):
11806 Set the header padding amount when loading a message.
11808 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11810 * bus/dispatch.c: (send_one_message):
11811 Only send broadcast messages to registered connections.
11813 * dbus/dbus-message.c: (dbus_message_name_is):
11814 * dbus/dbus-message.h:
11815 New convenience function.
11817 * dbus/dbus-transport-debug.c: (do_reading):
11818 Only dispatch one message per run.
11820 * test/Makefile.am:
11821 * test/bus-test.c: (new_connection_callback), (die),
11822 (test_hello_client1_handler), (test_hello_client2_handler),
11823 (test_hello_replies), (main):
11825 * test/bus-test-loop.[ch]:
11828 2003-02-16 Havoc Pennington <hp@pobox.com>
11830 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11831 backward conditional
11833 2003-02-16 Alexander Larsson <alexl@redhat.com>
11835 * dbus/dbus-connection.c:
11836 Implement sent_message_with_reply. (with_reply_and block is still
11838 Made dispatch_message not lose message if OOM.
11840 * dbus/dbus-errors.h:
11841 Add NoReply error (for reply timeouts).
11843 2003-02-16 Alexander Larsson <alexl@redhat.com>
11845 * dbus/dbus-hash.c (_dbus_hash_table_unref):
11846 Actually free keys and values when destroying hashtable.
11848 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11850 * dbus/dbus-auth.c: (client_try_next_mechanism):
11853 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11854 Return TRUE if there's no thread implementation around.
11856 * glib/dbus-gmain.c: (free_source),
11857 (dbus_connection_hookup_with_g_main):
11858 Make sure to remove the GSource when the connection is finalized.
11860 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11862 * bus/dispatch.c: (bus_dispatch_message_handler):
11863 * dbus/dbus-errors.h:
11864 Return an error if someone tries to send a message to a service
11865 that doesn't exist.
11867 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11869 * bus/activation.c: (load_directory), (bus_activation_init),
11870 (bus_activation_activate_service):
11871 * bus/activation.h:
11873 (bus_driver_handle_activate_service), (bus_driver_handle_message):
11874 More work on the activation handling.
11876 * dbus/dbus-errors.h:
11877 Add some error messages
11879 * dbus/dbus-message.c: (dbus_message_new_error_reply):
11880 * dbus/dbus-message.h:
11881 New function that creates an error message.
11883 * dbus/dbus-protocol.h:
11884 Add ACTIVATE_SERVER message.
11886 * dbus/dbus-server-unix.c: (unix_handle_watch),
11887 (_dbus_server_new_for_domain_socket):
11888 Call _dbus_fd_set_close_on_exec.
11890 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11891 (_dbus_spawn_async), (_dbus_disable_sigpipe),
11892 (_dbus_fd_set_close_on_exec):
11893 * dbus/dbus-sysdeps.h:
11894 Add _dbus_fd_set_close_on exec function. Also add function that checks
11895 that all open fds are set to close-on-exec and warns otherwise.
11897 * dbus/dbus-transport-unix.c:
11898 (_dbus_transport_new_for_domain_socket):
11899 Call _dbus_fd_set_close_on_exec.
11901 2003-02-16 Havoc Pennington <hp@pobox.com>
11903 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11904 allow people to avoid setting SIGPIPE to SIG_IGN
11905 (_dbus_connection_new_for_transport): disable SIGPIPE unless
11906 we've been asked not to
11908 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11910 * dbus/dbus-list.c: (_dbus_list_append_link),
11911 (_dbus_list_prepend_link):
11912 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11916 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11919 * bus/activation.c: (bus_activation_entry_free),
11920 (add_desktop_file_entry), (load_directory), (bus_activation_init):
11921 * bus/activation.h:
11922 * bus/main.c: (main):
11923 Add simple activation support, doesn't work yet though.
11925 2003-02-15 Zack Rusin <zack@kde.org>
11927 * qt/dbus-qthread.cpp: small casting fix
11929 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11931 * dbus/dbus-errors.c: (dbus_set_error):
11932 * dbus/dbus-errors.h:
11933 Add a few errors and make dbus_set_error void.
11935 * dbus/dbus-sysdeps.c:
11936 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11937 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11938 * dbus/dbus-sysdeps.h:
11939 Add _dbus_spawn_async.
11941 * test/spawn-test.c: (main):
11942 Test for _dbus_spawn_async.
11944 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11946 * dbus/dbus-internals.h:
11947 Fix build without tests.
11949 * dbus/dbus-list.c: (alloc_link):
11950 Fix a segfault when a malloc fails.
11952 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11953 (dbus_malloc0), (dbus_realloc):
11954 Add support for malloc debugging.
11956 2003-02-15 Alexander Larsson <alexl@redhat.com>
11958 * dbus/dbus-threads.c:
11959 * dbus/dbus-threads.h:
11960 Add condvars. Remove static mutext from API.
11961 Implement static mutexes by initializing them from threads_init.
11963 * glib/dbus-gthread.c:
11964 * qt/dbus-qthread.cpp:
11965 Update with the thread api changes.
11968 * dbus/dbus-list.c:
11969 * dbus/dbus-list.h:
11970 Turn StaticMutex into normal mutex + init function.
11971 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11972 _dbus_list_append_link, _dbus_list_prepend_link
11975 * dbus/dbus-sysdeps.c:
11976 * dbus/dbus-sysdeps.h:
11977 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11978 _dbus_atomic_dec. Only slow fallback implementation at the moment.
11980 * dbus/dbus-protocol.h:
11981 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11983 * dbus/dbus-message.c:
11984 Make ref/unref atomic.
11987 * dbus/dbus-connection-internal.h:
11988 * dbus/dbus-connection.c:
11989 * dbus/dbus-connection.h:
11991 Change _peek to _borrow,_return & _steal_borrowed.
11992 Change disconnect callback to event.
11993 Make dbus_connection_dispatch_messages reentrant.
11995 * dbus/dbus-transport.c:
11996 Don't ref the connection on calls to the transport
11999 * dbus/dbus-message-handler.c:
12002 * glib/dbus-gmain.c:
12003 Don't use peek_message anymore
12005 * test/Makefile.am:
12006 * test/debug-thread.c:
12007 * test/debug-thread.h:
12008 Simple thread implementation that asserts() on deadlocks in
12009 single-threaded code.
12012 (main) Call debug_threads_init.
12015 Use disconnect message instead of disconnect callback.
12017 * bus/connection.c:
12018 * bus/connection.h:
12019 Don't call dbus_connection_set_disconnect_function. Instead export
12020 bus_connection_disconnect.
12023 Call bus_connection_disconnect when we get a disconnected message.
12025 2003-02-15 Havoc Pennington <hp@pobox.com>
12027 * dbus/dbus-message.c (dbus_message_new): fool around with the
12030 2003-02-14 Havoc Pennington <hp@pobox.com>
12032 * dbus/dbus-mempool.c: fail if the debug functions so indicate
12034 * dbus/dbus-memory.c: fail if the debug functions indicate we
12037 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12038 (_dbus_decrement_fail_alloc_counter): debug functions to
12039 simulate memory allocation failures
12041 2003-02-14 Havoc Pennington <hp@pobox.com>
12043 * dbus/dbus-errors.h (struct DBusError): add a word of padding
12046 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12048 * bus/driver.c: (bus_driver_handle_hello):
12050 * bus/services.c: (bus_service_lookup):
12051 Reorder message sending so we get a more sane order.
12053 * test/bus-test.c: (message_handler):
12056 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12058 * bus/driver.c: (bus_driver_send_service_deleted),
12059 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12060 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12061 (bus_driver_send_welcome_message),
12062 (bus_driver_handle_list_services),
12063 (bus_driver_handle_acquire_service),
12064 (bus_driver_handle_service_exists):
12065 * dbus/dbus-bus.c: (dbus_bus_register_client),
12066 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12067 * dbus/dbus-errors.c: (dbus_result_to_string):
12068 * dbus/dbus-errors.h:
12069 * dbus/dbus-message.c: (dbus_message_append_args),
12070 (dbus_message_append_args_valist), (dbus_message_get_args),
12071 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12072 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12073 (dbus_message_iter_get_byte_array),
12074 (dbus_message_iter_get_string_array), (message_iter_test),
12075 (check_message_handling), (_dbus_message_test):
12076 * dbus/dbus-message.h:
12077 * test/bus-test.c: (main):
12078 Change fields to arguments in messages, so that they won't be
12079 confused with header fields.
12081 * glib/test-dbus-glib.c: (main):
12082 Remove append_fields from hello message.
12084 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12086 * dbus/dbus-errors.c:
12087 * dbus/dbus-message.c:
12088 * dbus/dbus-string.c:
12089 Documentation fixes.
12091 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12093 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12095 Implement support for timeouts in dbus-glib.
12097 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12099 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12100 * dbus/dbus-message.c: (process_test_subdir):
12101 * test/break-loader.c: (find_breaks_based_on):
12102 Plug some memory leaks.
12104 2003-02-13 Richard Hult <rhult@codefactory.se>
12106 * bus/main.c: Fix build.
12108 * dbus/dbus-errors.h:
12109 * dbus/dbus-errors.c: Fix copyright for Anders.
12111 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12116 * bus/connection.c: (bus_connection_foreach):
12119 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12120 (unescape_string), (new_section), (parse_section_start),
12121 (parse_key_value), (report_error), (bus_desktop_file_load),
12122 (bus_desktop_file_get_string):
12123 * bus/desktop-file.h:
12124 Use DBusError for error reporting.
12126 * bus/dispatch.c: (send_one_message),
12127 (bus_dispatch_message_handler):
12128 * bus/driver.c: (bus_driver_send_service_deleted),
12129 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12130 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12131 (bus_driver_send_welcome_message),
12132 (bus_driver_handle_list_services),
12133 (bus_driver_handle_acquire_service),
12134 (bus_driver_handle_service_exists):
12135 * bus/loop.c: (bus_loop_run):
12137 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12139 * bus/utils.c: (bus_wait_for_memory):
12141 New files with general utility functions.
12143 * dbus/dbus-internals.h:
12144 Remove _DBUS_HANDLE_OOM.
12146 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12148 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12149 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12150 * dbus/dbus-errors.h:
12151 Add DBusError structure.
12153 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12155 * test/data/valid-messages/standard-acquire-service.message:
12156 * test/data/valid-messages/standard-hello.message:
12157 * test/data/valid-messages/standard-list-services.message:
12158 * test/data/valid-messages/standard-service-exists.message:
12159 Add some standard messages.
12161 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12163 * bus/driver.c: (bus_driver_send_welcome_message),
12164 (bus_driver_handle_list_services),
12165 (bus_driver_handle_acquire_service),
12166 (bus_driver_handle_service_exists), (bus_driver_handle_message):
12167 Update for API changes in libdbus.
12169 * dbus/dbus-message.c: (dbus_message_new_reply):
12170 * dbus/dbus-message.h:
12171 Remove the name argument. The spec states that replies shouldn't
12174 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12176 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12177 (report_error), (bus_desktop_file_load), (lookup_section),
12178 (lookup_line), (bus_desktop_file_get_raw),
12179 (bus_desktop_file_get_string):
12180 * bus/desktop-file.h:
12181 Some fixes, and new functions for getting a key value from a section.
12183 2003-02-13 Havoc Pennington <hp@pobox.com>
12185 * test/data/auth/fail-after-n-attempts.auth-script: new test
12187 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12190 2003-02-13 Havoc Pennington <hp@pobox.com>
12192 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12193 dbus_credentials_match were backward
12195 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12196 NO_CREDENTIALS and ROOT_CREDENTIALS
12198 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12199 into here. Never process more commands after we've reached an
12200 end state; store further data as unused bytes.
12202 * test/data/auth/*: add more auth tests
12204 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12205 command to match exact string and EXPECT_UNUSED to match unused
12208 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12210 2003-02-12 Havoc Pennington <hp@pobox.com>
12212 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12213 \r off of popped lines
12215 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12218 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12221 2003-02-12 Havoc Pennington <hp@pobox.com>
12223 * dbus/Makefile.am: remove break-loader from the build, since it
12226 * configure.in: add --enable-gcov to turn on coverage profiling
12227 flags and disable optimization
12229 2003-02-10 Havoc Pennington <hp@pobox.com>
12231 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12232 initial cut at test framework for DBusAuth from laptop.
12233 Doesn't quite work yet but it compiles and I need to get
12234 it off the 266mhz laptop. ;-)
12236 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12237 fix a memleak in error case
12239 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12242 * bus/desktop-file.c:
12243 * bus/desktop-file.h:
12244 Add a desktop file parser.
12246 2003-02-11 Zack Rusin <zack@kde.org>
12248 * qt/message.[h|cpp]: sample implementation
12249 of the KDE wrapper for DBusMessage
12251 2003-02-09 Zack Rusin <zack@kde.org>
12253 * test/bus-test.c: make_it_compile
12254 * doc/dbus-specification.sgml: minimal semantic fix
12256 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12262 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12264 * dbus/Makefile.am:
12265 * dbus/dbus-break-loader.c:
12266 * test/Makefile.am:
12267 * test/break-loader.c:
12268 Move dbus-break-loader to test/ and rename it to break-loader.
12270 2003-02-02 Havoc Pennington <hp@pobox.com>
12272 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12273 for code to manage cookies in your home directory
12275 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12277 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12278 to authenticate, then disconnect the client.
12280 2003-02-03 Alexander Larsson <alexl@redhat.com>
12282 * dbus/dbus-message.c (dbus_message_append_fields):
12285 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12287 * doc/dbus-specification.sgml:
12288 Update address format section.
12290 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12292 * test/Makefile.am:
12293 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12294 (message_handler), (new_connection_callback), (loop_quit),
12295 (loop_run), (main):
12298 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12300 * bus/driver.c: (bus_driver_handle_service_exists):
12301 Simplify the code a bit.
12303 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12306 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12309 Add libdbus-daemon.la and link to it.
12311 2003-02-01 James Willcox <jwillcox@gnome.org>
12313 * bus/driver.c: (bus_driver_handle_own_service):
12314 Actually include the service reply code in the message.
12316 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12318 * bus/driver.c: (bus_driver_handle_service_exists):
12319 Don't unref the incoming message.
12321 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12323 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12325 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12327 * dbus/dbus-server.c: (dbus_server_listen):
12328 * dbus/dbus-transport.c: (_dbus_transport_open):
12329 ifdef out the calls to the debug transport and server.
12331 2003-02-02 Alexander Larsson <alexl@redhat.com>
12333 * dbus/dbus-watch.c (dbus_watch_get_flags):
12334 Add note in the docs that ERROR or HANGUP won't be returned
12335 and are assumed always on.
12337 * glib/dbus-gmain.c (add_watch):
12338 Always add IO_ERR | IO_HUP
12340 * dbus/dbus-message.h:
12341 Add semicolon after dbus_message_iter_get_string_array().
12342 Makes qt code build again
12344 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12346 * bus/driver.c: (create_unique_client_name),
12347 (bus_driver_handle_hello):
12348 Don't take a name, just use a numeric id to identify
12351 * dbus/Makefile.am:
12352 * dbus/dbus-bus.c: (dbus_bus_register_client),
12353 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12355 Add new convenience functions for communicating with the bus.
12357 * dbus/dbus-message.h:
12359 * dbus/dbus-protocol.h:
12362 2003-02-01 Alexander Larsson <alexl@redhat.com>
12364 * dbus/dbus-message.c (dbus_message_append_fields):
12365 Add some more doc comments.
12367 2003-02-01 Havoc Pennington <hp@pobox.com>
12369 * dbus/dbus-break-loader.c (randomly_modify_length): change
12370 a 4-byte value in the message as if it were a length
12372 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12373 execute bit on saved files
12375 2003-02-01 Havoc Pennington <hp@pobox.com>
12377 * dbus/dbus-break-loader.c (main): new program to find messages
12378 that break the loader.
12380 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12381 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12383 * dbus/dbus-string.c (_dbus_string_set_byte): new
12385 2003-01-31 Havoc Pennington <hp@pobox.com>
12387 * dbus/dbus-message.c: refactor the test code to be more general,
12388 in preparation for writing a "randomly permute test cases to
12389 try to break the loader" program.
12391 2003-01-31 Havoc Pennington <hp@pobox.com>
12393 * doc/dbus-specification.sgml: work on the specification
12395 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12396 the protocol version of the message.
12398 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12399 no longer specifies that.
12400 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12403 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12404 "break" for DBUS_TYPE_NIL, remove @todo
12406 2003-01-31 Havoc Pennington <hp@pobox.com>
12408 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12409 just set_is_error/get_is_error as this is a commonly-used
12410 function, and write docs.
12412 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12414 * dbus/dbus-address.c: (dbus_address_entry_free):
12415 Free key and value lists.
12417 * dbus/dbus-internals.c: (_dbus_type_to_string):
12418 Add the types we didn't have.
12420 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12421 (_dbus_marshal_validate_arg):
12424 * dbus/dbus-message.c: (dbus_message_set_sender):
12425 Remove todo about being able to set sender to NULL.
12427 (dbus_message_set_is_error_reply),
12428 (dbus_message_get_is_error_reply):
12429 * dbus/dbus-message.h:
12432 * dbus/dbus-protocol.h:
12433 Add error reply flag.
12435 * test/data/valid-messages/opposite-endian.message:
12436 Add NIL type to test.
12438 2003-01-31 Havoc Pennington <hp@pobox.com>
12440 * doc/dbus-specification.sgml: fully specify the header. Add
12441 flags and major protocol version, and change header/body len to
12444 * dbus/dbus-message-builder.c (append_saved_length): append length
12447 * dbus/dbus-message.c (dbus_message_create_header): change header
12448 length and body length to unsigned. Add the new fields from the
12450 (_dbus_message_loader_return_buffer): unsigned header/body len
12452 2003-01-30 Havoc Pennington <hp@pobox.com>
12454 * dbus/dbus-auth.c: rework to use only REJECTED, no
12457 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12458 use REJECTED, suggested by Mark McLoughlin
12460 2003-01-30 Havoc Pennington <hp@pobox.com>
12462 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12463 a better way to report errors here. e.g. "unix address lacks
12464 path" or something. also "no such file" when the path doesn't
12467 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12469 (dbus_parse_address): add @todo about documenting address format,
12470 and allowing , and ; to be escaped
12472 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12474 * dbus/Makefile.am:
12475 Add dbus-address.[ch]
12477 * dbus/dbus-address.c: (dbus_address_entry_free),
12478 (dbus_address_entries_free), (create_entry),
12479 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12480 (dbus_parse_address), (_dbus_address_test):
12481 * dbus/dbus-address.h:
12482 New files for dealing with address parsing.
12484 * dbus/dbus-connection.c:
12485 Document timeout functions.
12487 * dbus/dbus-message.c:
12488 Document dbus_message_new_from_message.
12490 * dbus/dbus-server-debug.c:
12493 * dbus/dbus-server.c: (dbus_server_listen):
12494 Parse address and use correct server implementation.
12496 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12497 * dbus/dbus-string.h:
12498 New function with test.
12500 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12501 * dbus/dbus-test.h:
12504 * dbus/dbus-transport-debug.c:
12507 * dbus/dbus-transport.c: (_dbus_transport_open):
12508 Parse address and use correct transport implementation.
12510 2003-01-30 Havoc Pennington <hp@pobox.com>
12512 * dbus/dbus-message.c: use message->byte_order instead of
12513 DBUS_COMPILER_BYTE_ORDER throughout.
12514 (dbus_message_create_header): pad header to align the
12515 start of the body of the message to 8-byte boundary
12517 * dbus/dbus-marshal.h: make all the demarshalers take const
12518 DBusString arguments.
12520 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12521 validate message args here, so we don't have to do slow validation
12522 later, and so we catch bad messages as they are incoming. Also add
12523 better checks on header_len and body_len. Also fill in
12524 message->byte_order
12526 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12527 implemented properly)
12528 (_dbus_string_validate_nul): new function to check all-nul
12530 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12531 get_arg_end_pos and remove all validation
12532 (_dbus_marshal_validate_arg): actually do validation here.
12534 2003-01-29 Havoc Pennington <hp@pobox.com>
12536 * dbus/dbus-message.c (check_message_handling): fix assertion
12537 failure on set_client_serial
12539 2003-01-28 Havoc Pennington <hp@pobox.com>
12541 * dbus/dbus-server-debug.c: Add doc section comments
12543 * dbus/dbus-transport-debug.c: add doc section comments
12545 2003-01-28 Havoc Pennington <hp@redhat.com>
12547 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12548 the reverse order from how I had it
12549 (_dbus_string_base64_encode): reverse encoding order. I was
12550 basically byteswapping everything during encoding.
12552 2003-01-28 Anders Carlsson <andersca@codefactory.se>
12554 * dbus/dbus-connection-internal.h:
12555 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12556 (_dbus_connection_remove_timeout):
12557 Add functions for adding and removing timeouts.
12559 * dbus/dbus-message.c: (dbus_message_new_from_message):
12560 Add new function that takes a message and creates an exact
12561 copy of it, but with the refcount set to 1.
12562 (check_message_handling):
12565 * dbus/dbus-server-protected.h:
12566 * dbus/dbus-server.c: (_dbus_server_init_base),
12567 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12568 (dbus_server_set_timeout_functions):
12569 (_dbus_server_remove_timeout):
12570 New functions so that a server can add and remove timeouts.
12572 (dbus_server_listen):
12573 Add commented out call to dbus_server_debug_new.
12575 * dbus/dbus-timeout.c: (_dbus_timeout_new):
12576 Actually set the handler, doh.
12578 * dbus/dbus-transport.c: (_dbus_transport_open):
12579 Add commented out call to dbus_transport_debug_client_new.
12581 * dbus/Makefile.am:
12582 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12584 2003-01-28 Havoc Pennington <hp@pobox.com>
12586 * dbus/dbus-message.c (check_message_handling): function to check
12587 on the loaded message, iterates over it etc.
12589 2003-01-28 Havoc Pennington <hp@pobox.com>
12591 * test/Makefile.am (dist-hook): fix make distdir
12593 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12595 2003-01-27 Havoc Pennington <hp@pobox.com>
12597 * dbus/dbus-mempool.c (time_for_size): replace printf with
12600 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12601 empty lines; fix the SAVE_LENGTH stuff to be
12602 START_LENGTH/END_LENGTH so it actually works; couple other
12605 * test/Makefile.am (dist-hook): add dist-hook for .message files
12607 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12608 can be constant or locked.
12609 (_dbus_string_free): allow freeing a const string as
12610 documented/intended
12612 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12614 * dbus/dbus-test-main.c (main): take an argument which is the
12615 directory containing test data
12617 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12618 argument to this and load all the messages in test/data/
12619 checking that they can be loaded or not loaded as appropriate.
12621 2003-01-27 Anders Carlsson <andersca@codefactory.se>
12623 * bus/dispatch.c: (bus_dispatch_message_handler):
12624 Dispatch messages sent to services.
12626 * bus/driver.c: (bus_driver_send_service_deleted),
12627 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12628 (bus_driver_send_service_acquired):
12629 Add helper functions for sending service related messages.
12631 (bus_driver_send_welcome_message):
12632 Send HELLO_REPLY instead of WELCOME.
12634 (bus_driver_handle_list_services):
12635 Send LIST_SERVICES_REPLY instead of SERVICES.
12637 (bus_driver_handle_own_service),
12638 (bus_driver_handle_service_exists):
12639 New message handlers.
12641 (bus_driver_handle_message):
12642 Invoke new message handlers.
12644 (bus_driver_remove_connection):
12645 Don't remove any services here since that's done automatically
12646 by bus_service_remove_owner now.
12649 New function signatures.
12651 * bus/services.c: (bus_service_add_owner):
12652 Send ServiceAcquired message if we're the only primary owner.
12654 (bus_service_remove_owner):
12655 Send ServiceAcquired/ServiceLost messages.
12657 (bus_service_set_prohibit_replacement),
12658 (bus_service_get_prohibit_replacement):
12659 Functions for setting prohibit replacement.
12661 (bus_service_has_owner):
12662 New function that checks if a connection is in the owner queue of
12666 Add new function signatures.
12668 * dbus/dbus-list.c: (_dbus_list_test):
12669 Add tests for _dbus_list_remove_last and traversing the list backwards.
12671 * dbus/dbus-list.h:
12672 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12673 go any further, so return NULL then.
12675 * dbus/dbus-protocol.h:
12676 Add new messages, service flags and service replies.
12678 2003-01-26 Havoc Pennington <hp@pobox.com>
12680 * dbus/dbus-message-builder.c: implement, completely untested.
12682 * test/data/*: add data to be used in testing.
12683 ".message" files are our simple loadable text format.
12684 ".message-raw" will be binary dumps of messages.
12686 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12688 2003-01-26 Havoc Pennington <hp@pobox.com>
12690 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12692 * dbus/dbus-errors.c (dbus_result_to_string): add
12695 * dbus/dbus-message-builder.c: new file, will contain code to load
12696 up messages from files. Not implemented yet.
12698 2003-01-26 Havoc Pennington <hp@pobox.com>
12700 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12701 the sender by setting to NULL
12703 2003-01-26 Havoc Pennington <hp@pobox.com>
12705 The unit tests pass, but otherwise untested. If it breaks, the
12706 tests should have been better. ;-)
12708 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12711 * dbus/dbus-message.c: redo everything so we maintain
12712 message->header as the only copy of the various fields.
12713 This avoids the possibility of out-of-memory in some cases,
12714 for example dbus_message_lock() can't run out of memory anymore,
12715 and avoids extra copying. Figured I may as well go ahead and do
12716 this since it was busted for dbus_message_lock to not return
12717 failure on OOM, and dbus_message_write_header was totally
12718 unchecked for OOM. Also fixed some random other bugs.
12720 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12721 that strings are nul-terminated. Also, end_pos can be equal
12722 to string length just not greater than, I think.
12723 (_dbus_marshal_set_int32): new function
12724 (_dbus_marshal_set_uint32): new function
12725 (_dbus_marshal_set_string): new function
12727 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12728 a warning, init timeout_list to NULL
12729 (dbus_connection_send_message): don't use uninitialized variable
12732 * dbus/dbus-string.c (_dbus_string_replace_len): new function
12734 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12736 * bus/driver.c: (bus_driver_handle_hello),
12737 (bus_driver_send_welcome_message):
12740 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12742 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12743 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12744 (dbus_connection_unref):
12745 * dbus/dbus-marshal.c: (_dbus_marshal_test):
12746 * dbus/dbus-message.c: (dbus_message_unref),
12749 (dbus_message_get_fields):
12750 Remove debugging printout.
12752 (_dbus_message_loader_return_buffer):
12753 Don't store the header string.
12755 (_dbus_message_test):
12758 2003-01-26 Richard Hult <rhult@codefactory.se>
12760 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12761 the file descriptor list, since it can change under us.
12763 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12765 * glib/dbus-gmain.c: (dbus_connection_prepare),
12766 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12767 (remove_watch), (dbus_connection_hookup_with_g_main):
12768 Rewrite the glib handling to use its own GSource instead of a
12769 GIOChannel so we can catch messages put in the queue while waiting
12772 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12775 * bus/connection.c: (connection_disconnect_handler),
12776 (connection_watch_callback), (bus_connection_setup):
12777 * bus/dispatch.c: (send_one_message),
12778 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12779 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12781 * bus/driver.c: (bus_driver_send_service_deleted),
12782 (bus_driver_send_service_created), (bus_driver_handle_hello),
12783 (bus_driver_send_welcome_message),
12784 (bus_driver_handle_list_services), (bus_driver_remove_connection),
12785 (bus_driver_handle_message):
12787 Refactor code, put the message dispatching in its own file. Use
12788 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12791 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12793 * dbus/dbus-internals.h:
12794 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12796 * dbus/dbus-message.c: (dbus_message_get_sender):
12797 * dbus/dbus-message.h:
12798 Implement dbus_message_get_sender.
12800 * dbus/dbus-protocol.h:
12801 Add message and service defines.
12803 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12805 * dbus/dbus-connection.c: (dbus_connection_send_message):
12806 * dbus/dbus-message-internal.h:
12807 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12808 (dbus_message_write_header):
12809 Remove _dbus_messag_unlock and don't set the client serial on a
12810 message if one already exists.
12812 2003-01-24 Havoc Pennington <hp@pobox.com>
12814 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12817 * bus/driver.c (bus_driver_handle_list_services): fix a leak
12820 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12822 * dbus/dbus-list.c: (alloc_link), (free_link):
12823 Use a memory pool for the links.
12825 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12827 * bus/connection.c: (bus_connection_foreach):
12828 * bus/connection.h:
12829 Add new bus_connection_foreach function.
12831 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12832 Add function that broadcasts a message to all clients.
12834 (bus_driver_send_service_created), (bus_driver_handle_hello),
12835 (bus_driver_send_welcome_message),
12836 (bus_driver_handle_list_services), (bus_driver_message_handler):
12837 Implement functions that take care of listing services, and notifying
12838 clients when new services are created.
12840 * bus/services.c: (bus_services_list):
12842 Add new function that returns an array of strings with the currently
12843 registered services.
12845 * glib/dbus-glib.h:
12846 * glib/dbus-gmain.c:
12847 Update copyright year.
12849 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12851 * dbus/dbus-connection.c: (dbus_connection_send_message):
12852 Unlock the message in case it was sent earlier.
12854 (dbus_connection_send_message_with_reply_and_block):
12855 Remove the reply message from the list.
12857 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12858 Set array_len and new_pos correctly.
12860 (_dbus_marshal_test):
12861 Remove debug output.
12863 * dbus/dbus-message-internal.h:
12864 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12865 New function that returns the reply serial.
12867 (_dbus_message_unlock):
12868 New function that unlocks a message and resets its header.
12870 (dbus_message_append_string_array),
12871 (dbus_message_get_fields_valist),
12872 (dbus_message_iter_get_field_type),
12873 (dbus_message_iter_get_string_array),
12874 (dbus_message_get_fields),
12875 (dbus_message_append_fields_valist):
12876 Handle string arrays.
12878 (dbus_message_set_sender):
12879 Make this function public since the bus daemon needs it.
12881 (decode_header_data):
12882 Set the reply serial to -1 initially.
12884 * dbus/dbus-message.h:
12885 Add dbus_message_set_sender.
12887 2003-01-24 Havoc Pennington <hp@pobox.com>
12889 * doc/dbus-specification.sgml: add some stuff
12891 2003-01-22 Havoc Pennington <hp@pobox.com>
12893 * doc/dbus-specification.sgml: Start to document the protocol.
12895 2003-01-22 Havoc Pennington <hp@pobox.com>
12897 * dbus/dbus-connection.c
12898 (dbus_connection_send_message_with_reply_and_block): add some @todo
12900 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12902 2003-01-21 Havoc Pennington <hp@pobox.com>
12904 (patch untested because can't compile)
12906 * bus/driver.c (create_unique_client_name): make this function
12907 never recycle client names. Also, caller should initialize
12910 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12912 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12914 * dbus/dbus-marshal.c: (_dbus_marshal_double),
12915 (_dbus_marshal_int32), (_dbus_marshal_uint32),
12916 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12917 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12918 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12919 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12920 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12921 * dbus/dbus-marshal.h:
12922 * dbus/dbus-protocol.h:
12923 Add support for marshalling and demarshalling integer, double
12926 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12931 * bus/connection.c: (connection_disconnect_handler):
12932 Remove the connection from the bus driver's list.
12934 (connection_watch_callback): Dispatch messages.
12936 (free_connection_data): Free connection name.
12938 (bus_connection_setup): Add connection to the bus driver's list.
12939 (bus_connection_remove_owned_service):
12940 (bus_connection_set_name), (bus_connection_get_name):
12941 Add functions for setting and getting the connection's name.
12943 * bus/connection.h:
12944 Add function headers.
12946 * bus/driver.c: (create_unique_client_name),
12947 (bus_driver_handle_hello_message),
12948 (bus_driver_send_welcome_message), (bus_driver_message_handler),
12949 (bus_driver_add_connection), (bus_driver_remove_connection):
12952 * bus/services.c: (bus_service_free):
12954 New file that handles communication and registreation with the bus
12957 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12959 * dbus/dbus-connection.c: (dbus_connection_send_message):
12960 Add a new client_serial parameter.
12962 (dbus_connection_send_message_with_reply):
12963 Remove a @todo since we've implemented the blocking function.
12965 (dbus_connection_send_message_with_reply_and_block):
12966 New function that sends a message and waits for a reply and
12967 then returns the reply.
12969 * dbus/dbus-connection.h:
12972 * dbus/dbus-errors.c: (dbus_result_to_string):
12973 * dbus/dbus-errors.h:
12974 Add new DBUS_RESULT.
12976 * dbus/dbus-message-internal.h:
12977 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12978 (_dbus_message_set_sender), (dbus_message_write_header),
12979 (dbus_message_new_reply), (decode_header_data),
12980 (_dbus_message_loader_return_buffer), (_dbus_message_test):
12981 * dbus/dbus-message.h:
12982 Add new functions that set the reply serial and sender.
12983 Also marshal and demarshal them correctly and add test.
12985 * dbus/dbus-protocol.h:
12986 Add new DBUS_MESSAGE_TYPE_SENDER.
12988 * glib/dbus-glib.h:
12989 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12990 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12991 (dbus_connection_hookup_with_g_main):
12992 * glib/test-dbus-glib.c: (main):
12993 Rewrite to use GIOChannel and remove the GSource crack.
12995 * test/echo-client.c: (main):
12996 * test/watch.c: (check_messages):
12997 Update for changed APIs
12999 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13001 * dbus/Makefile.am: Add dbus-timeout.[cħ]
13003 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13004 Create a DBusTimeoutList.
13005 (dbus_connection_set_timeout_functions): Add new function to
13006 set timeout callbacks
13008 * dbus/dbus-connection.h: Add public DBusTimeout API.
13010 * dbus/dbus-message.c: (dbus_message_get_service):
13011 * dbus/dbus-message.h: New function.
13013 * dbus/dbus-server.c: Fix small doc typo.
13015 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13017 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13019 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13020 of the string, just as long as specified.
13022 2003-01-19 Havoc Pennington <hp@pobox.com>
13024 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13027 * dbus/dbus-server.c (dbus_server_set_max_connections)
13028 (dbus_server_get_max_connections, dbus_server_get_n_connections):
13029 keep track of current number of connections, and add API for
13030 setting a max (but haven't implemented enforcing the max yet)
13032 2003-01-18 Havoc Pennington <hp@pobox.com>
13034 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13035 reading/writing if read_watch != NULL or write_watch != NULL.
13037 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13038 the message loader code to actually load message->header and
13039 message->body into the newly-created message.
13041 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13044 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13045 (dbus_connection_get_max_message_size)
13046 (dbus_connection_set_max_live_messages_size)
13047 (dbus_connection_get_max_live_messages_size): implement some
13048 resource limitation functions
13050 * dbus/dbus-resources.c: new file implementing some of the
13051 resource limits stuff
13053 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13054 missing docs, add @todo to handle OOM etc.
13056 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13059 2003-01-18 Havoc Pennington <hp@pobox.com>
13061 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13062 connection if it hasn't been already.
13064 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13065 replace with DisconnectFunction.
13067 2003-01-18 Havoc Pennington <hp@pobox.com>
13069 Building --disable-verbose-mode --disable-asserts --disable-tests
13070 cuts the library from 112K to 45K or so
13072 * configure.in: check for varargs macro support,
13073 add --enable-verbose-mode, --enable-asserts.
13075 * dbus/dbus-internals.h (_dbus_assert): support
13076 DBUS_DISABLE_ASSERT
13077 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13079 2003-01-18 Havoc Pennington <hp@pobox.com>
13081 * dbus/dbus-test.c: include config.h so that tests actually run
13083 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13084 so the failure mode when that assumption fails will be plenty
13087 2003-01-18 Havoc Pennington <hp@pobox.com>
13089 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13091 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13094 * test/Makefile.am: don't use special variable "TESTS" for echo-*
13095 since we don't want to use those in make check
13097 2003-01-15 Havoc Pennington <hp@redhat.com>
13103 2003-01-15 Havoc Pennington <hp@redhat.com>
13105 * test/Makefile.am: fix so that test source code ends up in the
13106 distribution on make distcheck
13108 2003-01-15 Havoc Pennington <hp@redhat.com>
13114 2003-01-15 Havoc Pennington <hp@redhat.com>
13116 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13117 fix build when --disable-tests
13119 * Makefile.am (EXTRA_DIST): put HACKING in here
13121 * HACKING: document procedure for making a tarball release.
13123 2003-01-14 Anders Carlsson <andersca@codefactory.se>
13125 * bus/connection.c: (connection_error_handler),
13126 (bus_connection_setup):
13127 * bus/main.c: (main):
13128 Make sure that the DBusConnectionData struct is NULLed
13129 out to prevent a segfault.
13131 * dbus/dbus-errors.c: (dbus_result_to_string):
13132 * dbus/dbus-errors.h:
13133 * dbus/dbus-message.c: (dbus_message_get_fields),
13134 (dbus_message_get_fields_valist), (_dbus_message_test):
13135 * dbus/dbus-message.h:
13136 Make dbus_message_get_fields return a result code so we can
13137 track invalid fields as well as oom.
13139 2003-01-11 Havoc Pennington <hp@pobox.com>
13141 * configure.in: change --enable-test/--enable-ansi action-if-given
13142 to enable_foo=$enableval instead of enable_foo=yes
13144 2003-01-08 Havoc Pennington <hp@pobox.com>
13146 * dbus/dbus-string.c (_dbus_string_align_length): new function
13148 * dbus/dbus-test-main.c: move main() for test app here
13150 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13151 symbol to run tests, because dbus-test isn't in the main
13154 Code review nitpicks.
13156 * dbus/dbus-message.c (dbus_message_write_header): add newlines
13157 for people with narrow emacs ;-). Assert client_serial was filled
13158 in. Assert message->name != NULL.
13159 (dbus_message_append_fields): have "first_field_type" arg separate
13160 from va list, needed for C++ binding that also uses varargs IIRC
13161 and helps with type safety
13162 (dbus_message_new): add @todo about using DBusString to store
13163 service/name internally
13164 (dbus_message_new): don't leak ->service and ->name on OOM later
13166 (dbus_message_unref): free the service name
13167 (dbus_message_get_fields): same change to varargs
13168 i.e. first_field_type
13169 (_dbus_message_loader_return_buffer): assert that the message data
13170 is aligned (if not it's a bug in our code). Put in verbose griping
13171 about why we set corrupted = TRUE.
13172 (decode_header_data): add FIXME that char* is evil. Was going to
13173 add FIXME about evil locale-specific string.h strncmp, but just
13174 switched to wacky string-as-uint32 optimization. Move check for
13175 "no room for field name" above get_const_data_len() to avoid
13176 assertion failure in get_const_data_len if we have trailing 2
13177 bytes or the like. Check for service and name fields being
13178 provided twice. Don't leak service/name on error. Require field
13179 names to be aligned to 4 bytes.
13181 * dbus/dbus-marshal.c: move byte swap stuff to header
13182 (_dbus_pack_int32): uscore-prefix
13183 (_dbus_unpack_int32): uscore-prefix
13184 (_dbus_unpack_uint32): export
13185 (_dbus_demarshal_string): add @todo complaining about use of
13187 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13188 handling allowing corrupt data to go unchecked
13190 2003-01-08 Havoc Pennington <hp@redhat.com>
13192 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13193 to the select() as needed for authentication. (should be using
13194 _dbus_poll() not select, but for another day)
13196 * dbus/dbus.h: include dbus/dbus-protocol.h
13198 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13200 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13203 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13205 * dbus/dbus-internals.c: (_dbus_type_to_string):
13206 New function that returns a string describing a type.
13208 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13209 * dbus/dbus-marshal.h:
13210 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13211 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13212 (dbus_message_iter_get_byte_array):
13213 * dbus/dbus-message.h:
13214 Add new convenience functions for appending and getting message fields.
13215 Also add demarshalling routines for byte arrays.
13217 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13219 * dbus/dbus-connection-internal.h:
13220 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13221 (_dbus_connection_get_next_client_serial),
13222 (dbus_connection_send_message):
13223 * dbus/dbus-internals.h:
13224 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13225 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13226 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13227 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13228 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13229 (_dbus_verbose_bytes), (_dbus_marshal_test):
13230 * dbus/dbus-marshal.h:
13231 * dbus/dbus-message-internal.h:
13232 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13233 (dbus_message_write_header), (_dbus_message_lock),
13234 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13235 (dbus_message_get_name), (dbus_message_append_int32),
13236 (dbus_message_append_uint32), (dbus_message_append_double),
13237 (dbus_message_append_string), (dbus_message_append_byte_array),
13238 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13239 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13240 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13241 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13242 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13243 (decode_header_data), (_dbus_message_loader_return_buffer),
13244 (message_iter_test), (_dbus_message_test):
13245 * dbus/dbus-message.h:
13246 * dbus/dbus-protocol.h:
13247 * dbus/dbus-test.c: (main):
13248 * dbus/dbus-test.h:
13249 * glib/test-dbus-glib.c: (message_handler), (main):
13250 * test/echo-client.c: (main):
13251 * test/watch.c: (check_messages):
13252 Make messages sendable and receivable for real.
13254 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13256 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13257 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13258 * dbus/dbus-message.c: (dbus_message_append_int32),
13259 (dbus_message_append_uint32), (dbus_message_append_double),
13260 (dbus_message_append_string), (dbus_message_append_byte_array):
13261 Handle OOM restoration.
13263 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13265 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13266 (_dbus_demarshal_string), (_dbus_marshal_test):
13267 * dbus/dbus-marshal.h:
13268 * dbus/dbus-message.c: (dbus_message_get_name),
13269 Document these functions.
13271 (dbus_message_append_int32), (dbus_message_append_uint32),
13272 (dbus_message_append_double), (dbus_message_append_string),
13273 (dbus_message_append_byte_array):
13274 * dbus/dbus-message.h:
13275 Add functions for adding message fields of different types.
13277 * dbus/dbus-protocol.h:
13278 Add the different types.
13280 2003-01-05 Havoc Pennington <hp@pobox.com>
13282 * bus/connection.c: implement routines for handling connections,
13283 first thing is keeping a list of owned services on each connection
13284 and setting up watches etc.
13286 * bus/services.c: implement a mapping from service names to lists
13289 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13291 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13292 to use static mutexes for global data
13294 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13295 collection of functions to set/get application-specific data
13296 on the DBusConnection.
13298 2003-01-04 Havoc Pennington <hp@pobox.com>
13300 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13301 (_dbus_poll): new function
13303 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13306 * bus/loop.c: initial code for the daemon main loop
13308 2003-01-04 Havoc Pennington <hp@pobox.com>
13310 * test/watch.c (error_handler): make it safe if the error handler
13311 is called multiple times (if we s/error handler/disconnect
13312 handler/ we should just guarantee it's called only once)
13314 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13315 error handler on disconnect (it's quite possible we should
13316 just change the error handler to a "disconnect handler," I'm
13317 not sure we have any other meaningful errors)
13319 * configure.in: check for getpwnam_r
13321 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13322 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13323 mechanism as in SASL spec, using socket credentials
13325 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13326 (_dbus_send_credentials_unix_socket): new function
13328 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13330 (_dbus_write): only check errno if <0 returned
13331 (_dbus_write_two): ditto
13333 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13335 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13336 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13337 (_dbus_marshal_test):
13338 * dbus/dbus-marshal.h:
13339 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13340 to _dbus_marshal_utf8_string. Also fix some tests.
13342 2002-12-28 Harri Porten <porten@kde.org>
13344 * configure.in: added check for C++ compiler and a very cheesy
13345 check for the Qt integration
13347 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13349 * qt/Makefile.am: added
13351 * qt/.cvsignore: added
13353 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13354 latter, added #ifdef QT_THREAD_SUPPORT guard.
13356 * dbus/Makefile.am: added missing headers for make dist
13358 2002-12-28 Kristian Rietveld <kris@gtk.org>
13360 * dbus/Makefile.am: fixup export-symbols-regex.
13362 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13364 * acinclude.m4: Add this file and put the
13365 PKG_CHECK_MODULE macro in it.
13367 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13369 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13370 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13371 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13372 (_dbus_marshal_test):
13373 Make the demarshalling routines align the pos argument.
13374 Add string marshalling tests and fix the obvious bugs
13377 2002-12-26 Havoc Pennington <hp@pobox.com>
13379 * dbus/dbus-auth.c: fixes fixes fixes
13381 * dbus/dbus-transport-unix.c: wire up support for
13382 encoding/decoding data on the wire
13384 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13385 (_dbus_auth_decode_data): append to target string
13386 instead of nuking it.
13388 2002-12-26 Havoc Pennington <hp@pobox.com>
13390 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13391 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13394 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13395 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13396 now). Main point is because I wanted unpack_uint32 to implement
13397 _dbus_verbose_bytes
13398 (_dbus_verbose_bytes): new function
13400 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13402 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13403 mechanism to handle a corrupt message stream
13404 (_dbus_message_loader_new): fix preallocation to only prealloc,
13407 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13408 (_dbus_string_test): enhance tests for copy/move and fix the
13411 * dbus/dbus-transport-unix.c: Hold references in more places to
13412 avoid reentrancy problems
13414 * dbus/dbus-transport.c: ditto
13416 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13417 leak reference count in no-message case
13419 * test/watch.c (do_mainloop): handle adding/removing watches
13420 during iteration over the watches. Also, ref the connection/server
13421 stored on a watch, so we don't try to mangle a destroyed one.
13423 * dbus/dbus-transport-unix.c (do_authentication): perform
13426 * dbus/dbus-auth.c (get_state): add a state
13427 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13428 (_dbus_auth_get_unused_bytes): append the unused bytes
13429 to the passed in string, rather than prepend
13431 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13432 the auth conversation DBusAuth
13434 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13435 (_dbus_transport_new_for_domain_socket): when creating a
13436 transport, pass in whether it's a client-side or server-side
13437 transport so we know which DBusAuth to create
13439 2002-12-03 Havoc Pennington <hp@pobox.com>
13441 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13442 _after_ finalizing the derived members
13443 (unix_connection_set): unref watch if we fail to add it
13445 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13446 transport first, so that the connection owned by the
13447 transport will be valid as the transport finalizes.
13449 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13450 if necessary, and remove watches from the connection.
13452 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13454 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13456 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13457 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13458 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13459 (_dbus_marshal_test):
13460 * dbus/dbus-marshal.h:
13461 Add string marshal functions and have the demarshal functions
13462 return the new position.
13464 2002-12-25 Havoc Pennington <hp@pobox.com>
13466 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13467 it is a simple protocol that just maps directly to SASL.
13469 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13470 initial implementation, not actually used yet.
13472 * dbus/dbus-string.c (_dbus_string_find): new function
13473 (_dbus_string_equal): new function
13474 (_dbus_string_base64_encode): new function
13475 (_dbus_string_base64_decode): new function
13477 2002-12-25 Anders Carlsson <andersca@codefactory.se>
13479 * dbus/Makefile.am:
13480 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13481 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13482 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13483 (_dbus_demarshal_uint32), (_dbus_marshal_test):
13484 * dbus/dbus-marshal.h:
13485 * dbus/dbus-protocol.h:
13486 * dbus/dbus-test.c: (main):
13487 * dbus/dbus-test.h:
13488 Add un-optimized marshalling/demarshalling routines.
13490 2002-12-25 Harri Porten <porten@kde.org>
13492 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13494 2002-12-24 Zack Rusin <zack@kde.org>
13496 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13497 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13500 2002-12-24 Havoc Pennington <hp@pobox.com>
13502 * glib/dbus-gthread.c: fix include
13504 * glib/dbus-glib.h: rename DBusMessageHandler for now.
13505 I think glib API needs to change, though, as you don't
13506 want to use DBusMessageFunction, you want to use the
13507 DBusMessageHandler object. Probably
13508 dbus_connection_open_with_g_main_loop()
13509 and dbus_connection_setup_g_main_loop() or something like that
13510 (but think of better names...) that just create a connection
13511 that has watch/timeout functions etc. already set up.
13513 * dbus/dbus-connection.c
13514 (dbus_connection_send_message_with_reply): new function just to
13515 show how the message handler helps us deal with replies.
13517 * dbus/dbus-list.c (_dbus_list_remove_last): new function
13519 * dbus/dbus-string.c (_dbus_string_test): free a string that
13522 * dbus/dbus-hash.c: use memory pools for the hash entries
13523 (rebuild_table): be more paranoid about overflow, and
13524 shrink table when we can
13525 (_dbus_hash_test): reduce number of sprintfs and write
13526 valid C89. Add tests for case where we grow and then
13527 shrink the hash table.
13529 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13531 * dbus/dbus-connection.c (dbus_connection_register_handler)
13532 (dbus_connection_unregister_handler): new functions
13534 * dbus/dbus-message.c (dbus_message_get_name): new
13536 * dbus/dbus-list.c: fix docs typo
13538 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13539 an object representing a handler for messages.
13541 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13543 * glib/dbus-glib.h:
13544 * glib/dbus-gthread.c: (dbus_gthread_init):
13545 Don't use the gdbus prefix for public functions.
13547 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13551 Add GLib checks and fixup .pc files
13553 * glib/Makefile.am:
13554 * glib/dbus-glib.h:
13555 * glib/dbus-gmain.c: (gdbus_connection_prepare),
13556 (gdbus_connection_check), (gdbus_connection_dispatch),
13557 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13558 (dbus_connection_gsource_new):
13559 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13560 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13561 * glib/test-dbus-glib.c: (message_handler), (main):
13564 2002-12-15 Harri Porten <porten@kde.org>
13566 * autogen.sh: check for libtoolize before attempting to use it
13568 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13571 * .cvsignore: ignore more stamp files
13573 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13575 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13576 without make install.
13578 2002-12-15 Havoc Pennington <hp@pobox.com>
13580 * dbus/dbus-threads.c: add thread stubs that a higher library
13581 layer can fill in. e.g. the GLib wrapper might fill them in with
13582 GThread stuff. We still need to use this thread API to
13583 thread-safe-ize the library.
13585 2002-12-12 Havoc Pennington <hp@pobox.com>
13587 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13588 below new interfaces and include fewer system headers.
13590 * dbus/dbus-sysdeps.c (_dbus_read): new function
13591 (_dbus_write): new function
13592 (_dbus_write_two): new function
13593 (_dbus_connect_unix_socket): new function
13594 (_dbus_listen_unix_socket): new function
13596 * dbus/dbus-message-internal.h: change interfaces to use
13599 2002-12-11 Havoc Pennington <hp@pobox.com>
13601 * dbus/dbus-types.h: add dbus_unichar
13603 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13605 * dbus/dbus-connection.c (dbus_connection_send_message): return
13608 * dbus/dbus-transport.c: include dbus-watch.h
13610 * dbus/dbus-connection.c: include dbus-message-internal.h
13612 * HACKING: add file with coding guidelines stuff.
13614 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13615 handling here, for security purposes (as in vsftpd). Not actually
13616 using this class yet.
13618 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13619 system/libc usage here, as in vsftpd, for ease of auditing (and
13620 should also simplify portability). Haven't actually moved all the
13621 system/libc usage into here yet.
13623 2002-11-25 Havoc Pennington <hp@pobox.com>
13625 * dbus/dbus-internals.c (_dbus_verbose): fix to not
13626 always print the first verbose message.
13628 2002-11-24 Havoc Pennington <hp@pobox.com>
13630 * test/echo-client.c, test/echo-server.c: cheesy test
13633 * configure.in (AC_CHECK_FUNCS): check for writev
13635 * dbus/dbus-message.c (_dbus_message_get_network_data): new
13638 * dbus/dbus-list.c (_dbus_list_foreach): new function
13640 * dbus/dbus-internals.c (_dbus_verbose): new function
13642 * dbus/dbus-server.c, dbus/dbus-server.h: public object
13643 representing a server that listens for connections.
13645 * dbus/.cvsignore: create
13647 * dbus/dbus-errors.h, dbus/dbus-errors.c:
13648 public API for reporting errors
13650 * dbus/dbus-connection.h, dbus/dbus-connection.c:
13651 public object representing a connection that
13652 sends/receives messages. (Same object used for
13653 both client and server.)
13655 * dbus/dbus-transport.h, dbus/dbus-transport.c:
13656 Basic abstraction for different kinds of stream
13657 that we might read/write messages from.
13659 2002-11-23 Havoc Pennington <hp@pobox.com>
13661 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13664 * dbus/dbus-test.c (main): add list test, and include
13665 dbus-test.h as intended
13667 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13668 (_dbus_hash_table_remove_int): return value indicates
13669 whether the entry existed to remove
13671 * dbus/dbus-list.c: add linked list utility class,
13672 with docs and tests
13674 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13677 2002-11-23 Havoc Pennington <hp@pobox.com>
13679 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13680 DBUS_END_DECLS to nothing, that should fix this once and for all
13682 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13684 * dbus/dbus-message.c, dbus/dbus-hash.c:
13685 add some missing @brief
13687 2002-11-23 Havoc Pennington <hp@pobox.com>
13689 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13690 to avoid confusing Doxygen
13692 * dbus/dbus-hash.c: @} not }@
13694 * dbus/dbus-message.c (struct DBusMessage): split out
13697 2002-11-23 Havoc Pennington <hp@pobox.com>
13699 * configure.in: pile on more warning flags if using gcc
13701 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13702 to document static functions
13704 * configure.in: add summary to end of configure so it
13705 looks nice and attractive
13707 * dbus/dbus-hash.c: finish implementation and write unit
13710 * configure.in: add --enable-tests to enable unit tests
13712 * dbus/dbus-test.c: test program to run unit tests
13713 for all files in dbus/*, initially runs a test for
13716 * dbus/dbus-internals.h: file to hold some internal utility stuff
13718 2002-11-22 Havoc Pennington <hp@redhat.com>
13720 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13721 "ported" away from Tcl
13723 * dbus/dbus-types.h: header for types such as dbus_bool_t
13725 2002-11-22 Havoc Pennington <hp@redhat.com>
13727 * dbus/dbus.h: fixups for doc warnings
13729 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13731 (QUIET): make it quiet so we can see warnings
13733 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13735 2002-11-22 Havoc Pennington <hp@redhat.com>
13737 * Makefile.am: include "Doxyfile" target in all-local
13739 * configure.in: generate the Doxyfile
13741 * Doxyfile.in: move Doxyfile here, so we can use
13742 configure to generate a Doxyfile with the right
13743 version number etc.
13745 2002-11-22 Havoc Pennington <hp@redhat.com>
13747 * dbus/dbus-message.c: move inline docs into .c file
13749 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13750 so all docs are under doc/
13751 (MAN_EXTENSION): generate man pages. Use extension
13752 ".3dbus" which matches ".3qt" on my system,
13753 I guess this is OK, I don't know really.
13754 (FILE_PATTERNS): look for .c files not .h, makes sense
13755 for plain C I think
13757 2002-11-22 Havoc Pennington <hp@pobox.com>
13759 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13760 because any app can be a server, and any app can be a client,
13761 the bus is a special kind of server.
13763 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
13765 * Doxyfile : adding. Still needs Makefile rules to be generated
13766 automatically (just run "doxygen" in the toplevel dir for now to
13769 * dbus/dbus-message.h : Adding sample docs (javadoc since
13770 resembles gtk-doc a little more)
13772 * dbus/dbus.h : Adding sample docs
13774 2002-11-21 Havoc Pennington <hp@redhat.com>
13776 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13777 so we can allow ourselves to include files directly,
13778 instead of having to use dbus.h
13780 * dbus/dbus.h: fill in
13782 * dbus/dbus-message.h: sketch out a sample header file.
13783 Include griping if you include it directly instead of
13786 * dbus/dbus-macros.h: new file with macros for extern "C",
13787 TRUE/FALSE, NULL, etc.
13789 * doc/file-boilerplate.c: put include guards in here
13791 2002-11-21 Havoc Pennington <hp@redhat.com>
13793 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13795 * COPYING: include the GPL as well, and license code
13796 under both AFL and GPL.
13798 2002-11-21 Havoc Pennington <hp@redhat.com>
13800 * acconfig.h: get rid of this
13802 * autogen.sh (run_configure): add --no-configure option
13804 * configure.in: remove AC_ARG_PROGRAM to make
13805 autoconf complain less. add AC_PREREQ.
13806 add AC_DEFINE third arg.
13808 2002-11-21 Anders Carlsson <andersca@codefactory.se>
13811 Fix references so we can distcheck.
13813 2002-11-21 Havoc Pennington <hp@redhat.com>
13815 * Initial module creation