1 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
3 * dbus/dbus-connection.c:
4 (_dbus_connection_attach_pending_call_unlocked):
5 (connection_timeout_and_complete_all_pending_calls_unlocked):
6 Make sure we set timeout_added on pending calls to FALSE when
7 we remove the timeout from the connection
9 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
11 * Removed some extra bindings stuff lingering around (thanks timo)
12 * dbus-pendingcall.c (_dbus_pending_call_new):
13 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
14 when we tried to take a lock on an already locked connection
16 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
20 2006-07-17 Havoc Pennington <hp@redhat.com>
22 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
23 ints, reported by Owen Taylor
25 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
30 * dbus/dbus-marshal-validate.c:
31 Removed TODO items which were fixed or are no longer relevent
33 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
35 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
36 Remove stray files from the stripped bindings
38 2006-07-16 Havoc Pennington <hp@redhat.com>
40 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
41 Improve the error message on reply timeout
43 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
47 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
49 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
50 and set pending_reply out arg to NULL is connection is disconnected
51 (connection_timeout_and_complete_all_pending_calls_unlocked): New
52 static method for cleaning up pending calls on disconnect
53 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
54 calls queued timeouts on disconnect
56 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
59 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
61 * bus/activation.[ch] (bus_activation_list_services): new function to
62 get the list of services that can be activated
64 * bus/dispatch.c: test coverage for the new bus method
67 * bus/driver.c: new bus method ListActivatableNames to get the list of
68 services that can be activated
70 * doc/dbus-specification.xml: ListActivatableNames method documentation
72 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
73 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
76 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
77 * dbus/dbus-message-factory.c:
78 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
80 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
81 * dbus/dbus-connection-internal.h:
82 * dbus/dbus-connection.c:
83 * file dbus/dbus-pending-call.c:
84 * dbus/dbus-pending-call.h:
85 Make DBusPendingCall an opaque type even to D-Bus internals
87 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
89 * dbus/dbus-connection.h: remove connection_disconnect and replace with
92 * dbus/dbus-connection.c: include dbus-bus.h
93 (_dbus_connection_read_write_dispatch): make static
95 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
97 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
99 (dbus_connection_dispatch): On disconnect unref any shared connections
101 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
102 for cleaning up shared connections on disconnect
103 (internal_bus_get): get a hard refrence to shared connections when
106 * doc/TODO: Remove items which are no longer relevent or have been fixed
107 Split 1.0 todo items with a 0.90 freeze todo list
109 2006-06-14 Ross Burton <ross@openedhand.com>
111 * glib/dbus-gobject.c:
112 Free a leaking GArray (surely not!) in dbus_g_method_return.
114 2006-06-14 Ross Burton <ross@openedhand.com>
117 * tools/dbus-monitor.c:
118 Don't use the GLib bindings in dbus-monitor (patch from Ralf
121 2006-06-14 Ross Burton <ross@openedhand.com>
123 * tools/dbus-print-message.c:
124 Also print the object path when outputting signals or method calls.
126 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
128 * qt/src/Makefile.am: install the qdbus.h header.
129 This allows people to actually use the installed code.
131 2006-06-12 Ross Burton <ross@openedhand.com>
133 * glib/dbus-gproxy.c:
134 Don't leak a GArray when firing signals (thank Rob Taylor for review).
136 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
140 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
142 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
143 break pedantic builds. Closes bug 6043 (patch approved by
144 Havoc back in February).
146 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
148 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
149 that took a QDBusMessage parameter.
150 * qt/src/qdbusbus.h: Add a default flag for RequestName.
151 * qt/tools/dbus.cpp: Don't use automatic call because we might
152 be calling an async method: request a reply.
154 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
156 * test/qt/*: Update the testcases, including testing the new
157 functionality of sending null QByteArray and QString over the
158 bus. Add new headertest test and restore the old
161 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
163 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
164 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
166 * qt/examples/Makefile.am:
167 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
170 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
171 QByteArray() (nulls) over the bus.
172 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
173 the one that has the signature suffix stripped.
174 * qt/src/qdbusreply.h: Make some methods const.
176 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
178 Patch from Timo Hoenig <thoenig@suse.de>.
180 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
181 required during build to EXTRA_DIST.
182 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
183 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
184 * configure.in: Fix "make dist", take care that the Makefile for
185 qt/dbus is being generated.
187 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
189 * bus/bus.c: Fix eavesdropping on method calls
191 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
194 * dbus/dbus-userdb-util.c:
195 Add Solaris console owner patch from Artem Kachitchkine
197 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
200 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
201 reorganisation. Thanks to Timo Hoenig for pointing this out.
203 2006-06-06 Robert McQueen <robot101@debian.org>
205 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
206 call to dbus_g_type_get_struct.
208 2006-06-06 Robert McQueen <robot101@debian.org>
210 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
211 pointers were put into a GPtrArray-based specialised collection, and
212 then freed along with the array. GValues which you add into
213 collections or maps which have the NOCOPY flag set are assumed to not
214 belong to the caller, so rather than the existing pointer-stealing
215 semantics, they are copied instead. Given that the main consumers of
216 this abstraction are the bindings themselves, I don't think this is
217 too bad, but others should watch their choice of take vs set_static.
219 2006-06-06 Robert McQueen <robot101@debian.org>
221 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
222 of g_slist_prepend not being used. Fixed copying of slist-based
223 specialised collections, then wrote a test case and found that it was
224 all broken. Went on to fix iterating and appending too. Good thing
225 nobody uses this code yet.
227 2006-06-06 Robert McQueen <robot101@debian.org>
229 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
230 the iterators use gvalue_take_ptrarray_value (the GValues themselves
231 are discarded without unsetting, so it makes no difference whether
232 we take or set_static). Remove cases for G_TYPE_POINTER because
233 there really is nothing useful we can do with them in our
234 specialised types - we *need* boxed copy/free functions at the very
237 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
239 * qt/dbus: Add directory. I had forgotten to add this
240 yesterday after the move...
242 * qt/examples/Makefile.am:
243 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
245 * qt/tools/Makefile.am:
246 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
247 Added feature to get and set properties.
248 Added validation of service, object path and interface names.
250 * qt/tools/dbusidl2cpp.cpp: Two new features:
251 1) Allow specifying both the header and the source file names,
252 by separating them with a colon.
253 2) Don't write an interface output if the -p switch wasn't
254 given, but the -a was.
256 * qt/src/*: Fix usage of Iterators and ConstIterators.
257 Fix shadowing of variables by other variables (-Wshadow).
258 Fix keyword-cleanliness in headers.
259 Fix ASCII-cast (QLatin1String, QLatin1Char).
260 Fix validation of member names.
261 Add extra checking of introspection data during XML parsing.
264 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
267 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
270 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
272 * configure.in: Make --disable-qt actually do
273 something. Patch inspired by Zack Rusin.
275 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
277 * qt/: Update to Subversion r548032.
278 This includes a big reorganisation of the files inside the
281 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
283 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
285 "Failed to connect to socket <host>:<port> <error>" instead of
286 "Failed to connect to socket <host>: <error>:<port>"
288 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
291 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
293 * qt/*: Update the QtDBus bindings up to revision 546310 in
295 This adds the dbuscpp2xml tool, that parses a C++ header and
296 outputs a D-BUS Introspection XML.
298 2006-05-21 Havoc Pennington <hp@redhat.com>
300 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
301 is not NULL when it shouldn't be. Also a couple of possible fixes
302 for #4637 though I don't understand why the bug happens, to be
303 honest... also the object constructor has an assert name != NULL
304 and the name is only currently NULL for peer-to-peer proxies that
305 I don't think anyone uses? So it should be asserting.
306 Anyway, for now at least see if we get an earlier assertion failure.
308 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
309 apparently broken code to be sure the tests fail and someone
312 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
314 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
315 and arrays when they had a single element: has_next returns
316 false, even before you read the element. So, instead, check
319 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
321 * qt/qdbusmessage.cpp:
322 * qt/qdbustypehelper_p.h:
323 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
324 the list is a const-reference
326 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
328 * Adding old doc patch that never got applied
330 * dbus/bus.c (dbus_bus_add_match): Add documentation
332 * doc/dbus-specification.xml: Add documentation for the match rules
333 and the AddMatch and RemoveMatch methods
335 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
337 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
340 * qt/dbusidl2cpp.cpp:
341 * qt/qdbusabstractadaptor.cpp:
342 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
343 sibling of the QDBusAbstractAdaptor objects instead of the
346 * qt/dbusidl2cpp.cpp:
347 * qt/qdbusabstractinterface.cpp:
348 * qt/qdbusabstractinterface.h:
349 * qt/qdbusabstractinterface_p.h:
350 * qt/qdbusinterface.cpp: Make properties in interfaces
351 actually work. The code that was generated would not compile,
352 due to moc calls to functions that did not exist. They now
355 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
359 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
360 Thanks to Brad Hards for providing the patch
362 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
364 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
367 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
369 * qt/examples/dbus.cpp: Enhance error messages and use
372 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
374 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
375 and disable the copy operators. (r533772, r534746)
377 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
379 * qt/qdbusabstractinterface.cpp:
380 * qt/qdbusabstractinterface.h: Change the default call mode to
381 not use the event loop. Add convenience call() methods that
382 take a CallMode parameter. (r534042)
384 * qt/qdbusconnection.h: Change the default call mode to not
385 use the event loop. (r534042)
387 * qt/qdbusinterface.cpp:
388 * qt/qdbusinterface.h: Add a method to tell us if the
389 interface is valid (since we don't return a null pointer
392 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
395 * qt/qdbusinternalfilters.cpp: Decouple the introspection
396 function in two so taht we get the chance to introspect
397 without having a QDBusMessage (r534102)
400 * qt/qdbusconnection.cpp:
401 * qt/qdbusconnection_p.h:
402 * qt/qdbusintegrator.cpp: Keep a list of our own names to
403 avoid a round-trip to the server when attempting to introspect
404 one of our own objects. Also make sure the filter functions
405 match the empty interface as well. (r534108)
406 Don't keep the connection names. Instead, trust the unique
407 connection name (r534111)
408 Remove event loop usage (r534112)
410 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
412 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
415 2006-04-28 Robert McQueen <robot101@debian.org>
417 * glib/dbus-gproxy.c: Fix properties so that they can be given in
418 any order, making it easier for people who inherit from this
421 2006-04-28 Robert McQueen <robot101@debian.org>
423 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
424 of memory from within pointer arrays and lists. Fixes bug #6300.
426 2006-04-28 Robert McQueen <robot101@debian.org>
428 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
429 generating struct signatures. Fixes bug #6083.
431 2006-04-28 Robert McQueen <robot101@debian.org>
433 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
434 to qdbusconnection_p.moc.
436 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
438 * README, INSTALL: Doc fixes
439 Patch from Brad Hards <bradh at frogmouth.net>
441 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
443 * qt/examples/dbus.cpp: Use the new merged-interface mode for
444 the dynamic meta object. No need to guess which interface to
447 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
449 * qt/qdbusconnection_p.h:
450 * qt/qdbusmetaobject.cpp:
451 * qt/qdbusmetaobject_p.h:
452 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
453 for the dynamic meta object. No need to guess which
455 * qt/qdbusabstractinterface_p.h:
456 * qt/qdbusconnection.cpp:
457 * qt/qdbusintegrator.cpp:
458 * qt/qdbusinterface.cpp:
459 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
460 Add a QDBusRef that looks and behaves like DCOPRef.
462 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
464 * dbus/dbus-connection.c: Interfaces are optional in method
465 calls, so don't give up if the interface parameter is NULL.
466 Patch reviewed by Havoc Pennington.
468 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
470 * qt/qdbusreply.h: Add default constructor and operator=
472 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
473 in public headers (r532952)
474 * qt/qdbusabstractinterface.cpp:
475 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
476 make it the default (r532951)
478 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
480 * dbus/dbus-connection.c: Fix asserts
481 Patch from Tim Moloney <t.moloney at verizon.net>
483 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
485 * mono/Connection.cs, mono/Message.cs: Check Target type
486 Patch from Aaron Bockover (abockover at novell.com)
488 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
490 * INSTALL: fine-tune the requirements for the Qt4 binding.
492 2006-04-16 Daniel P. Berrange <dan@berrange.com>
494 * tools/dbus-print-message.c: Added support for printing of all
495 remaining data types. Fixed logic for indentation of compound
498 2006-04-15 Daniel P. Berrange <dan@berrange.com>
500 * INSTALL: fill out content of file providing DBus specific
501 build installations, followed by generic Auto* INSTALL file
504 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
506 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
507 Patch by Stefan Eilers. (r529537)
509 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
511 * qt/qdbusinternalfilters.cpp: Don't show the parent's
514 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
516 * qt/Makefile.am: fix the dependency for
517 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
518 not in qdbusconnection.cpp.
519 Thanks to Jakub Stachowski <stachowski@hypair.net> for
522 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
524 * qt/examples/listnames.cpp:
525 * qt/examples/Makefile.am: Three ways to list the names on the
528 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
530 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
531 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
533 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
535 Merge from Subversion:
536 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
537 something that exists (r526315)
538 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
539 slots/signals (r526316)
540 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
541 also return an unknown-method error if the parameters don't
542 match for org.freedesktop.DBus.Properties. (r526842)
543 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
544 * qt/qdbusintegrator.cpp: Restore the proper order of
545 delivery: don't make method returns be delivered on priority
548 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
550 * configure.in qt/Makefile.am: add qt/examples
551 * qt/examples: Add QtDBus example programs:
552 - hello: Hello, World
553 - ping: Simple method-calling program
554 - pong: Simple object-exporting program (not using adaptors)
555 - complexping: Interactive method-calling program
556 (also gets and sets properties).
557 - complexpong: Sample program exporting methods, signals and
558 properties, using adaptors.
559 - dbus: Simple implementation of a generic method-calling
560 program, similar to 'dbus-send', but with semantics
562 - chat: Simplistic chat program, implemented using signals
563 and the system bus. Looks like IRC.
565 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
567 * configure.in: Detect QtGui (necessary for one of the
568 example programs). Note: this increases the minimum required
569 version of Qt to 4.1.3.
571 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
573 * test/qt/*: Sync with KDE Subversion revision 523647.
574 Update the testcases to the new API. Remove testcases for
575 classes that are no longer public or have been removed.
577 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
580 * dbus/qdbus.h: Sync with KDE Subversion revision
581 523647. Hopefully, this will be the last of the
582 source-incompatible changes. Documentation has been improved;
583 support for QList<basic-types> has been added; QDBusObject is
584 gone; QDBus(Abstract)Interface is now a QObject with
585 auto-generated meta-object; QDBusIntrospection is marked
586 private, since QMetaObject can be used now; lots of bugfixes.
588 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
590 Patch from Milosz Derezynski <internalerror at gmail.com>
593 Output the service directory in the configure summary
596 Add session_bus_services_dir
598 2006-03-10 Ross Burton <ross@openedhand.com>
600 * tools/dbus-print-message.c:
601 Add support for object paths and signatures.
603 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
605 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
607 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
609 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
610 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
611 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
612 * dbus/dbus-userdb.h: Add function to flush all user/group information
615 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
617 * qt/dbusidl2cpp.cpp:
618 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
619 for dcopidl2cpp, found in the KDE installations (or the more
620 modern kalyptus): generate Qt4 C++ code for the input XML
621 introspection. Currently no IDL parsing.
623 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
625 * test/qt/*: Update the self-tests.
627 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
630 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
631 represents the first feature-complete version of the Qt4
632 bindings since I took ove maintainership.
634 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
636 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
637 dir. This is C++, so we can't use the DBus ones.
639 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
641 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
642 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
644 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
646 * dbus/dbus-connection.c:
647 (_dbus_connection_block_pending_call):
648 Check to see if our data has already been read off the connection
649 by another blocking pending call before we block in poll.
650 (check_for_reply_and_update_dispatch_unlocked):
651 Code taken from _dbus_connection_block_pending_call - checks for
652 an already read reply and updates the dispatch if there is one.
654 * test/name-test/test-pending-call-dispatch.c:
655 New test for making sure we don't get stuck polling a
656 dbus connection which has no data on the socket when
657 blocking out of order on two or more pending calls.
659 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
661 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
662 make/automake don't detect that we're talking about the same
663 .lo file if I specify the full path to the source files.
665 2006-02-26 Havoc Pennington <hp@redhat.com>
667 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
669 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
670 session bus variable is unset, suggest "man dbus-launch" and "man
671 dbus-daemon" to figure out how to fix the problem
673 2006-02-25 Havoc Pennington <hp@redhat.com>
675 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
676 should make this thing use the new glib options parser
678 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
680 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
681 .lo files taking moc sources.
683 2006-02-25 Havoc Pennington <hp@redhat.com>
685 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
686 and install it as a public header
688 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
692 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
694 * proxies.py: Fix the callchain
696 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
698 * patch from Sjoerd Simons <sjoerd at debian.org>:
700 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
703 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
704 call _dbus_group_info_free_allocated which causes infinite loop,
705 correctly call _dbus_group_info_free
707 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
709 * qt/qdbusinterface_p.h:
710 * qt/qdbusinterface.cpp: Use the standard
711 org.freedesktop.DBus.Method.NoReply annotation for the "async"
712 calls instead of creating one for us.
714 * qt/qdbusconnection_p.h:
715 * qt/qdbusintegrator.cpp: Remove debugging code.
717 * qt/qdbusintegrator.cpp:
718 * qt/qdbusmessage.cpp:
719 * qt/qdbusmessage_p.h:
720 * qt/qdbusmessage.h: Change the behaviour of automatic
721 reply-sending: now a reply is always sent, unless the caller
722 didn't request one or if the user slot has already sent one.
724 2006-02-16 Robert McQueen <robot101@debian.org>
726 * configure.in: Patch from Debian packages by Sjoerd Simons
727 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
728 arguments so it's possible to build both bindings in the
731 * qt/Makefile.am: Fix truncated value so that make dist works.
733 2006-02-16 Robert McQueen <robot101@debian.org>
735 * acinclude.m4, configure.in: Patch from Brad Hards
736 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
737 improving quoting, re-ordering a few checks, and a few other
740 2006-02-16 Robert McQueen <robot101@debian.org>
742 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
743 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
744 assertion that the next element to read from the iter is fixed in
745 size. This is not the case when you are at the end of the iter,
746 because the next element type is INVALID.
748 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
749 a bogus assert which means that you may not initialise a 0-length
750 string unless you provide a non-NULL pointer. This prevented
751 you from marshalling messages containing zero-length arrays in
754 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
755 from Rob to correct bogus asserts when trying to demarshal an
756 array and get_fixed_array got you 0 elements. Append nothing to
757 the GArray in this case.
759 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
760 an empty array via the glib bindings. Without all of the above
761 patches, this new test fails.
763 2006-02-16 Robert McQueen <robot101@debian.org>
765 * glib/dbus-gmain.c: Make the previous commit compile.
767 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
768 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
769 specify sender_keyword="foo", path_keyword="bar" when adding
770 a signal listener, so that you can bind to signals generically
771 but still do something useful in your callback.
773 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
774 chars so that they're not cast to chars and made negative. Thanks
775 to Jakub Stachowski for reporting this and testing the fix.
777 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
781 (dbus_g_connection_open): new method for openning
782 a connection to an arbitrary address in the glib bindings
784 * ChangeLog: checkin last entry which doesn't seem to be commited
786 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
788 * tools/dbus-launch.c: Fixed sh syntax output
790 2006-02-13 Robert McQueen <robot101@debian.org>
792 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
793 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
794 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
795 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
796 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
797 missing piece of the glib bindings jigsaw puzzle. This modifies
798 the existing specialised types to have N type parameters (rather
799 than the current 1 or 2 for arrays and dictionaries respectively).
800 You can then use this to get a glib type to represent any arbitrary
801 D-Bus struct type using dbus_g_type_get_struct. The only
802 implementation of these types is with GValueArrays as before,
803 but it's now possible to store these in arrays, emit them in
806 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
808 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
809 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
810 <thiago.macieira at trolltech.com>
812 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
814 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
815 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
817 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
819 * bus/connection.c (bus_connections_expect_reply): Make
820 pending reply limit not common to all connections (Bug #5416)
821 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
823 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
825 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
827 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
829 * gcj/Makefile.am: point to correct jar command (Bug #4529)
830 patch from Doug Goldstein <cardoe at gentoo.org>
832 2006-02-09 Joe Shaw <joeshaw@novell.com>
834 * mono/Arguments.cs: Fix a magic number in the mono bindings
835 that doesn't work on 64 bit arches. Patch from Peter Johanson.
837 2006-01-27 Robert McQueen <robot101@debian.org>
839 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
840 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
841 when generating the client-side methods, instead of overloading
842 CSymbol which broke everything horribly. My apologies.
844 2006-01-27 Robert McQueen <robot101@debian.org>
846 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
847 by me and Rob Taylor to add a simple_free function to D-Bus map
848 and collection types, which allows those types which can be freed
849 with a GDestroyNotify (such as GHashTables and GArrays, but not
850 GPtrArrays) to be stored as the values in hashtables.
852 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
853 Patch by Rob Taylor to add nested dicts to the glib tests to check
854 the above code works, and appears not to leak when called repeatedly.
856 2006-01-27 Robert McQueen <robot101@debian.org>
858 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
859 to free a D-Bus allocated string with dbus_free () instead of
862 2006-01-27 Iain Holmes <iain@openedhand.com>
864 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
865 method from being called multiple times.
867 2006-01-19 Robert McQueen <robot101@debian.org>
869 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
870 <rob.taylor@collabora.co.uk> to add support for generating bindings
871 to arrays that are represented as GPtrArrays rather than GArrays (ie
872 size-variable things, such as strings, objects, structs, etc).
874 2006-01-05 Robert McQueen <robot101@debian.org>
876 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
877 <ricardo.kekki@movial.fi> to make it possible to inherit from
878 DBusGProxy, by splitting the DBusGProxy struct into a public part and
879 a private part, and moving the setting of the DBusGProxyManager into a
880 connection property, allowing proper GObject construction.
882 2006-01-05 Robert McQueen <robot101@debian.org>
884 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
885 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
886 annotations when generating glib client bindings.
888 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
890 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
892 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
894 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
896 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
898 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
900 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
902 2005-12-19 Ross Burton <ross@openedhand.com>
904 * doc/dbus-tutorial.xml:
905 Document the Glib client-side bindings, and list all possible annotations.
907 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
909 * dbus/bus.c (dbus_bus_release_name): Add documentation
911 2005-12-06 Robert McQueen <robot101@debian.org>
913 * python/service.py: s/sucessful/successful/ so we're allocating to
914 and reading from the same variable. Oops.
916 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
920 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
922 * test/qt/Makefile.am: build from srcdir
924 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
925 Note - this code is wrong and needs to be fixed by the Qt binding
926 developers. The flags should be treated as bitfields and not enums.
928 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
930 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
932 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
933 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
936 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
938 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
939 method for getting messages off the bus in the absence of a
940 mainloop. This method is much like
941 dbus_connection_read_write_dispatch except it does not dispatch
942 the messages to a registered filter function. Instead it
943 allows a developer to process messages by directly popping
946 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
948 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
949 the parser to continue instead of returning error
950 (bus_desktop_file_load): Do not free parser data when
951 parse_section_start or parse_key_value fails because it was
952 already freed by parser_free (patch from Carlos Garcia Campos
953 <carlosgc at gnome.org>)
955 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
957 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
958 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
959 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
960 test/test-segfault.c, test/test-utils.c,
961 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
962 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
963 Various cleanup of dead code and compiler warnings (patch from
964 Kjartan Maraas <kmaraas at gnome.org>)
966 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
968 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
969 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
971 2005-11-27 Robert McQueen <robot101@debian.org>
973 * python/dbus_bindings.pyx: Repair my previous commit which reverted
974 part of the preceding one. Oops. Merge patch by Johan Hedberg
975 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
976 on big-endian platforms.
978 * test/python/test-client.py: Add some 16-bit integers to the test
981 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
983 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
984 method return message for property getters
986 2005-11-27 Robert McQueen <robot101@debian.org>
988 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
989 with type v of an instance of dbus.Variant(foo, type='x') caused
990 it to be boxed twice before sending over the bus.
992 * python/dbus_bindings.pyx, python/service.py,
993 test/python/test-client.py: Update the constants for the new
994 request_name flags, and update comments/test cases now that queueing
995 is the default action.
997 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1000 - Change version to 0.60 for impending release
1001 - upped the sonames because of ABI and API breakage
1003 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1005 * configure.in: Add test/name-test/Makefile to the generated
1008 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1009 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1010 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1011 not to queue an ower if it can't be the primary owner
1013 * bus/bus.h: Add new internal BusOwner struct
1015 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1016 to bus_registry_ensure and don't set the prohibit_replacement flag
1017 since they are now set per BusOwner and not per name.
1018 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
1019 that returns the list of connections in a name's connection queue
1021 * bus/services.c (struct BusService): remove prohibit_replacement field
1022 (struct BusOwner): new struct for keeping track of queued connections
1023 and their associated flags for the queue
1024 (struct BusRegistry): add a BusOwner memory pool
1025 (bus_registry_new): initialize the BusOwner memory pool
1026 (bus_registry_unref): free the BusOwner memory pool
1027 (_bus_service_find_owner_link): new internal method for
1028 searching the queue for a specific connection
1029 (bus_owner_set_flags): new method for adding setting the flags on a
1031 (bus_owner_new): new method that creates a BusOwner object from the
1032 pool and sets its flags
1033 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1034 (bus_registry_ensure): Add the flags parameter
1035 (bus_registry_acquire_service): Switch from using raw connections to
1036 using the BusOwner struct
1037 Add new state machine for dealing with the new set of flags
1038 (bus_registry_set_service_context_table, struct OwnershipCancelData,
1039 cancel_ownership, free_ownership_cancel_data,
1040 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
1041 restore_ownership, free_ownership_restore_data,
1042 add_restore_ownership_to_transaction): Switch to using BusOwner
1043 instead of raw connections
1044 (bus_service_add_owner): Add flags parameter
1045 Switch to using BusOwner instead of raw connections
1046 Add state machine for dealing with the new set of flags
1047 (bus_service_swap_owner): Swaps the first and second owners in the
1048 queue. Used to make sure proper signals are sent when a service looses
1049 or gains primary ownership. We never insert an owner at the top of the
1050 queue. Instead we insert it in the second position and then swap.
1051 (bus_service_remove_owner): Remove the owner from the queue sending
1052 out the NameLost and NameOwnerChanged signals if the we were the
1054 (bus_service_get_primary_owners_connection): New method that extracts
1055 the connection from the primary owner
1056 (bus_service_get_primary_owner): Returns the BusOwner instead of the
1058 (bus_service_get_allow_replacement): Changed from the old
1059 bus_service_get_prohibit_replacement method. Checks the flags of the
1060 primary owner and returns if it can be replaced or not
1061 (bus_service_set_prohibit_replacement): removed
1062 (bus_service_has_owner): returns TRUE if and owner with
1063 the specified connection exists in the queue
1065 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1066 method that only compiles if tests are enabled. Allows us to get the
1067 unique name of a connection so we can check it against the queue when
1068 doing regression tests
1070 * bus/activation.c (bus_activation_send_pending_auto_activate),
1071 bus/dispatch.c (bus_dispatch),
1072 bus/driver.c (bus_driver_handle_get_service_owner,
1073 bus_driver_handle_get_connection_unix_user,
1074 bus_driver_handle_get_connection_unix_process_id,
1075 bus_driver_handle_get_connection_selinux_security_context),
1076 bus/signals.c (connection_is_primary_owner):
1077 use bus_service_get_primary_owners_connection instead of
1078 bus_service_get_primary_owner
1080 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
1081 _dbus_listen_unix_socket): Calculate the length of the socket
1082 path and use that instead of using a fixed length which was
1083 causing socket names to contain many trailing Nul bytes.
1085 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1086 (dbus_g_method_get_sender): New method for extracting the sender
1087 from a DBusGMethodInvocation
1088 (dbus_g_method_return_get_reply): changed name to
1089 dbus_g_method_get_reply
1090 (dbus_g_method_return_send_reply): changed name to
1091 dbus_g_method_send reply
1093 * doc/dbus-specification.xml: New docs that describe how the new
1094 queueing system works and talks about the changes to the how
1095 we specify socket names
1097 * glib/examples/example-service.c,
1098 glib/examples/example-signal-emitter.c,
1099 glib/examples/statemachine/statemachine-server.c:
1100 Changed the RequestName flags to the new system
1102 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1103 regression test suite for testing various states of the new
1106 2005-11-15 Robert McQueen <robot101@debian.org>
1108 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1109 Taylor to add two methods, dbus_g_method_return_get_reply and
1110 dbus_g_method_return_send_reply, to allow you to get the reply
1111 message from a DBusGMethodInvocation, append arbitrary stuff to it,
1112 and send it. The GLib bindings can't marshal a return value of
1113 something like a(s) if the array is empty - ultimately they should be
1114 made to heed the signature of the out arguments as the Python bindings
1115 now can, but this is a workable interim solution which might have
1118 2005-11-15 Robert McQueen <robot101@debian.org>
1120 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1121 method to org.freedesktop.DBus to release a bus name or give up
1122 waiting in the queue for it.
1124 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1125 dbus_bus_release_name method to send the ReleaseName method calls.
1126 Add constants for the return values to dbus/dbus-shared.h.
1128 * doc/dbus-specification.xml: Document the new ReleaseName method
1129 in the specification.
1131 * python/dbus_bindings.pyx: Add a low-level python binding for the
1132 release name method.
1134 * python/exceptions.py, python/service.py: Make freeing BusName
1135 objects release the name. Add a NameExistsException, and fix a
1136 bug with creating UnknownMethodException.
1138 * test/python/test-client.py: Add tests for freeing BusName
1139 objects causing names to be released.
1141 2005-11-14 Robert McQueen <robot101@debian.org>
1143 * python/service.py: Include the traceback in the error reply when we
1144 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1146 2005-11-14 David Zeuthen <davidz@redhat.com>
1148 Patch from Timo Hoenig <thoenig@suse.de>.
1150 * bus/bus.c: I've recently investigated why the automatic reload
1151 of configuration files does not work as expected.
1153 Currently, reloading configuration files does only work when
1154 running dbus-daemon with --nodaemon. If we are running as daemon
1155 we're hitting a dnotify bug once we fork the process.
1157 We're initializing the dnotify fds before calling fork(). Once
1158 the child process forked it does still have the fds (and they
1159 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1160 getting SIGIO as changes are made to the configuration files.
1162 The attached patch moves the initialization of the dnotify fds to
1163 process_config_postinit(). This is safe for all current code
1164 paths and solves the dnotify disfunction. If we're running
1165 dbus-daemon as daemon the fds for dnotify are now being
1166 initialized after fork() for the child process.
1168 * configure.in: The current configure.in check for dnotify probes
1169 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1170 match for 'xlinux', too. Additionally I have adapted the configure
1171 option's style to match with the others.
1173 2005-11-14 Robert McQueen <robot101@debian.org>
1175 * python/decorators.py, python/service.py: Add a new argument to the
1176 dbus.service.method decorator called sender_keyword, which if set,
1177 specifies the name of an argument which will be provided the bus
1178 name of the method caller.
1180 * test/python/test-client.py, test/python/test-service.py: Add a
1181 method and test to check the sender_keyword functionality.
1183 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1185 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1186 empty reply so blocking calls don't block forever (Patch from Sjoerd
1187 Simons <sjoerd at luon.net>)
1189 * AUTHORS: Add Robert McQueen for his work on the Python
1190 Bindings and other parts of D-Bus
1192 2005-11-07 Robert McQueen <robot101@debian.org>
1194 * python/decorators.py: Change emit_signal function to use the
1195 signature annotation of the signal when marhsalling the arguments from
1196 the service. Fix a bug where the code checking signature length
1197 against argument length referenced the wrong variable.
1199 * python/introspect_parser.py: Avoid adding the type signature of
1200 signal arguments to any methods which occur after them in the
1201 introspection data (!) by making the parser a little more careful
1202 about its current state.
1204 * python/service.py: Remove debug prints from last commit (again :D).
1206 * test/python/test-client.py, test/python/test-service.py: Add test
1207 signals with signature decorators to test the strict marshalling code
1208 gives errors at the right time. Could do with checking the signals
1209 actually get emitted too, given that the test does nothing with
1210 signals at the moment...
1212 2005-11-07 Robert McQueen <robot101@debian.org>
1214 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1215 instances to stop madness of creating new instances representing
1216 the same bus connection all the time, rendering any tracking of
1217 match rules and bus names quite meaningless. Caught a bug where
1218 the private argument to SessionBus() and friends was being passed
1219 in as use_default_mainloop by mistake. Still some problems with
1220 multiple dbus_binding.Connection instances representing the same
1221 low-level connection (eg when you use both SessionBus() and
1222 StarterBus() in same process), but it's a lot better now than it
1225 * python/dbus_bindings.pyx: Add constants with the return values
1226 for bus_request_name().
1228 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1229 and retrieve the same instances for the same name, so deletion can be
1230 done with refcounting. Also now throws some kind of error if you
1231 don't actually get the name you requested, unlike previously...
1233 * test/python/test-client.py: Add tests for instance caching of buses
1234 and bus name objects.
1236 2005-11-04 Robert McQueen <robot101@debian.org>
1238 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1239 marshalling of boolean values. Add some booleans to the values in
1242 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1243 argument to the dbus.service.method decorator, which allows you to
1244 name arguments to take two callback functions for replying with
1245 return values or an exception.
1247 * test/python/test-client.py, test/python/test-service.py: Add test
1248 case using asynchronous method reply functions, both return values and
1249 errors, and from within both the function itself and from a mainloop
1252 * python/decorators.py, python/service.py: Perform checking that the
1253 number of method/signal arguments matches the number of types in the
1254 signature at class loading time, not when you first introspect the
1257 * python/service.py: Remove debug print left by the last commit.
1259 2005-11-03 Robert McQueen <robot101@debian.org>
1261 * python/service.py: Heavy refactoring of method invocation, with
1262 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1263 in favour of a new _message_cb that uses seperate functions for
1264 looking up the method to call, marshalling the return values, and
1265 sending exceptions as errors, and is easier to follow as a
1266 consequence. Fixes some corner cases about returning things that
1267 don't match your declared out_signature, allows exceptions to define
1268 _dbus_error_name and have it be sent over the bus as the error name,
1269 and paves the way for cool stuff like heeding the message no reply
1270 flag, asynchronous method implementations, informing the method of the
1271 sender, and including backtraces in the error messages.
1273 * test/python/test-client.py: Catch and print exceptions thrown in the
1274 async callback tests, rather than passing them to the low-level
1275 bindings to be ignored in a noisy and frustrating manner.
1277 2005-11-03 Robert McQueen <robot101@debian.org>
1279 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1280 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1281 tweak others to be consistent.
1283 * test/python/test-client.py: Tweak output of testInheritance.
1285 2005-10-29 Robert McQueen <robot101@debian.org>
1287 * python/service.py: Major changes to allow multiple inheritance
1288 from classes that define D-Bus interfaces:
1290 1. Create a new Interface class which is the parent class of
1291 Object, and make the ObjectType metaclass into InterfaceType.
1293 2. Patch written with Rob Taylor to replace use of method_vtable
1294 with code that walks the class's __MRO__ (method resolution order)
1295 to behave like Python does when invoking methods and allow
1296 overriding as you'd expect. Code is quite tricky because
1297 we have to find two methods, the one to invoke which has the
1298 right name and isn't decorated with the /wrong/ interface,
1299 and the one to pick up the signatures from which is decorated
1300 with the right interface.
1302 The same caveats apply as to normal multiple inheritance -
1303 this has undefined behaviour if you try and inherit from two
1304 classes that define a method with the same name but are
1305 decorated with different interfaces. You should decorate
1306 your overriding method with the interface you want.
1308 3. Replace grungy introspection XML generation code in the metaclass
1309 with dictionaries that cope correctly with multiple inheritance
1310 and the overriding of methods. This also uses the signature
1311 decorations to provide correct introspection data, including
1312 the debut appearance of the types of your return values. :D
1314 * test/python/test-client.py, test/python/test-service.py: Add a test
1315 case to try invoking an method that overrides one inherited from a
1316 D-Bus interface class.
1318 2005-10-29 Robert McQueen <robot101@debian.org>
1320 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1321 Add checking for the end of struct character when marshalling a
1322 struct in MessageIter.append_strict.
1324 * python/examples/example-service.py,
1325 python/examples/gconf-proxy-service.py,
1326 python/examples/gconf-proxy-service2.py: Update to use gobject
1327 mainloop directly rather than appearing to depend on gtk.
1329 * python/test/test-client.py, python/test/test-server.py: Remove
1330 obsolete and broken test scripts for old bindings. We have up to date
1331 and working tests in test/python/.
1333 2005-10-29 Robert McQueen <robot101@debian.org>
1335 * python/decorators.py: Add optional arguments to the method and
1336 signal decorators to allow you to specify the signature of arguments
1337 and return values. Preserve the doc strings of signal functions in the
1338 decorated version, for pydoc and friends.
1340 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1341 parse_signature_block function with an iterable dbus.Signature()
1342 type. Fix a bug in MessageIter.append_strict where you could append
1343 anything by claiming it was a string.
1345 * python/service.py: Use the out_signature decoration on methods to
1346 marshal return values, meaning you no longer require dbus.Array()
1347 or dbus.Dictionary() to indicate the type when returning empty
1348 arrays or dictionaries. Fix a bug where exceptions which are defined
1349 in __main__ are not turned into error replies.
1351 * test/python/test-client.py, test/python/test-service.py: Add test
1352 for correct marshalling of return values according to out_signature.
1353 Fix a bug in the async call test where the error_handler is missing a
1356 2005-10-29 Robert McQueen <robot101@debian.org>
1358 * glib/Makefile.am, glib/examples/Makefile.am,
1359 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1360 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1362 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1364 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1365 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1368 2005-10-27 Ross Burton <ross@openedhand.com>
1370 * dbus/dbus-marshal-header.c:
1373 * glib/dbus-gobject.c:
1374 Stop compiler warning.
1376 2005-10-25 Ross Burton <ross@openedhand.com>
1379 * dbus/dbus-server-unix.c:
1380 * dbus/dbus-transport-unix.c:
1381 * glib/dbus-gmain.c:
1382 * glib/dbus-gobject.c:
1383 Add some const keywords.
1385 2005-10-25 Ross Burton <ross@openedhand.com>
1387 * doc/dbus-specification.xml:
1388 Document the NoReply annotation.
1390 * glib/dbus-binding-tool-glib.h:
1391 * glib/dbus-binding-tool-glib.c:
1392 Respect the NoReply annotation.
1394 2005-10-24 Robert McQueen <robot101@debian.org>
1396 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1397 derive from unicode instead of str, and encode/decode UTF-8 when
1398 marshalling/unmarshalling bus messages
1400 * python/introspect_parser.py: encode introspection data as UTF-8
1401 before passing the buffer into libxml2
1403 * test/python/test-client.py: add unicode test strings
1405 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1406 ignore generated python test files
1408 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1410 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1411 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1412 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1414 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1415 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1416 when constructing struct signatures
1418 * python/_dbus.py (Bus): handle private connections using the
1419 private keyword in the constructor. defaults to private=False
1420 (Bus::close): new method to close a connection to the bus
1422 * python/dbus_bindings.pyx (Connection::close): renamed method
1423 was previously called disconnect
1424 (bus_get): now supports getting a private connection
1426 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1427 keyword is set to True. if it is, execute the method without waiting
1429 (ProxyObject::_introspect_execute_queue): new method for executing
1430 all the pending methods that were waiting for the introspect to
1431 finish. this is called when introspect either succeeds or fails
1432 (ProxyObject::_introspect_error_handler): call queued methods
1434 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
1436 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1437 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1439 * python/service.py (Object::_message_cb): handle exceptions correctly
1440 by sending them over the wire to the calling app. This makes sure
1441 the client returns immediately instead of waiting the 15 seconds to
1444 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
1445 Add a test to benchmark how long it takes to introspect a service and
1446 call a method which returns a large element (pretty fast)
1448 * test/python/test-service.py (TestObject::GetComplexArray): new test
1449 method which pushes a lot of data
1451 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1453 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
1454 reclaim memory outside of the loop and use del istead of just setting
1457 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1459 * python/service.py (ObjectType::_reflect_on_signal): Always close
1460 signal tag even when there are no arguments
1462 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1464 * configure.in: Set mono, mono-docs and Qt3 to default
1465 to no instead of auto when building. These bindings do not
1466 have full time maintainers and will not be supported for the
1469 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
1471 patches from Michael Krivoruchko <misha at sun.com>:
1473 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1474 _dbus_connection_message_sent,
1475 _dbus_connection_send_preallocated_unlocked_no_update,
1476 _dbus_connection_pop_message_link_unlocked): handle the case when path
1477 is NULL when calling _dbus_verbose
1479 * configure.in: check for functions getpeerucred and getpeereid
1481 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
1482 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
1483 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
1484 Patch was only tested on Solaris 10 x86 so it might be issues
1485 with other platforms (i.e. BSDs and MacOSX)
1488 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
1490 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
1491 instead of marshal basic so we can handle recursive types in a variant
1493 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1496 * test/glib/test-service-glib.c, test-service-glib.xml
1497 (my_object_echo_variant [EchoVariant],
1498 my_object_process_variant_of_array_of_ints123
1499 [ProcessVariantOfArrayOfInts123]):
1500 Add two test methods
1502 * python/introspect_parser.py: New module for parsing introspect
1505 * python/dbus_bindings.pyx:
1506 (various places): when throwing errors fix to use errormsg instead
1507 of message local variable because Pyrex can get confused with other
1508 message variables (initial patch by Robert McQueen
1509 <robert.mcqueen at collabora.co.uk>)
1510 (MessageIter::parse_signature_block): new method for getting the next
1511 block in a signiture.
1512 (MessageIter::append_strict): new method for appending values strictly
1513 using the passed in signature instead of guessing at the type
1514 (MessageItter:: append_dict, append_struct, append_array): use
1515 signatures to marshal children if the signature is available
1517 * python/exceptions.py (IntrospectionParserException): new exception
1519 * python/proxies.py (ProxyMethod::__call__): Marshal args with
1520 introspected signatures if available, else we fall back to the
1521 old way of doing things.
1522 (ProxyObject::_introspect_reply_handler ): parse introspection data
1524 * python/service.py (ObjectType::_reflect_on_method): Properly
1525 terminate <method> if there are no args in the reflection data
1527 * test/python/test-client.py: add tests for talking with the GLib
1528 test server. This gives us better coverage for introspection since
1529 python to python will always generate arguments as variants. It also
1530 allows us to test the robustness of the GLib bindings and interlanguage
1534 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
1536 * bus/driver.c (bus_driver_handle_introspect): Add signals
1537 to the introspect data. (patch from Daniel P. Berrange
1538 <dan at berrange.com>)
1540 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1542 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1543 _dbus_connection_run_builtin_filters): Changed these to
1544 be unlock_no_update functions and call
1545 _dbus_connection_send_unlocked_no_update instead of
1546 dbus_connection_send to avoid locking errors.
1548 * doc/TODO: Removed the make Ping test TODO
1550 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1552 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1553 We now copy the message from a DBusError and then free
1554 the error object befor throwing the error
1556 * glib/dbus-glib-tool.c: removed extra comma at the end of the
1557 DBusBindingOutputMode enum which was causing a warning.
1558 #include <time.h> so using time_t is explicitly defined
1560 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1562 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1564 (internal_bus_get): new method that take over the heavy lifting
1565 of dbus_bus_get and adds the ability to get a private connection
1567 (dbus_bus_get): wrapper to internal_bus_get that provides the same
1568 interface as in previous versions
1569 (dbus_bus_get_private): new method that is a wrapper to
1570 internal_bus_get to get a private connection to the bus
1573 (dbus_bus_get_private): add as a public libdbus interface
1575 - dbus-1.pc.in: output system_bus_default_address and
1576 sysconfdir variables so apps can use them when compiling
1578 2005-09-23 Harald Fernengel <harry@kdevelop.org>
1579 * dbus/qt: New Qt bindings
1581 2005-09-12 Waldo Bastian <bastian@kde.org>
1583 * dbus/dbus-marshal-validate.c,
1584 doc/dbus-specification.xml, test/Makefile.am,
1585 test/test-names.c: allow hyphens in bus names.
1587 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1589 * test/data/auth/fallback.auth-script: we don't
1590 retry the EXTERNAL method when we know its going
1593 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1595 * dbus/dbus-connection-internal.h: rename
1596 (add|remove|toggle)_(watch|timeout) to unlocked()
1598 * dbus/dbus-connection.c: ditto.
1600 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1601 Update some callers for the renaming.
1603 2005-09-10 Mark McLoughlin <mark@skynet.ie>
1605 * dbus/dbus-auth.c: (record_mechanisms): don't
1606 retry the first auth mechanism because we know
1607 we're just going to get rejected again.
1609 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1610 Fix thinko ... and what a nasty little bugger to
1611 track down you were ...
1613 * dbus/dbus-connection.c:
1614 (_dbus_connection_add_watch),
1615 (_dbus_connection_remove_watch): add note about
1616 these needing the connection to be locked.
1617 (_dbus_connection_get_dispatch_status_unlocked):
1618 set status to DATA_REMAINS when we queue the
1619 disconnected message.
1622 (bus_dispatch): fix warning.
1623 (check_existent_service_no_auto_start):
1624 Expect ChildSignaled error too.
1625 (check_existent_hello_from_self): fix another
1628 2005-09-08 Joe Shaw <joeshaw@novell.com>
1630 Patches from James Willcox <snorp@snorp.net>
1632 * mono/Makefile.am: Add Int16.cs and UInt16.cs
1634 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1635 support array "out" parameters.
1637 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1638 for 16-bit int support.
1640 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
1644 * Patch from Steve Grubb:
1645 - bus/activation.c (bus_activation_service_reload_test): clean up
1647 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
1648 - dbus/dbus-message-factory.c (generate_special): fix a couple of
1649 buffer overflows in the test suite. This is non critical because
1650 it can not be exploited and this code is only run when doing a
1653 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1654 - configure.in: Don't check and link against kdecore, only qt headers
1655 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1656 - gcj/org/freedesktop/dbus/Makefile.am:
1657 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1658 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1659 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1660 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1661 - tools/Makefile.am: Add platform extentions to binaries
1662 (i.e. .exe on windows)
1665 - Make it so if no suitable version of python is found we only
1666 disable building python instead of exiting the configure script
1667 - Require version 2.4 of glib for glib bindings
1668 - Up version to 0.50
1670 * python/__init__.py: Sync version with libdbus to (0,50,0)
1672 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1674 * dbus/dbus-object-tree.c (find_subtree_recurse):
1675 a couple of optimizations (bug #710):
1676 - do a binary search in the tree
1677 - insert a new child at the right place directly, no need for
1679 - do the "double alloc" thing when allocating children
1681 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
1683 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1685 * python/dbus_bindings.pyx: Memory management foo
1686 (global): remove hacky _user_data_references global list
1687 (GIL_safe_cunregister_function_handler): userdata now stuffed into
1688 tuples. Unref user_data
1689 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1690 (Connection::__del__): Remove and replace with __dealloc__ method
1691 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
1692 to keep tuple from being deallocated instead of the global var hack
1693 (Connection::register_object_path): Stuff user_data into a tuple.
1694 Use Py_INCREF to keep tuple from being deallocated instead of the
1696 (Connection::register_fallback): Stuff user_data into a tuple.
1697 Use Py_INCREF to keep tuple from being deallocated instead of the
1699 (GIL_safe_pending_call_notification): Don't unref the message
1700 because it gets unreffed when going out of scope. Py_XDECREF
1702 (PendingCall::__del__): Remove and replace with __dealloc__ method
1703 (PendingCall::set_notify): ref the pending call because we will
1704 need it to stick around for when the notify callback gets called
1705 (Message::__del__): Remove and replace with __dealloc__ method
1707 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
1708 gthreads_init to match up with the dbus call
1710 * python/glib.py (init_threads): Changed to threads_init to match
1711 up with gobject.threads_init(). init_threads is kept for backwards
1712 compat but will most likely be deprecated in the future
1714 * test/python/test-client.py:
1715 - revamp to use Python's unittest functionality
1716 - add async call tests
1717 - setup threads in glib and dbus so we make sure locks are working
1719 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1721 * python/dbus_bindings.pyx
1722 (_pending_call_notification, cunregister_function_handler,
1723 cmessage_function_handler): All callback functions have been rearranged
1724 to workaround a bug in Pyrex when working with the GIL which is Python's
1725 global lock when dealing with threads. They have been split into
1726 a wrapper function (which assumes the name of the old function) and
1727 a _GIL_safe_<function name> function which contains the functionality
1728 of the old function. This ensures that Pyrex does not write code
1729 the lock is released.
1732 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1734 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1735 GIL global lock when calling back into Python
1737 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
1741 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1743 * bus/policy.c (bus_policy_allow_user): change default "user is
1744 allowed" to be "user has same uid as the bus itself"; any
1745 allow/deny rules will override.
1747 * bus/session.conf.in: don't allow all users, since now by default
1748 the user that ran the bus can connect.
1750 2005-08-26 Colin Walters <walters@verbum.org>
1752 * tools/dbus-print-message.c (print_message): Flush stdout
1753 after printing a message, so that redirecting to a file, then
1754 hitting Ctrl-C works.
1756 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
1758 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1759 (EmptyMessage): new class that subclasses Message. This is a workaround
1760 to a Pyrex bug that fails to call __del__ when the Message object goes out
1761 of scope. For some reason subclassing Message fixes this bug
1762 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1763 - s/Message(_create=0)/EmptyMessage everywhere else
1765 * test/python/test-{server|client}.py: add the python/.libs directory
1766 to the lookup path so dbus_bindings and dbus_glib_bindings don't
1767 get picked up from the system
1769 2005-08-25 Colin Walters <walters@verbum.org>
1771 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1772 to Ryan Lortie for the suggestion.
1774 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1776 * test/python: Add python regression test
1778 * configure.in: Add test/python/Makefile
1780 * test/Makefile.am: Add the python directory to SUBDIRS
1782 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1787 (Interface::connect_to_signal): propigate keywords for match on args
1788 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1790 * python/proxies.py (ProxyObject::connect_to_signal):
1791 propigate keywords for match on args
1793 * Makefile.am: point everything to pyexecdir since python borks
1796 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1800 2005-08-23 Colin Walters <walters@verbum.org>
1802 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1804 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1806 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1807 to fix some wranings. We now use dbus_bindings.DBusConnection instead
1808 of defining DBusConnection ourselves.
1810 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
1812 * python/dbus.pth: New path file to fix up problems when installing
1813 c libraries to lib64 and python files to lib.
1815 * python/Makefile.am: install dbus.pth in the correct spot
1817 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
1818 * ChangeLog: clean up my last entry a bit
1820 * doc/introspect.xsl: New stylesheet for converting introspection data
1821 into browser renderable xhtml. Contributed by Lennart Poettering.
1823 * doc/introspect.dtd: Fixups in the introspect format from Lennart
1826 * doc/dbus-tutorial.xml:
1827 - Add Colin Walter to the Authors section for authoring the GLib
1829 - Add descriptions of the new signature and type functionality
1830 in the Python complex type mapping section
1831 - Add a sidenote on the new args matching functionality in
1833 - Fixed up some of the examples to use the gobject.MainLoop
1837 (Bus::_create_args_dict): New. Converts a hash of arg matches
1838 to a more useable format
1839 (Bus::add_signal_receiver): add a **keywords parameter for catching
1840 arg match parameters
1841 (Bus::remove_signal_receiver): add a **keywords parameter for catching
1842 arg match parameters
1844 * python/matchrules.py:
1845 (MatchTree::exec_matches): Check for arg matches
1846 (SignalMatchRule::add_args_match): New method
1847 (SignalMatchRule::execute): Added args_list parameter as an optimization
1848 so we don't have to marshal the args more than once
1849 (SignalMatchRule::match_args_from_list): New method that checks to see
1850 if the rule's arg matches match an argument list. Only arguments
1851 set in the rule are checked.
1852 (SignalMatchRule::match_args_from_rule): New method that checks to see
1853 if the rule's arg matches match another rule's. All args have to match
1854 in order for this method to return true. If either rule has more args
1855 then it is not a match.
1856 (SignalMatchRule::is_match): Add args match
1857 (SignalMatchRule::repr): Add args to the final output if they exist
1859 2005-08-17 Ross Burton <ross@burtonini.com>
1861 * glib/dbus-gproxy.c:
1862 (dbus_g_proxy_call_no_reply): unref the message once sent.
1863 (dbus_g_proxy_call): protect against NULL proxy.
1865 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
1867 * python/__init__.py: Version updated (0, 43, 0)
1869 * python/dbus_bindings.pyx:
1870 - Fixed type objects to have self passed into __init__
1871 - Added the Variant type
1872 - Add the ability to specify types or signatures for Array, Variant
1874 (Connection::send_with_reply_handlers): return a PendingCall object
1875 (_pending_call_notification): handle the case when an error is returned
1876 without an error message in the body
1877 (MessageIter::get_boolean): return True or False instead of an integer
1878 (MessageIter::python_value_to_dbus_sig): add direct checking of types
1879 and add checks for objects with embeded signatures or types (Array,
1880 Variant and Dictionary)
1881 (MessageIter::append_byte): handle case when the value is a dbus.Byte
1882 (MessageIter::append_dict): handle embeded types or signatures
1883 (MessageIter::append_array): handle embeded types or signatures
1884 (MessageIter::append_variant): new method
1886 * python/proxies.py:
1887 (DeferedMethod): New. Dummy executable object used when queuing calls
1888 blocking on introspection data
1889 (ProxyMethod::__call__): add the timeout keyword for specifying longer
1890 or shorter timeouts for method calls
1891 (ProxyObject): Add first pass at an introspection state machine
1892 (ProxyObject::__init__): Add introspect keyword for turing off an on
1894 (ProxyObject::_Introspect): Internal Introspect call that bypasses
1895 the usual mechanisms for sending messages. This is to avoid a deadlock
1896 where the Intospect call would be queued waiting for the Introspect
1898 (ProxyObject::_introspect_reply_handler): New. This method is called
1899 when introspection returns with no error
1900 (ProxyObject::_introspect_error_handler): New. This method is called
1901 when introspection encounters an error
1902 (ProxyObject::__getattr__): Code to handle different introspection
1903 states. Queue async calls or block blocking calls if we are
1904 introspecting. Pass through as normal if we are not or are done with
1907 * python/service.py: Import signal and method from decorators.py
1909 * python/types.py: Add Variant type
1911 2005-08-16 Colin Walters <walters@verbum.org>
1913 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1914 DBusError message is NULL.
1916 2005-08-09 Havoc Pennington <hp@redhat.com>
1918 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1919 malloc'd copy of the name parameter
1921 2005-08-09 Havoc Pennington <hp@redhat.com>
1923 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1924 warning if the reply serial is set to 0
1926 2005-08-04 Colin Walters <walters@verbum.org>
1928 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1929 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1930 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1931 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1932 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1933 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1934 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1935 * glib/dbus-gvalue.h (dbus_g_value_types_init)
1936 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1937 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1939 Prefix name with _ to ensure they're not exported. All callers
1942 * glib/dbus-gvalue.c (typecode_to_gtype)
1943 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1944 (signature_iter_to_g_type_dict)
1945 (signature_iter_to_g_type_array)
1946 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1947 (dbus_gtypes_from_arg_signature):
1948 Move to dbus-gsignature.c.
1950 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1951 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1952 (dbus_binding_tool_output_glib_client): Ditto.
1954 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1955 and dbus-gsignature.h
1957 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1960 2005-08-03 Colin Walters <walters@verbum.org>
1962 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1963 catch any incompatible changes accidentally made.
1965 2005-08-03 Havoc Pennington <hp@redhat.com>
1967 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1968 typo, from Julien Puydt
1970 * bus/connection.c (bus_connection_disconnected): we were always
1971 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1973 2005-08-01 Colin Walters <walters@verbum.org>
1975 Patch from Joe Markus Clarke:
1977 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1980 2005-08-01 Colin Walters <walters@verbum.org>
1982 Patch from Joe Markus Clarke:
1984 * tools/dbus-send.c (main):
1986 Don't use C99 style initializers (bug #3933).
1988 2005-08-01 Colin Walters <walters@verbum.org>
1990 Patch from Joe Markus Clarke:
1992 * glib/dbus-gvalue.c (dbus_g_value_types_init):
1993 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
1994 * glib/dbus-gobject.c (write_interface):
1996 Don't use C99 style initializers (bug #3933).
1998 2005-07-31 Havoc Pennington <hp@redhat.com>
2000 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2001 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2003 2005-07-30 Havoc Pennington <hp@redhat.com>
2005 * fix a bunch of Doxygen warnings and mistakes
2007 2005-07-30 Havoc Pennington <hp@redhat.com>
2009 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2010 DBUS_BUILD_TESTS since it's now used in production code
2012 2005-07-29 Havoc Pennington <hp@redhat.com>
2014 * test/glib/test-profile.c (write_junk): initialize the junk
2015 buffer so valgrind doesn't have a breakdown
2017 2005-07-29 Havoc Pennington <hp@redhat.com>
2019 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2020 (match_rule_matches): remove unused arg
2021 (test_matching): add tests for match_rule_matches()
2023 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2024 do arg0='foo' arg5='bar' in the match rules
2025 (match_rule_matches): don't match if the arg0='foo' doesn't match.
2027 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2029 2005-07-29 Ross Burton <ross@openedhand.com>
2031 * dbus/dbus-connection.c:
2032 Don't create a DBusCondVar which is never used.
2034 2005-07-27 Ross Burton <ross@openedhand.com>
2036 * dbus/dbus-message.c:
2037 Reduce the size of the maximum cached message to 10K.
2039 2005-07-25 Ross Burton <ross@openedhand.com>
2041 * glib/dbus-gproxy.c:
2042 Remove matches when all proxies are unregistered.
2044 2005-07-24 Colin Walters <walters@verbum.org>
2046 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2047 typedata; recursive arrays won't have it.
2049 * test/glib/test-dbus-glib.c:
2050 * test/glib/test-service-glib.c:
2051 * test/glib/test-service-glib.xml: Add recursive arrays tests.
2053 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
2055 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2056 proxies.py, service.py: Cleanup of code after running it through the
2057 pyflakes code checker mostly dealing with undefined names.
2058 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2060 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2062 * NEWS: Update to 0.35.2
2064 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2066 * python/_dbus.py: Remove import of the dbus.services
2067 module as it no longer exists (patch from Dimitur Kirov)
2069 * python/service.py (Object::__init__): Fixed typo
2070 s/name/bus_name (patch from Dimitur Kirov)
2072 * python/examples/example-signal-emitter.py: import dbus.glib
2073 to get the main loop and use glib mainloop instead of gtk so
2074 X doesn't have to be running.
2076 * python/examples/example-signal-recipient.py: import dbus.glib
2077 to get the main loop and use glib mainloop instead of gtk so
2078 X doesn't have to be running. Import the decorators module
2081 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
2082 didn't pick up on but are needed to build
2084 * configure.in: upped version to 0.35.2
2086 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2087 added Colin Walters' SELinux API rename patch from head
2088 s/unix sercurity context/selinux security context/
2090 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
2092 * python/Makefile.am: dbus_binding.pxd.in should be included
2093 in EXTRA_DIST not dbus_binding.pxd
2094 fix up $(srcdir) hopefully for the last time
2096 * NEWS: Update to 0.35.1
2098 2005-07-16 Colin Walters <walters@verbum.org>
2100 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2101 from bus_driver_handle_get_connection_unix_security_context. Update for
2103 (message_handlers): Update for renames.
2105 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2106 _dbus_string_init failure correctly.
2107 (bus_selinux_append_context): Convert SID to context. Append it
2109 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2112 * bus/selinux.h: Update prototype.
2114 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2115 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2117 2005-07-15 Colin Walters <walters@verbum.org>
2119 * doc/TODO: Add note about convenience wrappers.
2121 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2123 * NEWS: Update to 0.35
2125 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2127 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2128 so distcheck doesn't fail
2130 * glib/examples/Makefile.am: Add example-service.xml and
2131 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2133 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2134 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2136 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2137 compiler looks in the right places during distcheck
2139 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2141 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2144 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2146 * python/examples/example-service.py,
2147 python/examples/example-signal-emitter.py: Fixed up examples
2150 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2152 * python/__init__.py: Upped to version (0,42,0) because of
2155 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2157 * ChangeLog: fix date in last entry
2159 * configure.in, bus/system.conf.in: add the ability to configure
2160 the system bus user at compiletime with the --with-dbus-user flag
2161 (patch from Kristof Vansant)
2163 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2165 * bus/dispatch.c, test/test-service.c: Add testcase
2166 for sending messages to oneself (TODO item).
2168 * python/service.py (class Object): Swap ordering of bus_name
2169 and object_path parameters to better support inheritance.
2171 * doc/dbus-tutorial.xml: change Python docs to reflect change
2172 in parameter ordering and fix the inheritance section.
2174 * doc/TODO: remove sending message to oneself TODO item
2176 2005-07-15 Ross Burton <ross@openedhand.com>
2178 * glib/dbus-gproxy.c:
2179 Fix a leak when calling methods via the proxy.
2181 2005-07-15 Colin Walters <walters@verbum.org>
2183 * bus/selinux.c (bus_selinux_append_context): Wrap in
2186 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2188 * python/_dbus.py (Bus::remove_signal_receiver):
2189 don't add a callback to the match if none has been passed in
2191 * python/matchrules.py (SignalMatchTree::remove): if the rule
2192 being matched does not have a callback treat it as a wildcard
2195 * doc/dbus-tutorial.xml: Add Python tutorial
2197 2005-07-14 Colin Walters <walters@verbum.org>
2200 (bus_driver_handle_get_connection_unix_security_context): New function.
2201 (message_handlers): Add.
2203 * bus/selinux.c (bus_selinux_append_context): New function; appends
2204 security context to message.
2206 * bus/selinux.h: Prototype.
2208 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2210 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2212 * bus/activation.c: clean up all tabs to be 8 spaces
2213 (bus_activation_activate_service): make sure we clean up
2216 * bus/dispatch.c: clean up all tabs to be 8 spaces
2217 (check_shell_fail_service_auto_start): New function
2218 tests to make sure we get fail properly when trying to auto start a service
2219 with a faulty command line
2220 (check_shell_service_success_auto_start): New function tests to make sure
2221 auto started services get the arguments on the command line
2223 * test/test-shell-service.c: Added service for testing auto-starting with
2224 command line arguments
2226 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2227 test/data/valid-service-files/debug-shell-echo-success.service.in:
2228 Added service files for testing auto-starting with command line arguments
2230 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2232 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2234 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2236 * dbus/Makefile.am: added new files to build.
2238 * bus/activation.c (bus_activation_activate_service): support
2239 activation commands with parameters.
2241 * test/shell-test.c: added test program for the shell parsing
2244 2005-07-13 David Zeuthen <davidz@redhat.com>
2246 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2247 64 bit signed and unsigned parameters
2249 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2251 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2253 * python/service.py (class Name): renamed BusName to make it clearer
2254 what the object is for (a name on the bus)
2256 * python/examples/example-service.py,
2257 python/examples/example-signal-emitter.py: change the Name object to
2260 2005-07-12 Colin Walters <walters@verbum.org>
2262 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2264 * tools/dbus-launch.c: Include sys/select.h.
2266 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2267 * python/dbus_bindings.pyx.in: removed
2269 * python/dbus_bindings.pyx: Added.
2270 - Fixed some memleaks (patch from
2271 Sean Meiners <sean.meiners@linspireinc.com>)
2272 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2273 own pxd file (Pyrex definition)
2274 - Broke out glib dependancies into its own pyx module
2276 * python/dbus_bindings.pdx: Added.
2277 - Defines C class Connection for exporting to other modules
2279 * python/dbus_glib_bindings.pyx: Added.
2280 - New module to handle lowlevel dbus-glib mainloop integration
2282 * python/glib.py: Added.
2283 - Registers the glib mainloop when you import this module
2285 * python/services.py: Removed (renamed to service.py)
2287 * python/service.py: Added.
2288 - (class Server): renamed Name
2290 * python/__init__.py: Bump ro version (0,41,0)
2291 -don't import the decorators or service module
2292 by default. These now reside in the dbus.service namespace
2294 * python/_dbus.py (Bus::__init__): Add code run the main loop
2295 setup function on creation
2297 * python/examples/example-service.py,
2298 python/examples/example-signal-emitter.py: update examples
2300 * python/examples/gconf-proxy-service.py,
2301 python/examples/gconf-proxy-service2.py: TODO fix these up
2303 * doc/TODO: Addition
2304 - Added a Python Bindings 1.0 section
2305 - added "Add match on args or match on details to match rules"
2308 2005-07-12 Colin Walters <walters@verbum.org>
2310 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2311 (statemachine-glue.h):
2312 * glib/examples/Makefile.am (example-service-glue.h)
2313 (example-signal-emitter-glue.h):
2314 * glib/Makefile.am (dbus-glib-error-switch.h):
2315 Add libtool --mode=execute so we use the built library instead
2316 of any installed one.
2318 2005-07-11 Colin Walters <walters@verbum.org>
2320 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2321 (dbus_g_value_types_init): Remove assertion.
2322 (dbus_g_value_get_g_type, dbus_g_value_open)
2323 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2324 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2325 functions related to DBusGValue. Now we marshal/demarshal
2326 structures as GValueArray.
2327 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2329 (signature_iter_to_g_type_array): Don't call
2330 signature_iter_to_g_type_struct.
2331 (signature_iter_to_g_type_struct): Delete.
2332 (dbus_gvalue_to_signature): Delete.
2333 (dbus_gvalue_to_signature): New function with same name as other
2334 one; we can convert structures to signatures.
2335 (demarshal_valuearray): New function.
2336 (get_type_demarshaller): Use it.
2337 (demarshal_recurse): Delete.
2338 (marshal_proxy): New function.
2339 (marshal_map): Warn if we can't determine signature from type.
2340 (marshal_collection_ptrarray): Ditto.
2341 (marshal_collection_array): Ditto.
2342 (get_type_marshaller): Use marshal_valuearray.
2343 (marshal_recurse): Delete.
2344 (_dbus_gvalue_test): Add some tests.
2346 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2347 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2348 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2349 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2350 (dbus_g_value_free): Remove prototypes.
2352 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2355 * glib/examples/example-service.c:
2356 * glib/examples/example-client.c: Implement GetTuple.
2358 * test/glib/test-dbus-glib.c:
2359 * test/glib/test-service-glib.c:
2360 * test/glib/test-service-glib.xml: Add structure tests.
2362 2005-07-10 Colin Walters <walters@verbum.org>
2364 * doc/TODO: Knock off some GLib items with this patch.
2366 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2367 (_dbus_gvalue_signals_error): New functions.
2369 * glib/dbus-gvalue-utils.h: Prototype them.
2371 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2372 and change to not output const/retval flags for input args. All
2374 (invoke_object_method): Refactor to handle return values. Add
2375 some more comments in various places. Remove debug g_print.
2377 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2379 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2381 (compute_gsignature): New function; refactored from code from
2382 compute_marshaller and compute_marshaller_name. Enhance to
2383 handle return values and async ops more cleanly. Update for
2384 async ops returning NONE instead of BOOLEAN.
2385 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2386 and output appropriate string.
2387 (generate_glue): Handle return value annotation. Also don't dump
2388 constness flag for input arguments.
2390 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2391 files shared between installed library and utilities.
2392 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2393 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2394 binding tool can access gtype utility functions.
2396 * test/glib/test-service-glib.c:
2397 * test/glib/test-service-glib.xml:
2398 * test/glib/test-dbus-glib.c: Add some tests for return values.
2400 2005-07-09 Colin Walters <walters@verbum.org>
2402 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2403 argument if available, not method.
2405 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2406 (invoke_object_method): First, remove some redundant
2407 GValues (object_value, error_value) in favor of working on
2408 array directly. Second, rework constness to be less buggy.
2409 Now we iterate directly over the argument metadata instead
2410 of parallel iterating over output signature and metadata.
2412 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2414 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2415 annotation on input args.
2417 2005-07-09 Colin Walters <walters@verbum.org>
2419 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2422 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2425 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2426 (method_dir_signature_from_object_info): Handle arg_iterate change.
2427 (write_interface): Ditto.
2428 (lookup_object_info): Don't barf if format_version is > 0.
2429 (invoke_object_method): Handle arg constness.
2431 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2432 (arg_info_new): Create.
2433 (arg_info_unref): Destroy.
2434 (arg_info_get_annotations, arg_info_get_annotation)
2435 (arg_info_add_annotation): New functions.
2437 * glib/dbus-gidl.h: Prototype them.
2439 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2440 args, disallow them in properties.
2441 (parse_annotation): Handle arg annotations.
2443 * test/glib/test-service-glib.xml:
2444 * test/glib/test-service-glib.c: Update to make some methods
2447 2005-07-08 Colin Walters <walters@verbum.org>
2449 * test/glib/test-service-glib.xml:
2450 * test/glib/test-service-glib.c:
2451 * test/glib/test-dbus-glib.c: Test a{sv}.
2453 * glib/examples/statemachine/statemachine.c:
2454 * glib/examples/statemachine/statemachine-server.c:
2455 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2456 add progress bar, etc.
2458 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2459 needed anymore due to generic array/map marshalling.
2460 (dbus_g_value_types_init): Don't register basic arrays or the
2462 (dbus_gtype_from_signature_iter): Don't try to recurse into
2464 (dbus_gtype_to_signature): Check collection/map before type
2466 (demarshal_garray_basic): Renamed to demarshal_collection_array.
2467 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2468 generic map creation/append functions instead of hash table
2470 (get_type_demarshaller): Handle maps.
2471 (demarshal_collection): Dispatch on collection type to either
2472 demarshal_collection_ptrarray or demarshal_collection_array.
2473 (get_type_marshaller): Handle maps.
2474 (marshal_collection): Dispatch collection type to either
2475 marshal_collection_ptrarray or marshal_collection_array.
2476 (_dbus_gvalue_test): New test.
2478 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2479 (hash_free_from_gtype): Use it to free GValues.
2480 (hashtable_append): New function.
2481 (ptrarray_append): Fix prototype.
2482 (slist_append): Ditto.
2483 (_dbus_gvalue_utils_test): Extend tests.
2485 * glib/dbus-gtype-specialized.c
2486 (dbus_g_type_specialized_init_append): Renamed from
2487 dbus_g_type_specialized_collection_init_append. Remove const from
2488 value, since we steal it.
2489 (dbus_g_type_specialized_map_append): New function.
2491 * glib/dbus-gtype-specialized.h: Update prototypes.
2492 Add DBusGTypeSpecializedMapAppendFunc.
2494 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2497 * glib/dbus-gtest.h: Prototype it.
2499 2005-07-08 Ross Burton <ross@openedhand.com>
2502 Add DBysGAsyncData for the async bindings.
2504 * glib/dbus-binding-tool-glib.c:
2505 Re-enable the async bindings.
2507 * test/glib/test-dbus-glib.c:
2508 Add a test for the generated async bindings.
2510 2005-07-08 Colin Walters <walters@verbum.org>
2512 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2515 2005-07-08 Colin Walters <walters@verbum.org>
2517 * tools/Makefile.am: Kill of print-introspect in favor of using
2518 dbus-send --print-reply=literal.
2520 * test/glib/test-service-glib.xml:
2521 * test/glib/test-service-glib.c (my_object_get_objs): New test
2524 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2525 (main): Test GetObjs.
2527 * glib/examples/statemachine/Makefile.am:
2528 * glib/examples/statemachine/sm-marshal.list:
2529 * glib/examples/statemachine/statemachine-client.c:
2530 * glib/examples/statemachine/statemachine-server.c:
2531 * glib/examples/statemachine/statemachine-server.xml:
2532 * glib/examples/statemachine/statemachine.c:
2533 * glib/examples/statemachine/statemachine.h:
2534 * glib/examples/statemachine/statemachine.xml:
2538 * glib/examples/example-service.c (main): Move invocation
2539 of dbus_g_object_type_install_info earlier, to emphasize it
2540 should only be done once.
2542 * glib/examples/example-signal-emitter.c (main): Ditto.
2544 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2546 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2547 (dbus_gvalue_marshal): Update prototypes.
2549 * glib/dbus-gvalue.c: Update all marshalling functions to take
2550 const GValue instead of GValue.
2551 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2553 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2555 (dbus_gtype_to_signature): Handle generic collecitons and maps.
2556 Return a newly-allocated string.
2557 (demarshal_proxy, demarshal_object_path, demarshal_object)
2558 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2559 we get the wrong types from message.
2560 (get_type_demarshaller): New function, extracted from
2561 dbus_gvalue_demarshal.
2562 (demarshal_collection): New function, demarshals generic
2564 (dbus_gvalue_demarshal): Just invoke result of
2565 get_type_demarshaller. Throw error if we don't have one.
2566 (marshal_garray_basic): Abort on OOM.
2567 (get_type_marshaller): New function, extracted from
2568 dbus_gvalue_marshal.
2569 (collection_marshal_iterator, marshal_collection): New functions;
2570 implements generic marshalling for an iteratable specialized
2572 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2574 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2576 (ptrarray_value_from_gvalue): Ditto.
2577 (ptrarray_append, ptrarray_free): New functions.
2578 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
2579 (slist_append, slist_end_append, slist_free): New functions.
2580 (dbus_g_type_specialized_builtins_init): Add append fuctions
2581 for GPtrArray and GSList. Register GSList.
2582 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2584 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2586 (dbus_g_type_specialized_collection_init_append)
2587 (dbus_g_type_specialized_collection_append)
2588 (dbus_g_type_specialized_collection_end_append): Prototype.
2589 (DBusGTypeSpecializedCollectionVtable): Add append_func and
2592 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
2593 (dbus_g_type_specialized_collection_append)
2594 (dbus_g_type_specialized_collection_end_append): New functions.
2595 (dbus_g_type_map_value_iterate): Take const GValue.
2596 (dbus_g_type_collection_value_iterate): Ditto.
2598 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2599 _dbus_gvalue_utils_test.
2601 * glib/dbus-gtest.h: Prototype it.
2603 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2604 using uninitialized owner_list.
2605 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2607 (dbus_g_proxy_end_call_internal): Update to use error set
2608 from dbus_gvalue_demarshal instead of setting it here.
2609 (dbus_g_proxy_begin_call): Move return_if_fail here.
2611 * glib/dbus-gobject.c (write_interface): Update for
2612 dbus_gtype_to_signature returning new string.
2614 * configure.in: Add glib/examples/statemachine.
2616 2005-07-08 Joe Shaw <joeshaw@novell.com>
2618 * configure.in: Add a configure option, --with-console-auth-dir
2620 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2621 new setting. Patch from Kay Sievers.
2623 2005-07-06 Colin Walters <walters@verbum.org>
2625 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2626 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2627 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2628 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2629 Delete in favor of dbus_g_proxy_begin_call and
2630 dbus_g_proxy_cancel_call.
2631 (DBusGProxyCall, DBusGProxyCallNotify): New.
2632 (dbus_g_proxy_begin_call): Change prototype to take callback, user
2633 data, and destroy function. This replaces
2634 dbus_g_pending_call_set_notify.
2635 (dbus_g_proxy_cancel_call): Prototype.
2636 (DBusGAsyncData): Delete, shouldn't be needed anymore.
2638 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2640 (struct _DBusGProxyManager): Add bus_proxy member, which is an
2641 internal proxy for calls to the bus. Remove
2642 pending_nameowner_calls, now the internal proxy keeps track.
2643 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2644 pending_nameowner_calls.
2645 (got_name_owner_cb): Update prototype, and use
2646 dbus_g_proxy_end_call.
2647 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2648 (dbus_g_proxy_manager_register): Delete directly libdbus code in
2649 favor of using internal proxy.
2650 (dbus_g_proxy_manager_unregister): Update to use
2651 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2652 (dbus_g_proxy_init): Initialize pending calls map.
2653 (dbus_g_proxy_constructor): New.
2654 (dbus_g_proxy_class_init): Add get/set property functions,
2655 constructor, and add NAME, PATH, and INTERFACE properties.
2656 (cancel_pending_call): New function.
2657 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2659 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2660 (GPendingNotifyClosure): New structure.
2661 (d_pending_call_notify, d_pending_call_free): Moved here from
2663 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2665 (manager_begin_bus_call): New internal function for talking to
2667 (dbus_g_proxy_new): Construct object using GObjet properties.
2668 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2669 Create closure of same, and insert call into map of pending calls.
2670 (dbus_g_proxy_end_call_internal): Take call id instead of pending
2671 call. Look up pending call in current set. Remove it when we've
2673 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2674 (dbus_g_proxy_begin_call): Change API to take callback, user data,
2675 and destroy function directly.
2676 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2677 (dbus_g_proxy_call): Invoke with NULL callback.
2678 (dbus_g_proxy_cancel_call): New function, replaces
2679 dbus_g_pending_call_cancel.
2681 * glib/dbus-gparser.c (validate_signature): Fix call to
2684 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2685 New quark for attaching metadata to GType.
2686 (info_hash): Delete.
2687 (lookup_object_info): Look up using quark.
2688 (dbus_g_object_type_install_info): Check that a type is classed,
2689 not that it's an object. Also just install type data using quark
2690 instead of using global hash.
2692 * glib/dbus-glib.c (dbus_g_pending_call_ref)
2693 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2694 (GPendingNotifyClosure): Delete.
2695 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2696 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2698 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2699 client method generation until we can fix it...
2701 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2702 (load_from_service_thread_func): Ditto.
2704 * tools/dbus-names-model.c (struct NamesModel): Hold
2706 (have_names_notify): Update prototype, use
2707 dbus_g_proxy_cancel_call.
2708 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2710 * tools/dbus-monitor.c (filter_func): Update for print_message
2713 * test/glib/test-dbus-glib.c: Add more tests for async
2714 invocations. Update many begin_call/end_call pairs to just use
2717 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
2718 allows us to dump print-introspect.c.
2720 * tools/dbus-print-message.h (print_message): Add literal argument
2721 to print_message which is intended to allow printing arguments without
2722 metadata like "string=".
2724 * tools/dbus-print-message.c (print_iter): Add literal argument.
2725 (print_message): Allow printing string messages literally.
2727 2005-07-05 Colin Walters <walters@verbum.org>
2729 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2730 Remove value refcount leak, original patch from Jorn Baayen
2731 <jorn@openedhand.com>. Also remove useless extra value in favor
2732 of prepending to value array directly.
2734 2005-07-02 Colin Walters <walters@verbum.org>
2736 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2738 2005-07-01 Colin Walters <walters@verbum.org>
2740 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2742 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2743 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2744 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2745 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2747 2005-06-30 Colin Walters <walters@verbum.org>
2749 * test/glib/test-dbus-glib.c:
2750 * test/glib/test-service-glib.c:
2751 * test/glib/test-service-glib.xml: Update tests for new error
2752 setting bits, also add async tests (patch from Ross Burton).
2754 * test/glib/Makefile.am (test_service_glib_LDADD): Add
2755 DBUS_GLIB_THREADS_LIBS.
2757 * glib/dbus-gproxy.c (get_name_owner)
2758 (dbus_g_pending_call_end_valist): Ditto.
2760 * glib/dbus-gobject.c (error_metadata): New mapping from GError
2761 domain (GQuark) to DBusGErrorInfo.
2762 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2763 quark in error_metadata. Take message interface as default
2764 error message interface.
2765 (gerror_to_dbus_error_message): Pass message interface.
2766 (dbus_set_g_error): Resurrected.
2767 (dbus_g_error_info_free): New function.
2768 (dbus_g_object_type_install_info): Use g_type_class_ref instead
2769 of _peek to actually create the object class if it hasn't been
2771 (dbus_g_error_domain_register): New function.
2773 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2775 * glib/dbus-gparser.c (validate_signature): Ditto.
2777 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2778 (dbus_g_error_domain_register): Prototype.
2780 * glib/dbus-glib.c (dbus_g_error_set): Delete.
2783 2005-06-29 Colin Walters <walters@verbum.org>
2785 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
2786 DBUS_TYPE_G_OBJECT_PATH.
2788 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2789 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2790 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
2791 (dbus_g_object_path_get_g_type): New function.
2792 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2793 to DBUS_TYPE_G_OBJECT_PATH by default.
2794 (demarshal_proxy): Remove unused name variable.
2795 (demarshal_object_path, marshal_object_path): New functions.
2796 (demarshal_proxy_array, marshal_proxy_array): Delete.
2798 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2799 DBUS_TYPE_G_OBJECT_PATH to char *.
2800 (dbus_g_type_get_lookup_function): Map builtin
2801 DBUS_TYPE_G_OBJECT_PATH.
2803 * test/glib/test-dbus-glib.c
2804 * test/glib/test-service-glib.c (my_object_objpath):
2805 Adapt tests to new object path marshalling.
2807 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
2809 * configure.in: force check for Python >= 2.4
2811 2005-06-29 Colin Walters <walters@verbum.org>
2813 Patch from Ross Burton <ross@openedhand.com>
2815 * glib/dbus-gobject.c (invoke_object_method): Unset object
2816 value in all cases, not only in async case.
2818 2005-06-29 Colin Walters <walters@verbum.org>
2820 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2821 name_call for keeping track of any outgoing GetNameOwner call.
2822 Also add for_owner and associated.
2823 (struct _DBusGProxyManager): Add owner_names, which is hash table
2824 that maps a base name to a list of names it owns (that we're
2825 interested in). Add pending_nameowner_calls which is a list of
2826 all outstanding GetNameOwner; avoids us having to iterate over
2827 every proxy. Add unassociated_proxies which keeps track of name
2828 proxies with no associated name owner.
2829 (dbus_g_proxy_manager_unref): Destroy owner_names.
2830 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2832 (find_name_in_info, name_owner_foreach)
2833 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2834 (dbus_g_proxy_manager_monitor_name_owner)
2835 (dbus_g_proxy_manager_unmonitor_name_owner)
2836 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2837 New functions; they manipulate the owner_names mapping.
2838 (got_name_owner_cb): New function.
2839 (get_name_owner): New function, extracted from
2840 dbus_g_proxy_new_for_name_owner.
2841 (dbus_g_proxy_manager_register): For now we need to keep track of
2842 all NameOwnerChanged. Also if the proxy is for a name, if we
2843 don't already know the name owner, queue a new GetNameOwner
2844 request and add it to our list of unassociated proxies. Otherwise
2846 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2847 cancel any pending GetNameOwner call, etc.
2848 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
2849 the owner_names mapping to look up the current names for the
2850 signal source, and dispatch to any proxies for that name.
2851 (dbus_g_proxy_new): Initialize new members.
2852 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2853 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2854 (dbus_g_pending_call_end_valist): New function, extracted from
2855 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
2856 but want to use the GLib infrastructure. Also note how many
2857 arguments in reply were over.
2858 (dbus_g_pending_call_end): New function, just call
2859 dbus_g_pending_call_end_valist.
2860 (dbus_g_proxy_end_call_internal): Just call
2861 dbus_g_pending_call_end_valist.
2863 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2864 of builtin marshaller for STRING_STRING_STRING.
2866 * test/glib/test-dbus-glib.c:
2867 * test/glib/test-service-glib.c:
2868 * test/glib/test-service-glib.xml:
2869 Extend tests to cover name proxies, destruction of owner proxies,
2872 * glib/examples/example-signal-recipient.c
2873 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2875 * tools/dbus-send.c (main): Print D-BUS error name in addition
2878 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
2880 * python/dbus_bindings.pyx.in (cunregister_function_handler,
2881 cmessage_function_handler): Patch from
2882 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2883 by using the Py_GILState_Ensure/Release to synchronize with the
2886 2005-06-28 Ray Strode <rstrode@redhat.com>
2888 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2889 babysitter helper process on last unref, bug #2813.
2891 2005-06-27 Colin Walters <walters@verbum.org>
2893 * test/glib/test-dbus-glib.c:
2894 * test/glib/test-service-glib.c:
2895 * test/glib/test-service-glib.xml:
2896 Test hash table signal emitting.
2898 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2899 types to their fundamental basis types, since this is what
2900 marshallers operate on. Also add an entry for VOID__BOXED.
2901 (dbus_g_object_register_marshaller_array): Convert to fundamental.
2903 2005-06-26 Havoc Pennington <hp@redhat.com>
2905 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2908 2005-06-26 Colin Walters <walters@verbum.org>
2910 * glib/dbus-glib.c (dbus_set_g_error): Delete.
2911 (dbus_g_error_set): New public function from its ashes; used by
2912 both service-side method implementation and GLib bindings
2914 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2915 (_dbus_glib_test): Add some tests.
2917 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2919 * test/glib/test-service-glib.c (my_object_throw_error): Use
2922 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2923 errors thrown by dbus_g_error_set.
2925 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2927 * glib/dbus-gparser.c (validate_signature): Ditto.
2929 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
2930 (dbus_g_proxy_end_call_internal): Ditto.
2932 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2933 converts DBUS_ERROR_x to DBUS_GERROR_x.
2934 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2936 * doc/TODO: Remove error TODO.
2938 * doc/dbus-tutorial.xml: Update with documentation about error
2941 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2942 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2943 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
2945 2005-06-22 Colin Walters <walters@verbum.org>
2947 Patch from Ross Burton <ross@openedhand.com>
2949 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2951 2005-06-20 Colin Walters <walters@verbum.org>
2953 * configure.in: Add glib/examples.
2955 * glib/Makefile.am: Add examples/
2957 * glib/examples/.cvsignore
2958 * glib/examples/Makefile.am
2959 * glib/examples/example-client.c
2960 * glib/examples/example-service.c
2961 * glib/examples/example-service.xml
2962 * glib/examples/example-signal-emitter.c
2963 * glib/examples/example-signal-emitter.xml
2964 * glib/examples/example-signal-recipient.c:
2965 New files; GLib binding examples, ported from
2968 2005-06-20 Colin Walters <walters@verbum.org>
2971 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2974 * glib/dbus-binding-tool-glib.c:
2975 * doc/dbus-tutorial.xml:
2976 * test/glib/test-dbus-glib.c: Update for rename.
2978 2005-06-20 Colin Walters <walters@verbum.org>
2980 Patch suggested by Ross Burton <ross@openedhand.com>
2982 * glib/dbus-gobject.c (export_signals): Free signal name.
2983 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2984 memory leak. Add a bit of documentation.
2985 (dbus_g_method_return_error): Free context, and note we do
2988 2005-06-18 Murray Cumming <murrayc@murrayc.com>
2991 * glib/dbus-gobject.c:
2992 * glib/dbus-gproxy.c:
2993 * glib/dbus-gvalue.c: Predeclare structs as
2994 typedef struct _Something Something instead of
2995 typedef struct Something Something, so we can
2996 redeclare the prototypes. Other GNOME libraries
2999 2005-06-17 Colin Walters <walters@verbum.org>
3001 * tools/dbus-names-model.c (have_names_notify): Fix call
3002 to dbus_g_proxy_end_call.
3004 2005-06-17 Colin Walters <walters@verbum.org>
3006 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3007 spew warnings if we get malformed remote signals.
3009 * glib/dbus-gobject.c (propsig_iterate): New function.
3010 (lookup_object_info): New function, extracted from
3011 lookup_object_and_method.
3012 (introspect_properties, introspect_signals): Delete; these
3013 are merged into write_interface.
3014 (write_interface): Write out signals and properties here;
3015 dump the org.gtk.object stuff and use the interface given
3016 in the introspection data blob. Also fix up property XML.
3017 (lookup_values): New function.
3018 (introspect_interfaces): Gather a mapping from interface to a
3019 list of its methods, signals, and properties, then write out
3021 (lookup_object_and_method): Use lookup_object_info.
3022 (struct DBusGSignalClosure): Add interface.
3023 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3024 we can just use the constant data.
3025 (dbus_g_signal_closure_finalize): Don't free signal name.
3026 (signal_emitter_marshaller): Use interface from signal closure.
3027 (export_signals): Only export signals mentioned in introspection
3029 (dbus_g_connection_register_g_object): Warn if we have no
3030 introspection data for an object.
3031 (funcsig_equal): Remove unused variable.
3032 (dbus_g_object_register_marshaller): Take varargs instead of
3034 (dbus_g_object_register_marshaller_array): New function,
3035 extracted from old dbus_g_object_register_marshaller.
3037 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3038 signals and property data.
3039 (write_quoted_string): New function, extracted from generate_glue.
3040 (generate_glue): Write signals and properties to introspection
3043 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3044 exported_signals and exported_properties.
3045 (dbus_g_object_register_marshaller): Update prototype.
3046 (dbus_g_object_register_marshaller_array): Prototype.
3048 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3050 * test/glib/test-service-glib.c: Add new test signals and method
3053 * test/glib/test-service-glib.xml: Add some test signals.
3055 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3056 and my-object-marshal.h
3057 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3058 my-object-marshal.c.
3059 (my-object-marshal.c, my-object-marshal.h): Implement.
3061 * test/glib/.cvsignore: Update.
3063 * doc/TODO: Remove two GLib TODO items fixed by this
3066 2005-06-16 Colin Walters <walters@verbum.org>
3068 * doc/TODO: Update for GLib bindings.
3070 2005-06-16 Colin Walters <walters@verbum.org>
3072 * glib/dbus-binding-tool-glib.c:
3073 * glib/dbus-gobject.c:
3074 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
3075 from Ross Burton, for his GLib bindings work.
3077 2005-06-16 Colin Walters <walters@verbum.org>
3079 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3080 to iterate instead of walking to G_TYPE_INVALID.
3082 Patch based on a patch from Ryan Gammon.
3084 2005-06-16 Colin Walters <walters@verbum.org>
3086 * bus/bus.c (bus_context_new): Set parser to NULL
3087 after we unref it (Patch from Chris Boscolo, #2174).
3089 2005-06-16 Colin Walters <walters@verbum.org>
3091 * python/dbus_bindings.pyx.in: Import size_t,
3092 __int64_t, __uint64_t, and __signed.
3094 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3095 Define cmsg struct, output it.
3096 (_dbus_read_credentials_unix_socket):
3099 Patch from Joe Markus Clarke for FreeBSD support.
3101 2005-06-16 Colin Walters <walters@verbum.org>
3103 * tools/dbus-send.c (append_array): Use strtok.
3104 (append_dict): New function.
3105 (type_from_name): New function, extracted from main.
3106 (main): Handle sending dicts.
3108 * tools/dbus-print-message.c (print_iter): Print dict
3111 2005-06-16 Colin Walters <walters@verbum.org>
3113 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3114 values as the empty string (#2948).
3116 2005-06-16 Colin Walters <walters@verbum.org>
3119 * mono/doc/Makefile.am:
3120 * test/glib/Makefile.am:
3122 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3124 2005-06-16 Colin Walters <walters@verbum.org>
3126 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3127 header byte order from expected byte order (Patch from Chris Wilson, #3475).
3129 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
3130 Increment pointer after swapping fixed array. Add assertion
3133 2005-06-15 Colin Walters <walters@verbum.org>
3135 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3136 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3138 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3140 * NEWS: Update to 0.34
3142 2005-06-15 David Zeuthen <davidz@redhat.com>
3144 * configure.in (LT_CURRENT): Revert back to 1 as the library
3145 hasn't changed and we've certainly not committed to protocol
3146 stability yet. All this does is to break ABI. See commit note
3147 from hp@redhat.com 2005-05-05 for details.
3149 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3151 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3152 (_dbus_connection_run_builtin_filters): New method
3153 (dbus_connection_dispatch): Run the builtin filters which in turn
3154 runs the peer filter which handles Ping messages.
3157 - Ping isn't handled: This patch fixes it
3159 - Add a test case for the Ping message: added TODO item
3161 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3163 * dbus/dbus-message.c:
3164 (dbus_message_has_path): New method
3165 (dbus_message_has_interface): New method
3166 (dbus_message_has_member): New method
3168 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3171 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3172 the keyring directory is private to the user
3175 - The convenience functions in dbus-bus.h should perhaps have
3176 the signatures that they would have if they were autogenerated
3177 stubs. e.g. the acquire service function. We should also evaluate
3178 which of these functions to include, in light of the fact that
3179 GLib/Qt native stubs will probably also exist.: Punted
3181 - add dbus_message_has_path(), maybe has_member/interface:
3184 - in dbus-keyring.c, enforce that the keyring dir is not
3185 world readable/writable: Fixed in this patch
3187 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3189 * dbus/dbus-marshal-validate.h: Added a new validation
3190 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3191 out of memory errors when validating signitures
3193 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3194 in places where we previously used DBUS_VALID and a FALSE return
3195 value to indicate OOM
3197 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3198 Use a stack to track the number of elements inside containers. The
3199 stack values are then used to validate that dict entries have only two
3200 elements within them.
3201 (validate_body_helper): check the reason for failure when validating
3204 * dbus/dbus-message.c (load_message): use
3205 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3206 DBUS_VALID and a FALSE return value to indicate OOM
3208 * doc/TODO: remove "- validate dict entry number of fields" as this
3211 2005-06-14 David Zeuthen <davidz@redhat.com>
3213 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3214 watches (if applicable) and add new watches
3216 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3217 (main): Setup SIGIO signal handler if using D_NOTIFY
3219 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3221 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3222 (merge_included): Also merge conf_dirs list
3223 (bus_config_parser_unref): Clear conf_dirs list
3224 (include_dir): Add directory to conf_dirs list
3225 (bus_config_parser_get_conf_dirs): New function
3227 * bus/dir-watch.[ch]: New files
3229 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3231 * configure.in: Add checks for D_NOTIFY on Linux
3233 2005-06-14 Colin Walters <walters@verbum.org>
3235 * glib/dbus-binding-tool-glib.c:
3236 * glib/dbus-gobject.c:
3237 * glib/dbus-gvalue.c: Fix indentation and brace style.
3239 2005-06-14 Ross Burton <ross@openedhand.com>.
3241 * glib/dbus-glib.h: Make DBusGMethodInvocation
3242 a private structure. Rearrange prototypes a bit.
3244 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3245 documentation for first_arg_type.
3247 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3248 here, add documentation. Move dbus_g_method_return
3249 and dbus_g_method_return_error into public API
3252 2005-06-14 Colin Walters <walters@verbum.org>
3254 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3255 Add missing return statements, noticed by Ross Burton.
3257 2005-06-13 Ross Burton <ross@openedhand.com>.
3259 * glib/dbus-gobject.c: Handle errors on message
3260 demarshalling by sending error message back.
3261 * glib/dbus-gvalue.c: Initialize return variables.
3263 2005-06-13 Colin Walters <walters@verbum.org>
3265 * glib/Makefile.am: Fix thinko in last patch.
3267 2005-06-13 Colin Walters <walters@verbum.org>
3269 * glib/Makefile.am: Move dbus-gtype-specialized.c
3270 and dbus-gtype-specialized.h into a _HEADERS variable,
3273 2005-06-12 Colin Walters <walters@verbum.org>
3275 Async signals and various bugfixes and testing by
3276 Ross Burton <ross@openedhand.com>.
3278 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3279 (dbus_gvalue_genmarshal_name_from_type)
3280 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3281 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3282 (dbus_g_value_types_init, dbus_gtype_from_signature)
3283 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3284 (dbus_gtypes_from_arg_signature): New function prototypes.
3285 (dbus_gvalue_demarshal): Take context and error arguments.
3286 (dbus_gvalue_demarshal_variant): New function.
3287 (dbus_gvalue_demarshal_message): New function.
3288 (dbus_gvalue_store): Delete.
3290 * glib/dbus-gvalue.c:
3292 File has been almost entirely rewritten; now we special-case
3293 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3294 hash tables correctly, etc. Full support for recursive values
3295 is not yet complete.
3297 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3298 argument of signal to G_TYPE_POINTER since we now pass a
3300 (lookup_g_marshaller): Delete in favor of
3301 _dbus_gobject_lookup_marshaller.
3302 (marshal_dbus_message_to_g_marshaller): Use
3303 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3304 to handle remote signal callbacks.
3305 (dbus_g_proxy_new_from_proxy): New function; creates a new
3306 DBusGProxy by copying an existing one.
3307 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3308 (dbus_g_proxy_get_path): New functions.
3309 (dbus_g_proxy_marshal_args_to_message): New function;
3310 factored out of existing code.
3311 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3312 from a varargs array.
3313 (dbus_g_proxy_begin_call_internal): New function.
3314 (dbus_g_proxy_end_call_internal): New function.
3315 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3316 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3317 after collecting args into value array.
3318 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3319 invoke dbus_g_proxy_end_call_internal.
3320 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3322 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3324 (array_free_all): New function.
3325 (dbus_g_proxy_add_signal): Take GTypes.
3327 * glib/dbus-gobject.h:
3328 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3329 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3332 * glib/dbus-gobject.c: Add a global marshal_table hash which
3333 stores mappings from type signatures to marshallers. Change lots
3334 of invocations of dbus_gtype_to_dbus_type to
3335 dbus_gtype_to_signature.
3336 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3337 (introspect_signals): Fix test for query.return_type.
3338 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3339 (invoke_object_method): Many changes. Handle asynchronous
3340 invocations. Convert arguments with
3341 dbus_gvalue_demarshal_message. Handle errors. Use
3342 DBusSignatureIter instead of strlen on args. Handle all arguments
3343 generically. Special-case variants.
3344 (dbus_g_method_return, dbus_g_method_return_error): New function.
3345 (DBusGSignalClosure): New structure, closes over signal
3347 (dbus_g_signal_closure_new): New function.
3348 (dbus_g_signal_closure_finalize): New function.
3349 (signal_emitter_marshaller): New function; is special marshaller
3350 which emits signals on bus.
3351 (export_signals): New function; introspects object signals and
3353 (dbus_g_object_type_install_info): Take GType instead of
3355 (dbus_g_connection_register_g_object): Invoke export_signals.
3356 (dbus_g_connection_lookup_g_object): New function.
3357 (DBusGFuncSignature) New structure; used for mapping type
3358 signatures to marshallers.
3359 (funcsig_hash): New function; hashes DBusGFuncSignature.
3360 (funcsig_equal): New function; compares DBusGFuncSignature.
3361 (_dbus_gobject_lookup_marshaller): New function.
3362 (dbus_g_object_register_marshaller): New function; used to
3363 register a marshaller at runtime for a particular signature.
3365 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3367 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3368 which notes a server method implementation should be
3371 * glib/dbus-binding-tool-glib.c
3372 (dbus_binding_tool_output_glib_server): Call
3373 dbus_g_value_types_init.
3374 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3376 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3377 of a lookup function.
3378 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3379 (write_untyped_out_args): New method; write output arguments.
3380 (write_formal_declarations_for_direction): Function for
3382 (write_formal_parameters_for_direction): Function for
3383 writing implementations.
3384 (write_typed_args_for_direction): Function for writing
3385 arguments prefixed with GTypes.
3386 (write_async_method_client): Write out async version
3389 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3390 (dbus_g_type_get_marshal_name): Move mapping from GType
3391 to marshal name into here.
3392 (dbus_g_type_get_c_name): Move into here.
3393 (compute_marshaller): Convert signature to type with
3394 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3395 (compute_marshaller_name): Ditto.
3396 (compute_marshaller): Handle async signal annotations.
3397 (gather_marshallers): Return if we don't have a known
3399 (generate_glue): Collect introspection blob here, and
3400 write all of the blob at the end. This allows an object
3401 with multiple interfaces to work.
3402 Mark async methods in introspection blob.
3404 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3405 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3406 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3408 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3409 avoids people accidentally using DBUS_TYPE_* which should
3410 not be necessary anymore.
3411 Do include dbus-gtype-specialized.h, which are utilities
3412 for GLib container types.
3413 Add various #defines for types such as
3414 DBUS_TYPE_G_BOOLEAN_ARRAY.
3415 (DBusGValueIterator, DBusGValue): Define, not fully used
3417 (dbus_g_value_get_g_type): Type for recursive value.
3418 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3419 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3420 (dbus_g_value_free): Prototypes.
3421 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3422 (dbus_g_proxy_set_interface): Prototype.
3423 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3424 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3426 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3428 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3429 doing async invocations.
3430 (dbus_g_method_return, dbus_g_method_return_error):
3432 * doc/dbus-tutorial.xml: Update GLib section.
3434 * tools/dbus-viewer.c (load_child_nodes): Update
3435 for new invocation type of dbus_g_proxy_end_call.
3436 (load_from_service_thread_func): Ditto.
3438 * tools/print-introspect.c (main): Ditto.
3440 * tools/dbus-names-model.c (have_names_notify)
3441 (names_model_reload, names_model_set_connection)
3444 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3445 needed since Python bindings use GLib bindings.
3447 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3448 Add --prefix argument.
3450 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
3451 unneeded --ignore-unsupported arg.
3453 * test/glib/test-service-glib.c:
3454 * test/glib/test-service-glib.xml:
3455 * test/glib/test-dbus-glib.c: Add many more tests.
3457 2005-06-06 David Zeuthen <davidz@redhat.com>
3459 * doc/TODO: Add item about need to remove deprecated functions.
3461 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3463 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3464 to repair the ABI which was broken with the last commit.
3466 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
3468 * dbus/dbus-connection.c, dbus/dbus-connection.h
3469 (dbus_connection_disconnect): renamed to dbus_connection_close
3470 for API symmetry with dbus_connection_open
3471 (_dbus_connection_open_internal):
3472 s/dbus_connection_disconnect/dbus_connection_close
3474 * dbus/dbus-bus.c (dbus_bus_get):
3475 s/dbus_connection_disconnect/dbus_connection_close
3477 * bus/connection.c (bus_connections_unref,
3478 bus_connections_setup_connection, bus_connections_expire_incomplete):
3479 s/dbus_connection_disconnect/dbus_connection_close
3481 * bus/dispatch.c (bus_dispatch, kill_client_connection,
3482 kill_client_connection_unchecked, check_hello_connection):
3483 s/dbus_connection_disconnect/dbus_connection_close
3485 * bus/bus.c (new_connection_callback):
3486 s/dbus_connection_disconnect/dbus_connection_close
3488 * tools/dbus-send.c (main):
3489 s/dbus_connection_disconnect/dbus_connection_close
3491 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3492 s/dbus_connection_disconnect/dbus_connection_close
3494 * test/test-service.c (path_message_func, filter_func):
3495 s/dbus_connection_disconnect/dbus_connection_close
3497 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
3499 2005-05-25 Colin Walters <walters@verbum.org>
3501 * dbus/dbus-protocol.h: Move various bus service #defines such
3502 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3504 * dbus/dbus-shared.h: Various defines moved here.
3505 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3507 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
3509 * python/__init__.py: Python bindings deserve a minor version
3510 update. Upped to (0, 40, 2)
3512 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
3514 * python/decorators.py: add explicitly_pass_message decorator
3515 for passing in the dbus message as keyword for edge case signal
3518 * python/matchrules.py (SignalMatchRule.__repr__): fix output
3519 to conform with what dbus expects for match rules
3520 (SignalMatchRule.execute): add the dbus message as a keyword
3521 if the signal handler has requested it
3523 * python/examples/example/signal-recipient.py: added some more
3524 examples on how to hook up to signals
3526 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
3528 * python/decorators.py: import dbus_bindings
3530 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
3531 SignalMatchNode): new classes that implement wildcard signal
3532 callback matching using a tree lookup. Heavily modified from a
3533 patch sent by Celso Pinto (fd.o bug #3241)
3535 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3536 use new match classes to handle signals.
3538 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
3540 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3542 2005-05-18 Havoc Pennington <hp@redhat.com>
3544 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3545 gettext. Not really worth requiring yet perhaps, but any
3546 production quality 1.0 would require it so we should go ahead and
3547 get things set up. We do have a couple token calls to
3548 bindtextdomain in the code already.
3550 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
3552 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3553 when using recursive g_main_loops
3555 * python/_dbus.py (class Bus): add the ProxyObjectClass
3556 alias for ProxyObject to make it easier for the Twisted
3557 networking framework to integrate dbus.
3559 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3560 alias for ProxyMethod to make it easier for the Twisted
3561 networking framework to integrate dbus.
3563 2005-05-11 Ross Burton <ross@openedhand.com>
3565 * glib/dbus-glib-tool.c: Add --prefix argument.
3566 * glib/dbus-binding-tool-glib.h: Add prefix argument.
3567 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3568 Add prefix argument.
3569 (generate_glue): Pass prefix argument down.
3570 (dbus_binding_tool_output_glib_server): Pass prefix to
3573 2005-05-11 Colin Walters <walters@verbum.org>
3575 * tools/dbus-send.c (append_array): New function.
3576 (append_arg): Broken out from main.
3577 (main): Add cheesy hack to send arrays and variants.
3579 * tools/dbus-print-message.c (print_iter): Broken out
3582 2005-05-11 Colin Walters <walters@verbum.org>
3584 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3585 New function, returns signature string for signature iter.
3586 * dbus/dbus-signature.h: Prototype it.
3587 * dbus/dbus-message.c (dbus_message_iter_get_signature):
3588 New function, returns signature string for message iter.
3589 (dbus_message_iter_get_array_len): New function, returns
3591 (dbus_message_iter_get_fixed_array): Fix assertion; this
3592 function should be used when the iter is pointing to the
3593 contents of an array
3594 * dbus/dbus-message.h: Prototypes.
3595 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3596 New function; returns length of an array.
3597 * dbus/dbus-marshal-recursive.h: Prototype it.
3599 2005-05-11 Colin Walters <walters@verbum.org>
3601 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3604 2005-05-08 Havoc Pennington <hp@redhat.com>
3606 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3607 daemon's pid, not the parent's pid, to the file descriptor.
3608 Reported by Taj Morton.
3610 2005-05-05 Havoc Pennington <hp@redhat.com>
3612 * configure.in (LT_*): add notes on how the libtool versioning
3613 works to save thinking. Increment soname to indicate protocol
3614 breakage (though really the library interface hasn't changed I
3617 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3618 verify the GUID received from server matches what we were
3619 expecting, if we had an expectation
3621 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3622 (_dbus_auth_get_guid_from_server): new function
3623 (send_begin): parse the OK args
3625 * doc/dbus-specification.xml: add GUID to the auth protocol
3627 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
3629 * Fix my name in previous changelog ;)
3631 * python/proxies.py (ProxyObject.__getattr__): add further patch
3632 from Anthony Baxter to throw an AttributeError when python
3633 __special__ functions are called instead of marshling them over
3634 the bus (Bug#1685 comment 3).
3636 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
3638 * python/Makefile.am: changed to use pyexecdir for the binding
3639 shared libraries (Bug#2494)
3641 * python/exceptions.py: bring exceptions over from the bindings
3642 so they can be used in applications (Bug#2036)
3643 Make all exceptions derive from DBusException
3645 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3646 of classes so that print obj doesn't throw an exception (Bug #1685)
3648 2005-05-03 Ross Burton <ross@openedhand.com>
3650 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3651 Return if we get an error during registration. Set up a
3652 weak reference on object to unregister if object is destroyed.
3653 (unregister_gobject): New function.
3655 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
3657 * python/dbus_bindings.pyx.in:
3658 - added new type classes for hinting to the marashaler what type
3659 to send over the wire
3660 - added int16 and uint16 marshalers
3661 - Fixed a bug in the type constants that caused int32 to go out
3662 as uint16 over the wire
3663 * python/dbus.py: split up into different files and renamed _dbus.py
3664 * python/__init__.py, python/_util.py, python/decorators.py,
3665 python/exceptions.py, python/proxies.py, python/services.py,
3666 python/types.py: new files split off from dbus.py
3667 * python/Makefile.am: Add new files, remove dbus.py and
3668 install all python files to <python module dir>/dbus
3669 * python/examples/*: Added #!/usr/bin/env python to the top of
3670 every example. Patch provided by Tatavarty Kalyan
3672 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3674 * NEWS: Update to 0.33
3676 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3678 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3679 method for doing async calls
3680 (_pending_call_notification): New C function for handling pendning call
3682 (set_notify): New method for setting pending call notification
3684 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3685 Async capabilities added to remote method calls
3686 (Sender): class removed
3687 (RemoteService): class removed
3688 (ObjectTree): class removed for now
3689 (RemoteObject): Renamed to ProxyObject
3690 (RemoteMethod): Renamed to ProxyMethod
3691 (method): Decorator added for decorating python methods as dbus methods
3692 (signal): Decorator added for decorating python methods as signal emitters
3693 (ObjectType): Metaclass added for generating introspection data and the
3694 method callback vtable
3695 (Interface): Wrapper class added to wrap objects in a dbus interface
3696 (Object): Uses ObjectType as its metaclass and exports Introspect
3697 of the org.freedesktop.DBus.Introspectable interface
3698 (ValidationException, UnknownMethodException): new exceptions
3700 * python/examples/*: Modified to fit with the new bindings
3702 2005-04-23 Havoc Pennington <hp@redhat.com>
3704 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3705 reported by Tony Houghton
3707 * test/test-service.c (main): test
3708 dbus_connection_get_object_path_data()
3710 * dbus/dbus-object-tree.c (find_handler): be sure we always init
3712 (_dbus_object_tree_get_user_data_unlocked): new function used by
3713 dbus_connection_get_object_path_data()
3714 (do_register): add assertion test for get_user_data_unlocked
3715 (object_tree_test_iteration): more tests
3717 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3718 new function from Dan Reed to let you get the user data from
3719 dbus_connection_register_object_path()
3721 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
3723 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3724 in numerous places that did not account for the NULL terminator
3725 (signature_from_seed): changed the manual string copy loop to
3726 just use strcpy instead
3727 make check should now pass
3729 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
3731 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3732 so that it allows messages that are not signals to pass in
3733 NULL as the interface.
3735 2005-04-18 David Zeuthen <davidz@redhat.com>
3737 * glib/dbus-gmain.c (io_handler_destroy_source):
3738 (timeout_handler_destroy_source, connection_setup_free):
3739 Also unref the source to avoid memory leaks.
3741 2005-04-13 David Zeuthen <davidz@redhat.com>
3743 * bus/config-parser.c (bus_config_parser_new): Bump this to a
3744 more reasonable, yet still totally arbitrary, value :-).
3746 2005-04-13 David Zeuthen <davidz@redhat.com>
3748 * doc/TODO: Added an "important for 1.0" item about selinux
3751 2005-04-13 David Zeuthen <davidz@redhat.com>
3753 * bus/selinux.c: Add c-file-style to top of file
3754 (log_audit_callback): Don't free the data here anymore
3755 (bus_selinux_check): Don't take spid and tpid since appending
3756 that to auxdata may OOM.
3757 (bus_selinux_allows_acquire_service): Handle OOM and signal back
3758 to the caller if we are OOM by taking an error object.
3759 (bus_selinux_allows_send): -do-
3761 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3762 and bus_selinux_allows_send
3764 * bus/bus.c (bus_context_check_security_policy): Pass error and
3765 pass on OOM thrown by bus_selinux_allows_send()
3767 * bus/services.c (bus_registry_acquire_service): Pass error and
3768 pass on OOM thrown by bus_selinux_allows_acquire_service()
3770 2005-04-13 Havoc Pennington <hp@redhat.com>
3772 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3773 message at a time to avoid monopolizing the main loop, bug
3774 #2953 from Benjamin Otte
3776 2005-04-09 Havoc Pennington <hp@redhat.com>
3778 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3779 possible overlap, fix from Daniel Reed
3780 (fixup_alignment): fix signedness warnings
3781 (_dbus_string_append_unichar): ditto
3783 2005-04-09 Havoc Pennington <hp@redhat.com>
3785 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3787 * glib/dbus-glib-tool.c (main): fix warning
3789 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3791 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3792 add a new function that can be used in simple applications that
3793 don't have a main loop and are willing to block
3795 2005-04-05 David Zeuthen <davidz@redhat.com>
3797 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3799 * glib/dbus-gmain.c:
3800 (io_handler_destroy_source): Remove from list of IO handlers
3801 of the ConnectionSetup object
3802 (timeout_handler_destroy_source): -do- for timeout handlers
3803 (io_handler_source_finalized): Don't remove from list since
3804 we now do that in io_handler_destroy_source(). Renamed from
3805 io_handler_source_destroyed
3806 (timeout_handler_source_destroyed): -do- for timeout handlers
3807 (connection_setup_free): It is now safe to iterate over all
3808 IO and timeout handlers as the _destroy_source removes them
3809 from the list synchronously
3811 2005-03-30 Havoc Pennington <hp@redhat.com>
3813 * configure.in: change check to gtk 2.4
3815 * tools/dbus-viewer.c (name_combo_changed_callback): remove
3816 gtk_combo_box_get_active_text() usage to decrement GTK requirement
3819 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3823 * HACKING: Fixed realease instructions. configure.in should be updated to
3824 the next release by the person who made the last release.
3826 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3828 * python/lvalue_cast_post_process.py - removed. Patch has been
3829 submitted to Pyrex maintainers that fixes gcc4.0 errors
3831 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3833 2005-03-24 Daniel Reed <n@ml.org>
3835 * tools/Makefile.am: Make print-introspect and
3836 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3838 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
3840 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3842 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
3843 had in Red Hat packages for a while but for some reason never
3845 (_dbus_is_a_number): New checks if a string
3846 can be converted to a number and does the conversion if it can
3847 (_dbus_user_database_lookup): Add check to see if the given username
3848 is a udi. This allows udi's to be used instead of usernames in the
3850 (_dbus_user_database_lookup_group): Add check to see if the given groupname
3851 is a gdi. This allows gdi's to be used instead of groupnames in the
3854 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
3856 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3857 code so that it compiles with gcc4.0
3859 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3860 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3861 results back to dbus_binding.c
3863 2005-03-20 Colin Walters <walters@verbum.org>
3865 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3867 * configure.in: Require GTK+ 2.6.
3869 2005-03-20 Colin Walters <walters@verbum.org>
3871 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3873 2005-03-17 Tom Parker <palfrey@tevp.net>
3875 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3876 print DBUS_UID_UNSET; instead print passed username. Also
3877 be sure to actually use gid looked up in cache.
3879 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3880 for DBUS_GID_UNSET and groupname.
3882 2005-03-17 Colin Walters <walters@verbum.org>
3884 * bus/print-introspect.c: Move to tools/.
3885 * bus/run-with-tmp-session-bus.sh: Ditto.
3887 * glib/Makefile.am (dbus-glib-bindings.h): Move
3888 generation to tools/Makefile.am.
3890 * test/glib/run-test.sh: Update to handle move
3891 of run-with-tmp-session-bus.sh.
3893 * test/glib/test-service-glib.c: Update to handle
3894 move of dbus-glib-bindings.h.
3896 * tools/print-introspect.c: Moved here
3897 from bus/, and ported to GLib bindings.
3899 * tools/run-with-tmp-session-bus.sh: Moved here
3902 * tools/Makefile.am: Generate dbus-glib-bindings.h
3903 and dbus-bus-introspect.xml here.
3905 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3908 2005-03-17 Colin Walters <walters@verbum.org>
3910 * bus/driver.c (write_args_for_direction): Use
3911 _dbus_string_get_const_data to retrieve string;
3912 _dbus_string_get_const_data_len doesn't actually return
3913 a NULL-terminated substring.
3915 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3916 (main): Change to use org_freedesktop_DBus_request_name
3917 instead of using g_proxy_begin_call/end_call.
3919 2005-03-15 Joe Shaw <joeshaw@novell.com>
3921 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3922 generating the finalizer. Fixes from Ben Maurer.
3924 2005-03-12 Joe Shaw <joeshaw@novell.com>
3926 * mono/BusDriver.cs: Update method names: ListServices
3927 becomes ListNames; GetOwner becomes GetNameOwner.
3929 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3930 onto the eval stack when removing the delegate.
3932 2005-03-12 Joe Shaw <joeshaw@novell.com>
3934 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3935 LT_CURRENT. Set it to the autoconf variable.
3937 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3938 classes that disconnects the signal handler delegate from the
3939 service object. Fixes a big leak of proxy objects on the
3940 client side of things. Patch from Ben Maurer
3941 <bmaurer@ximian.com>
3943 2005-03-12 Colin Walters <walters@verbum.org>
3945 * bus/driver.c (write_args_for_direction): New function,
3946 parses a type signature into arguments and outputs to
3948 (bus_driver_handle_introspect): Use it instead of
3949 hardcoding XML for certain signatures.
3951 * bus/Makefile.am (dbus-bus-introspect.xml): Add
3952 dependency on dbus-daemon.
3954 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3955 argument, pass it to dbus_binding_tool_output_glib_client.
3957 * glib/dbus-binding-tool-glib.c
3958 (generate_client_glue): Protect against multiple inclusion.
3959 (dbus_binding_tool_output_glib_client): Add
3960 G_BEGIN_DECLS/G_END_DECLS.
3962 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3963 Change to just take iface prefix directly.
3964 (write_formal_parameters): Clarify error message.
3965 (check_supported_parameters): New function; checks to see type
3966 signatures of method parameters are supported.
3967 (generate_client_glue): Handle ignore_unsupported flag.
3968 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3971 * glib/Makefile.am (dbus-glib-bindings.h): Pass
3972 --ignore-unsupported by default until glib bindings
3975 2005-03-11 Colin Walters <walters@verbum.org>
3977 * glib/Makefile.am: Generate dbus-glib-bindings.h and
3980 * bus/print-introspect.c: New file; prints introspection
3981 data for a given name and object path.
3983 * bus/run-with-tmp-session-bus.sh: New file, refactored
3984 from test/glib/run-test.sh. Creates a temporary session
3985 bus and runs another program.
3987 * test/glib/run-test.sh: Refactor to invoke
3988 run-with-tmp-session-bus.sh.
3990 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3991 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
3992 macros instead of hardcoding.
3994 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3996 2005-03-11 Joe Shaw <joeshaw@novell.com>
3998 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3999 this unref; it doesn't match up evenly in some codepaths.
4000 (_dbus_connection_block_pending_call): Unref at every exitpoint;
4001 this evenly matches with the ref near the top of this function.
4003 2005-03-09 Joe Shaw <joeshaw@novell.com>
4005 * dbus/dbus-object-tree.c
4006 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4007 and we try to unregister a path that's not registered, still go
4008 through the process of unlocking and don't just return.
4010 2005-03-09 Colin Walters <walters@verbum.org>
4012 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4013 to this are generated for client-side wrappers. Invokes a
4014 D-BUS method and returns reply values.
4016 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4017 function; writes signature string for argument direction.
4018 (write_args_for_direction): Change to pass input values directly
4019 instead of via address, and fix indentation.
4020 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
4021 make generated wrappers inlineable.
4023 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4024 note about using dbus_type_is_fixed.
4026 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4027 dbus/dbus-signature.c as dbus_type_is_fixed.
4029 All callers updated.
4031 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4032 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4034 * dbus/dbus-signature.h: Prototype.
4036 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4039 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4040 appropriate instead of just freeing it.
4041 (main): Free returned strings using g_free.
4043 * test/glib/Makefile.am (test-service-glib-glue.h)
4044 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4046 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4047 simply maps a simple D-BUS type to GType.
4048 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4050 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4051 initialize the value with it.
4052 (dbus_gvalue_binding_type_from_type): Unused, delete.
4053 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4054 various types instead of unmarshalling to value data directly.
4055 Remove can_convert boolean.
4056 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4057 returning directly instead of using can_convert boolean.
4058 (dbus_gvalue_store): New function; not related to D-BUS per-se.
4059 Stores a GValue in a pointer to a value of its corresponding C
4062 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4063 add dbus_gvalue_store.
4065 2005-03-08 Joe Shaw <joeshaw@novell.com>
4067 Fix a bunch of lifecycle and memory management problems
4068 in the mono bindings.
4070 * mono/Arguments.cs (Arguments): Implement IDisposable
4072 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
4073 strictly a static class.
4075 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4076 delegates into this file.
4077 (Connection): Implement IDisposable.
4078 (Dispose): Disconnect the connection and set the raw connection
4079 pointer to IntPtr.Zero.
4080 (~Connection): Call Dispose().
4081 (RegisterObjectPath): Added. Manages the registration of object
4082 paths so we can cleanly disconnect them at dispose/finalize time.
4083 (UnregisterObjectPath): Ditto.
4084 (set_RawConnection): Unregister all of the object paths when
4085 changing the underlying DBusConnection. Add them back onto the
4086 new connection, if any.
4088 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4089 more unmanaged resources anymore, so it's not necessary. Move all
4090 the DBusObjectPathVTable stuff out of here.
4091 (Handler): Save references to our delegates so that they don't get
4092 finalized. Call Connection.RegisterObjectPath() instead of
4093 dbus_connection_register_object_path() directly.
4094 (Message_Called): Dispose the message after we're finished with
4097 * mono/Message.cs (Message): Implement IDisposable.
4098 (Dispose): Dispose the Arguments, and set the RawMessage to
4100 (SendWithReplyAndBlock): We own the ref to the reply that comes
4101 back from dbus_connection_send_with_reply_and_block() so add a
4102 comment about that and unref it after we've constructed a managed
4103 MethodReturn class around it. Fixes a big, big leak.
4105 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4107 (BuildSignalHandler): After we've sent the Signal message, dispose
4109 (BuildMethod): Dispose of the method call and reply messages after
4110 we've sent the message and extracted the data we want from the
4113 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4115 (Service_FilterCalled): Dispose of the message after we're
4118 2005-03-08 Joe Shaw <joeshaw@novell.com>
4120 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4121 After we attach our pending call to the connection, unref
4124 * mono/Connection.cs (set_RawConnection): Disconnect our
4125 filter and match callbacks from the old connection and
4126 reconnect them to the new connection, if any.
4128 * mono/DBusType/Array.cs: "Code" is a static member, so
4129 don't use "this" to refer to it. Fix for stricter checking
4132 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4133 object path that we pass into unmanaged code.
4135 * mono/DBusType/String.cs (Append): Don't leak the string
4136 that we pass into unmanged code.
4138 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4139 * NEWS: Update for 0.31
4141 * configure.in: Release 0.31
4142 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4144 * qt/Makefile.am: fixed build
4146 * dbus/Makefile.am: soname bump for libdbus
4148 * glib/Makefile.am: soname bump for libdbus-glib
4150 2005-03-05 Havoc Pennington <hp@redhat.com>
4152 * dbus/dbus-sysdeps.c:
4153 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4155 (_dbus_generate_random_bytes_buffer): fix return value
4157 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4158 checks actually work, from Tom Parker <fdo@tevp.net>
4160 2005-03-01 Colin Walters <walters@verbum.org>
4162 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4163 functions copied from dbus-glib-tool.c.
4164 (main): Convert lots of error code to use them.
4165 Also add some testing for introspection bits.
4167 2005-03-01 Colin Walters <walters@verbum.org>
4169 * doc/TODO: Remove introspection signature TODO.
4171 2005-02-27 Colin Walters <walters@verbum.org>
4173 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4174 Change return value to const char * instead of int so we can do
4176 (struct PropertyInfo, struct ArgInfo): Store char *.
4177 (property_info_new, arg_info_new): Update parameters, strdup.
4178 (property_info_unref, arg_info_unref): Free.
4180 * glib/dbus-gidl.h: Update prototypes.
4182 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4183 (validate_signature): New function, just validates signature and
4185 (parse_property, parse_arg): Invoke validate_signature. Store
4186 signature instead of just type code.
4188 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4189 function to return a primary type for a signature, dropping
4190 information about types in container types.
4191 (dbus_gvalue_genmarshal_name_from_type)
4192 (dbus_gvalue_binding_type_from_type)
4193 (dbus_gvalue_ctype_from_type): Update to take full signature
4194 instead of type code.
4195 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4197 * glib/dbus-gvalue.h: Update prototypes for above.
4199 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4200 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4201 (introspect_properties, introspect_signals, write_interface):
4202 Update to handle signatures, and remove usage of
4203 _dbus_gutils_type_to_string.
4204 (handle_introspect): Print out type codes instead of e.g. "string"
4205 in hardcoded introspection XML; also use x_AS_STRING constants
4206 instead of hardcoding in string.
4208 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4209 to string. Remove usage of _dbus_gutils_type_to_string.
4211 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4213 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4216 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4217 (compute_marshaller_name, generate_glue): Handle signature change
4219 (write_formal_parameters, write_args_for_direction): Ditto, and
4222 * tools/dbus-tree-view.c (type_to_string): Delete.
4223 (info_set_func_text): Update to print full signatures.
4225 * test/glib/test-service-glib.xml: Change types to new
4226 introspection format.
4228 2005-02-26 Havoc Pennington <hp@redhat.com>
4230 * doc/TODO: remove the "guid" item
4232 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4233 (with_bus_thread_func): use open_private
4235 * dbus/dbus-connection.c (dbus_connection_open_private): new
4236 function that works like the old dbus_connection_open()
4237 (dbus_connection_open): now returns an existing connection if
4240 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4241 through the GUID to the transport
4243 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4244 GUID in hex-encoded form.
4246 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4247 pass GUID argument in to the transport
4249 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4252 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4254 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4256 2005-02-25 Havoc Pennington <hp@redhat.com>
4258 * doc/dbus-specification.xml: document the GUID thing
4260 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4261 globally unique ID for the server, and put a "guid=hexencoded"
4262 field in the address
4264 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4266 * dbus/dbus-message.c: ditto
4268 * dbus/dbus-dataslot.c: ditto
4270 * dbus/dbus-list.c: ditto
4272 * dbus/dbus-internals.h: wait, just include
4273 dbus-threads-internal.h here
4275 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4278 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4280 2005-02-24 Colin Walters <walters@verbum.org>
4282 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4284 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4286 * glib/Makefile.am: added dbus-gobject.h to sources list
4287 so distcheck doesn't fail
4289 2005-02-24 Havoc Pennington <hp@redhat.com>
4291 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4292 you must disconnect before unref, since locking and other things
4293 are screwed up otherwise. Fix assorted other locking stuff.
4295 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4298 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4299 into a private header and don't export from the library
4301 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4303 2005-02-24 Colin Walters <walters@verbum.org>
4305 * dbus/dbus-signature.c: New file; implements various functions
4306 related to type signatures. Includes an interator for parsing,
4307 validation functions.
4308 (dbus_type_is_basic): Moved here from
4309 dbus-marshal-basic.c:_dbus_type_is_basic.
4310 (dbus_type_is_container): Moved here from
4311 dbus-marshal-basic.c:_dbus_type_is_container.
4313 All callers of _dbus_type_is_container and _dbus_type_is_basic
4314 updated, and include dbus-signature.h.
4316 * dbus/dbus-signature.h: New file; prototypes for the above.
4318 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4321 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4322 function factored out of _dbus_first_type_in_signature.
4323 (_dbus_first_type_in_signature_c_str): New function; returns first
4324 type code for a type signature character.
4326 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4327 handle function moves.
4329 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4331 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4332 function; skips to next complete type in type signature.
4333 Implemented using previous skip_one_complete_type. Now
4334 skip_one_complete_type just delegates to
4335 _dbus_type_signature_next.
4337 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4339 (_dbus_type_is_container): Ditto.
4341 * doc/dbus-specification.xml: Update introspection sample to
4342 use real type signatures.
4344 * dbus/dbus-test.h: Prototype signature test.
4346 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4349 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4351 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4353 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4354 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4356 2005-02-21 Colin Walters <walters@verbum.org>
4358 * dbus/dbus-test-main.c (main): Take optional specific test
4361 * dbus/dbus-test.c (run_test): New function, runs a test function
4362 with no data directory.
4363 (run_data_test): Like above, but takes data directory.
4364 (dbus_internal_do_not_use_run_tests): Take
4365 specific test argument. Replace lots of cut n' paste code
4366 with run_test and run_data_test.
4368 * dbus/dbus-test.h: Update prototype for
4369 dbus_internal_do_not_use_run_tests.
4371 2005-02-20 Havoc Pennington <hp@redhat.com>
4373 Fix bugs reported by Daniel P. Berrange
4375 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4376 (protected_change_watch): new function
4377 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4378 (_dbus_server_add_watch): change to work like the
4379 dbus-connection.c equivalents; like those, probably kind of
4380 busted, but should at least mostly work for now
4381 (dbus_server_disconnect): drop the lock if we were already
4382 disconnected, patch from Daniel P. Berrange
4384 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4385 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4388 * doc/TODO: todo about unscrewing this mess
4390 2005-02-19 Colin Walters <walters@verbum.org>
4392 * glib/dbus-binding-tool-glib.c
4393 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4395 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4396 as errno.h and sys/stat.h.
4397 (lose): New function, prints error with
4399 (lose_gerror): Similar, but takes GError for message.
4400 (main): Add --output argument to specify output file to write to,
4401 instead of always printing to stdout. In this mode, determine
4402 timestamps on source files to see whether any are newer than the
4403 target file. If not, exit. Also convert a number of error
4404 messages to use lose (since it's shorter), and switch to using
4405 g_io_channel_shutdown.
4407 2005-02-19 Havoc Pennington <hp@redhat.com>
4409 * glib/dbus-gobject.c
4410 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4412 * glib/dbus-glib.c: fix doxygen warnings
4414 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4415 is found on an <arg>
4417 2005-02-17 Colin Walters <walters@verbum.org>
4419 * glib/dbus-gobject.h: Don't export
4420 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4422 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4423 (invoke_object_method): Handle it.
4425 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4428 2005-02-17 Colin Walters <walters@verbum.org>
4430 * bus/.cvsignore, doc/.cvsignore
4431 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4434 2005-02-17 Colin Walters <walters@verbum.org>
4436 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4437 Rename to DBUS_SERVICE_DBUS.
4438 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4439 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4440 Change the value from "org.freedesktop.Local"
4441 to "org.freedesktop.DBus.Local".
4442 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4443 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4444 DBUS_INTERFACE_INTROSPECTABLE.
4445 Change the value from "org.freedesktop.Introspectable"
4446 to "org.freedesktop.DBus.Introspectable".
4447 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4448 DBUS_INTERFACE_PROPERTIES.
4449 Change the value from "org.freedesktop.Properties"
4450 to "org.freedesktop.DBus.Properties".
4451 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4452 DBUS_INTERFACE_PEER.
4453 Change the value from "org.freedesktop.Peer"
4454 to "org.freedesktop.DBus.Peer".
4455 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
4456 DBUS_INTERFACE_LOCAL.
4457 Change the value from "org.freedesktop.Local"
4458 to "org.freedesktop.DBus.Local".
4460 All other users of those constants have been changed.
4462 * bus/driver.c (bus_driver_handle_introspect): Use constants.
4464 * glib/dbus-gobject.c (handle_introspect): Use constants.
4466 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4468 2005-02-17 Colin Walters <walters@verbum.org>
4470 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4471 (parse_node, parse_interface, parse_method, parse_signal)
4472 (parse_property, parse_annotation): Lose if we're currently in an
4474 (parse_annotation): New function.
4475 (parser_start_element, parser_end_element): Handle annotation.
4476 (parse_method, parse_interface): Remove support for c_name attribute,
4477 switch to annotations.
4479 * glib/dbus-gidl.h (interface_info_get_binding_names)
4480 (method_info_get_binding_names)
4481 (interface_info_get_binding_name, method_info_get_binding_name)
4482 (interface_info_set_binding_name, method_info_set_binding_name):
4484 (interface_info_get_annotations, method_info_get_annotations)
4485 (interface_info_get_annotation, method_info_get_annotation)
4486 (interface_info_add_annotation, method_info_add_annotation):
4489 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4491 (struct MethodInfo): Ditto.
4492 Straightfoward conversion of binding methods into annotation methods
4495 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4497 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4499 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4500 Use new annotation API.
4502 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
4505 * doc/dbus-specification.xml: Discuss introspection annotations,
4506 include list of well-known annotations.
4508 * test/glib/test-service-glib.xml: Make validate against new DTD.
4510 2005-02-17 Colin Walters <walters@verbum.org>
4512 This patch is based on initial work from
4513 Paul Kuliniewicz <kuliniew@purdue.edu>.
4515 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4516 initialization of GValue from dbus type to here.
4517 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4518 for the "glib-genmarshal" program from a DBus type.
4519 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4520 into the C name for it we use in the glib bindings.
4521 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4522 glib C type (not GValue).
4523 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4525 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4526 from dbus-gobject.c.
4528 * glib/dbus-gutils.h: Prototype it.
4530 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4531 (marshal_dbus_message_to_g_marshaller): Use new shared function
4532 dbus_glib_marshal_dbus_message_to_gvalue_array.
4534 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4535 Will be changed once we have annotations.
4537 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4538 GStaticRWLock. Callers updated.
4539 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
4540 (string_table_next): New function for iterating over zero-terminated
4542 (string_table_lookup): New function; retrieves specific entry in
4544 (get_method_data): New function; look up method data in object data chunk.
4545 (object_error_domain_prefix_from_object_info)
4546 (object_error_code_from_object_info): New functions, but not implemented yet.
4547 (method_interface_from_object_info): New function; retrieve interface name.
4548 (method_name_from_object_info): New function; retrieve method name.
4549 (method_arg_info_from_object_info): New function; retrieve argument data.
4550 (arg_iterate): New function; iterates over serialized argument data.
4551 (method_dir_signature_from_object_info): New function; returns a
4552 GString holding type signature for arguments for just one
4553 direction (input or output).
4554 (method_input_signature_from_object_info)
4555 (method_output_signature_from_object_info): New functions.
4556 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4557 converts dbus message arguments into a GValue array. Used for both
4558 signal handling and method invocation.
4559 (struct DBusGlibWriteIterfaceData): New utility structure.
4560 (write_interface): New function; generate introspection XML for
4562 (introspect_interfaces): New function; gathers all interface->methods,
4563 generates introspection XML for them.
4564 (handle_introspect): Invoke introspect_interfaces.
4565 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4566 (lookup_object_and_method): New function; examines an incoming message
4567 and attempts to match it up (via interface, method name, and argument
4568 signature) with a known object and method.
4569 (gerror_domaincode_to_dbus_error_name): New function; converts a
4570 GError domain and code into a DBus error name. Needs GError data
4571 added to object introspection to work well.
4572 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4574 (invoke_object_method): New function to invoke an object method
4575 looked up via lookup_object_and_method. Parses the incoming
4576 message, turns it into a GValue array, then invokes the marshaller
4577 specified in the DBusGMethodInfo. Creates a new message with
4578 either return values or error message as appropriate.
4579 (gobject_message_function): Invoke lookup_object_and_method and
4580 invoke_object_method.
4582 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4583 (enum DBusBindingOutputMode): New enum for binding output modes.
4584 (pretty_print): Print binding names.
4585 (dbus_binding_tool_error_quark): GError bits.
4586 (version): Fix typo.
4587 (main): Create GIOChannel for output. Parse new --mode argument,
4588 possible values are "pretty-print", "glib-server", "glib-client".
4589 Use mode to invoke appropriate function.
4591 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4593 * glib/dbus-glib-tool.h: New header, just includes GError bits
4596 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4597 maps binding style to name.
4598 (struct MethodInfo): Ditto.
4599 (get_hash_keys, get_hash_key): Utility function, returns keys for
4601 (interface_info_new, method_info_new): Initialize bindings.
4602 (interface_info_unref, method_info_unref): Destroy bindings.
4603 (method_info_get_binding_names, method_info_get_binding_name)
4604 (interface_info_get_binding_names, interface_info_get_binding_name):
4605 Functions for retrieving binding names.
4606 (method_info_set_binding_name, interface_info_set_binding_name):
4607 Functions for setting binding names.
4609 * glib/dbus-binding-tool-glib.h: New file, has prototypes
4610 for glib binding generation.
4612 * glib/dbus-binding-tool-glib.c: New file, implements server-side
4613 and client-side glib glue generation.
4615 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4616 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4619 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4620 of using GClosureMarshal directly.
4621 (struct DBusGObjectInfo): Add n_infos member.
4623 * test/glib/test-service-glib.xml: New file; contains introspection data
4624 for MyTestObject used in test-service-glib.c.
4626 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4627 (my_object_do_nothing, my_object_increment, my_object_throw_error)
4628 (my_object_uppercase, my_object_many_args): New test methods.
4629 (main): Use dbus_g_object_class_install_info to include generated object
4632 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4633 as well as client-side bindings.
4635 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4636 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4637 using both the dbus_gproxy stuff directly as well as the generated bindings.
4639 2005-02-15 Havoc Pennington <hp@redhat.com>
4641 * dbus/dbus-connection.c (dbus_connection_dispatch): always
4642 complete a pending call, don't run filters first.
4644 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4645 dbus_pending_call_steal_reply
4647 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4648 _dbus_connection_block_pending_call
4649 (dbus_pending_call_get_reply): change to steal_reply and return a
4652 * dbus/dbus-connection.c
4653 (dbus_connection_send_with_reply_and_block): port to work in terms
4655 (_dbus_connection_block_pending_call): replace block_for_reply
4658 2005-02-14 Havoc Pennington <hp@redhat.com>
4660 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4661 properly handle looking up group information by name; fix
4664 2005-02-13 Havoc Pennington <hp@redhat.com>
4666 * dbus/dbus-connection.c (dbus_connection_return_message)
4667 (dbus_connection_borrow_message): hold dispatch lock while message
4669 (_dbus_connection_block_for_reply): hold dispatch lock while we
4670 block for the reply, so nobody steals our reply
4671 (dbus_connection_pop_message): hold the dispatch lock while we
4674 2005-02-13 Havoc Pennington <hp@redhat.com>
4676 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4677 (_dbus_connection_release_dispatch)
4678 (_dbus_connection_acquire_io_path)
4679 (_dbus_connection_release_io_path): make the mutex and condvar
4680 control access to the "acquired" flag. Drop the connection lock
4681 while waiting on the condvar. Hopefully these are baby steps in
4682 roughly the right direction.
4684 2005-02-13 Havoc Pennington <hp@redhat.com>
4686 * dbus/dbus-connection.c: use separate mutexes for the condition
4687 variables; this is some kind of baseline for sanity, but the
4688 condition variables still aren't used correctly afaict
4690 2005-02-13 Havoc Pennington <hp@redhat.com>
4692 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4695 * dbus/dbus-connection.c
4696 (_dbus_connection_detach_pending_call_unlocked): add this
4698 Initial semi-correct pass through to fix thread locking; there are
4699 still some issues with the condition variable paths I'm pretty
4702 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4705 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4706 rename to add _unlocked
4707 (struct DBusConnection): move "dispatch_acquired" and
4708 "io_path_acquired" to use only one bit each.
4709 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4710 (dbus_connection_set_watch_functions): hacky fix to reentrancy
4711 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
4712 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
4713 (_dbus_connection_remove_timeout)
4714 (_dbus_connection_toggle_timeout): drop lock when calling out to
4715 user functions; done in a hacky/bad way.
4716 (_dbus_connection_send_and_unlock): add a missing unlock
4717 (_dbus_connection_block_for_reply): add a missing unlock
4719 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4720 drop lock in a hacky probably unsafe way to call out to user
4723 2005-02-12 Havoc Pennington <hp@redhat.com>
4725 * tools/dbus-tree-view.c (info_set_func_text): display more
4728 * bus/driver.c (bus_driver_handle_list_services): list the bus
4731 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4733 * glib/dbus-gidl.c (signal_info_get_n_args): new function
4734 (method_info_get_n_args): new function
4736 2005-02-12 Havoc Pennington <hp@redhat.com>
4738 * bus/driver.c (bus_driver_handle_introspect): add introspection
4741 2005-02-12 Havoc Pennington <hp@redhat.com>
4743 * bus/driver.c: put the signature of each bus driver method in the
4744 table of handlers and check it on incoming calls; this isn't
4745 really useful, but going to add introspect support in a minute.
4747 2005-02-11 Joe Shaw <joeshaw@novell.com>
4749 * mono/Connection.cs: The unpredictability of finalizers in mono
4750 prevents us from deterministically disconnecting the filters from
4751 the Service class's finalizer, so move tracking of filters and
4752 matches here. Add API for that.
4754 * mono/Service.cs: Remove the code, add code which calls the
4755 methods now on the Connection class.
4757 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
4759 * python/dbus.py (class Sender): added to support dbus signals better
4760 (Bus::add_signal_receiver): added expand_args parameter which defaults
4761 to True. When expand args is True the signal handler will pass the
4762 message arguments as parameters to the signal handler. If False
4763 revert to previous behavior where the signal handler must get the
4764 argument list from the message. This is to help port applications
4765 like HAL that have a tendancy to send variable length argument lists.
4766 self._match_rule_to_receivers is now a dict of dicts.
4767 (Bus::remove_signal_receiver): pop handler off the dict intead of
4768 removing it from a list
4769 (Bus::_signal_func): change signal handlers so that interface,
4770 signal_name, service, path and message are packed into a Sender
4771 object and that is passed to the handler. If expand_args is True
4772 extract the args list from the message and append it to the parameter
4775 * python/dbus_bindings.pyx.in (class Signature): added to support
4777 (MessageIter::__init__): changed iteration limit to match D-BUS
4778 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
4779 STRUCT and VARIENT type support
4780 (MessageIter::python_value_to_dbus_sig): made recursive to support
4782 (MessageIter::append*): added Signature, dict, tuple
4785 * python/examples/example-client.py: added examples of getting tuples
4788 * python/examples/example-service.py: added examples of sending tuples
4791 * python/examples/example-signal-recipient.py: Fixed to handle new
4792 signal callback format
4794 2005-02-10 Havoc Pennington <hp@redhat.com>
4796 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4797 (call dbus_g_proxy_add_signal)
4799 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4801 (_dbus_server_new_for_domain_socket): escape the path
4803 * dbus/dbus-address.c (dbus_address_escape_value): new
4804 (dbus_address_unescape_value): new
4805 (dbus_parse_address): unescape values
4807 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4809 * doc/dbus-specification.xml: explain how to escape values in
4812 2005-02-10 Havoc Pennington <hp@redhat.com>
4814 * dbus/dbus-message-factory.c (generate_special): modify test to
4815 avoid using a non-basic dict key
4817 * dbus/dbus-marshal-validate-util.c: add test for the below
4819 * doc/dbus-specification.xml: require that dict keys are a basic
4822 * dbus/dbus-marshal-validate.c
4823 (_dbus_validate_signature_with_reason): require that dict key is a
4826 2005-02-10 Havoc Pennington <hp@redhat.com>
4828 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4829 change to be _and_unlock instead of _unlocked
4831 * dbus/dbus-connection.c
4832 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4833 have no_update so we can find this bug quickly in future
4835 2005-02-10 Havoc Pennington <hp@redhat.com>
4837 * dbus/dbus-message-util.c (verify_test_message): tests for string
4840 * dbus/dbus-message.c (dbus_message_append_args_valist): add
4841 support for arrays of string/signature/path
4843 2005-02-10 Joe Shaw <joeshaw@novell.com>
4845 * dbus/dbus-connection.c
4846 (_dbus_connection_queue_received_message_link,
4847 _dbus_connection_message_sent): Add the path to
4849 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
4850 _dbus_connection_send_preallocated_unlocked(), updated the
4851 dispatch status, and unlocks. Fixes a bug where certain
4852 situations (like a broken pipe) could cause a Disconnect message
4853 to not be sent, tricking the bus into thinking a service was still
4854 there when the process had quit.
4855 (_dbus_connection_send_preallocated): Call
4856 _dbus_connection_send_preallocated_and_unlock().
4857 (_dbus_connection_send_and_unlock): Added. Calls
4858 _dbus_connection_send_preallocated_and_unlock().
4859 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4860 (dbus_connection_send_with_reply): Update the dispatch status and
4863 * mono/Service.cs (~Service): Added. Removes the filter so that
4864 we don't get unmanaged code calling back into a GCed delegate.
4865 (RemoveFilter); Added.
4867 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
4869 * dbus/dbus-message.c (dbus_message_iter_open_container):
4870 - Removed check for iterator type being an array because
4871 get_arg_type does not work with writer iterators
4872 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4874 2005-02-07 Havoc Pennington <hp@redhat.com>
4876 * doc/dbus-specification.xml: some more language cleanups; add
4877 stuff about how to deal with invalid protocol and extension
4878 points; add _ to allowed chars in auth commands; add EXTENSION_
4881 2005-02-06 Havoc Pennington <hp@redhat.com>
4883 * s/expected/required/ in a couple places for clarity
4885 2005-02-07 Colin Walters <walters@verbum.org>
4887 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4888 sender or proposed_recipient.
4890 2005-02-06 Havoc Pennington <hp@redhat.com>
4892 * dbus/dbus-message-factory.c (generate_special): more tests
4894 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4895 array length that exceeds the maximum
4897 2005-02-05 Havoc Pennington <hp@redhat.com>
4899 * dbus/dbus-message-factory.c (generate_special): more test cases,
4902 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4903 reason why a signature was invalid
4905 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4906 skip the length of the string before we look at it in validation
4908 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4911 * dbus/dbus-message.c (_dbus_message_loader_new): default
4912 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4914 2005-02-05 Havoc Pennington <hp@redhat.com>
4916 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4917 if the signature of a variant was empty
4918 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4919 struct with no element type)
4921 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4922 mangled messages to break things
4924 2005-02-04 Havoc Pennington <hp@redhat.com>
4926 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4927 g_quark_try_string() so it actually can return 0
4928 (dbus_g_proxy_connect_signal): ditto
4930 2005-02-04 Havoc Pennington <hp@redhat.com>
4932 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4934 (tristring_from_message): assert cleanly on null path/interface
4935 (should not be possible though I decided later)
4936 (dbus_g_proxy_dispose): move proxy manager unregistration here
4937 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4938 g_return_if_fail() checks
4940 2005-02-04 Havoc Pennington <hp@redhat.com>
4942 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4944 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4945 (with some minor changes)
4947 * doc/dbus-specification.xml: add deprecated attribute to
4948 introspection format
4950 2005-01-31 Havoc Pennington <hp@redhat.com>
4952 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4953 think it's sort of right
4955 2005-01-30 Havoc Pennington <hp@redhat.com>
4957 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4959 2005-01-30 Havoc Pennington <hp@redhat.com>
4961 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4963 * autogen.sh: change to autotools 1.9
4965 * glib/dbus-gproxy.c: completely change how signals work
4966 (dbus_g_proxy_add_signal): new function to specify signature of a
4968 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4969 and g_warning if the incoming message has the wrong signature.
4971 2005-01-30 Havoc Pennington <hp@redhat.com>
4973 * tools/dbus-names-model.c (have_names_notify): fix this
4975 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4976 up the string array handling a bit
4978 2005-01-30 Havoc Pennington <hp@redhat.com>
4980 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4981 (dbus_g_pending_call_cancel): new function
4983 * dbus/dbus-glib.h: move GType decls for connection/message here;
4984 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4985 here, just kind of rationalizing how we handle all that
4987 * tools/dbus-names-model.c: new file for a tree model listing the
4990 * tools/dbus-tree-view.c (model_new): use proper typing on the
4993 2005-01-30 Havoc Pennington <hp@redhat.com>
4995 * glib/dbus-gmain.c: add a custom GSource back that just checks
4996 whether the message queue has anything in it; otherwise, there are
4997 cases where we won't see messages in the queue since there was no
4998 IO visible to the glib main loop
5000 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5001 increase default message timeout to 25 seconds
5003 2005-01-30 Havoc Pennington <hp@redhat.com>
5005 * test/glib/test-profile.c (no_bus_stop_server): remove the
5006 warning about the g_warning that I just fixed
5008 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5009 custom source, seems to be a lot easier to understand and work
5012 2005-01-30 Havoc Pennington <hp@redhat.com>
5014 I think this main loop thing is conceptually broken, but here are
5015 some band aids. I'll maybe rewrite it in a minute.
5017 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5018 custom GSource, so don't pass it in; confusing
5019 (gsource_server_finalize, gsource_connection_finalize): add
5020 finalize handlers that remove all the watches.
5022 2005-01-30 Havoc Pennington <hp@redhat.com>
5024 * glib/dbus-gobject.c (introspect_properties): fix the XML
5027 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5028 which effectively detects the use of freed messages
5030 * glib/dbus-gobject.c (handle_introspect): modify and return the
5031 reply message instead of the incoming message
5033 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5034 gee, maybe it should SEND THE XML instead of just making a string
5035 and freeing it again ;-)
5037 * tools/dbus-print-message.c (print_message): improve printing of
5040 * configure.in: add debug-glib.service to the output
5042 2005-01-30 Havoc Pennington <hp@redhat.com>
5044 dbus-viewer introspected and displayed the bus driver
5046 * dbus/dbus-object-tree.c
5047 (object_tree_test_iteration): add tests for a handler registered on "/"
5049 * dbus/dbus-object-tree.c
5050 (_dbus_decompose_path): fix to handle path "/" properly
5051 (run_decompose_tests): add tests for path decomposition
5053 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5056 * glib/dbus-gobject.c (handle_introspect): fix quotes
5058 * test/glib/run-test.sh: support launching the bus, then running
5061 * test/glib/test-service-glib.c (main): put in a trivial gobject
5062 subclass and register it on the connection
5064 * bus/driver.c (bus_driver_handle_introspect): implement
5065 introspection of the bus driver service
5067 * dbus/dbus-protocol.h: add #defines for the XML namespace,
5068 identifiers, doctype decl
5070 * bus/driver.c (bus_driver_handle_get_service_owner): handle
5071 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
5072 returning the service unchanged.
5073 (bus_driver_handle_message): remove old check for reply_serial in
5074 method calls, now the message type deals with that
5075 (bus_driver_handle_message): handle NULL interface
5077 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5079 * glib/dbus-gloader-expat.c (description_load_from_string): allow
5082 * tools/dbus-viewer.c: add support for introspecting a service on
5085 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5086 (dbus_g_pending_call_unref): add
5088 2005-01-29 Havoc Pennington <hp@redhat.com>
5090 * tools/dbus-tree-view.c: add support for displaying properties.
5091 (run dbus-viewer with an introspect xml file as arg, then resize
5092 the window so the tree elements show up, not sure what that is)
5094 * glib/dbus-gobject.c (handle_introspect): return
5095 org.freedesktop.Properties and org.freedesktop.Introspectable
5096 interfaces when we are introspected.
5098 * doc/dbus-specification.xml: allow empty interface name when
5101 2005-01-29 Havoc Pennington <hp@redhat.com>
5103 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5104 though it uses glib, it could be extended for any binding in
5107 * glib/dbus-gobject.c (gobject_message_function): change to the
5108 new way properties work
5110 * dbus/dbus-protocol.h: add the new interfaces
5112 * doc/dbus-specification.xml: document the introspection format,
5113 Introspectable interface, and add an org.freedesktop.Properties
5116 * glib/dbus-gparser.c: add support for a <property> element
5118 * glib/dbus-gidl.c: add PropertyInfo
5120 * glib/dbus-gobject.c (handle_introspect): put the outermost
5121 <node> outside the signal and property descriptions.
5122 (introspect_properties): export properties as <property> rather
5123 than as method calls
5125 2005-01-28 Havoc Pennington <hp@redhat.com>
5127 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5128 related to authentication protocol
5130 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
5132 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5133 - BUS_ACTIVATION -> BUS_STARTER
5134 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5135 - class MessageIter (__init__): Added recursion checking
5136 so we throw a nice error instead of just disconnecting from the
5138 (get): Added arg_type parameter for recursion.
5139 Removed the nil type
5140 Added signiture type placeholder (not implemented)
5141 Added struct type placeholder (not implemented)
5142 Added varient type placeholder (not implemented)
5143 Commented out dict type for now
5144 (get_element_type): renamed from get_array_type
5145 (get_*): changed to use the dbus_message_iter_get_basic API
5146 (get_*_array): removed in favor of recursive get_array method
5147 (get_array): new recursive method which calls get to marshal
5148 the elements of the array
5149 (value_to_dbus_sig): New method returns the corrasponding
5150 dbus signiture to a python value
5151 (append): Comment out dict handling for now
5152 Handle lists with the new recursive API
5153 Comment out None handling for now
5154 (append_nil): removed
5155 (append_*): changed to use dbus_message_iter_append_basic API
5156 (append_*_array): removed in favor of recursive append_array
5158 (__str__): Make it easier to print out recursive iterators
5160 - class Message (__str__): moved type inspection to the
5161 MessageIter class' __str__ method
5162 (get_iter): Added an append parameter wich defaults to False
5163 If True use the new API's to create an append iterator
5165 * python/dbus.py: Update to use new bindings API
5166 - TYPE_ACTIVATION -> TYPE_STARTER
5167 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5168 - class ActivationBus -> class StarterBus
5169 - class RemoteObject (__call__): get an append iterator
5170 - (_dispatch_dbus_method_call): get an append iterator
5171 - class Object (emit_signal): get an append iterator
5173 * python/examples/: Fixed up the examples to work with the new API
5175 2005-01-28 Joe Shaw <joeshaw@novell.com>
5177 * configure.in: Bump version up to 0.30.
5179 * HACKING: Add a release item to bump the version number up after
5182 2005-01-28 Havoc Pennington <hp@redhat.com>
5184 * doc/dbus-specification.xml: update to describe 16-bit types and
5187 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5190 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5193 * dbus/dbus-marshal-recursive.c: implement
5195 2005-01-27 Havoc Pennington <hp@redhat.com>
5197 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5199 * configure.in: find the right type for 16 and 32 bit ints as well
5202 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5203 the 16-bit types so people don't have to stuff them in 32-bit or
5206 2005-01-27 Havoc Pennington <hp@redhat.com>
5208 * dbus/dbus-message.c: byteswap the message if you init an
5209 iterator to read/write from it
5211 * dbus/dbus-marshal-byteswap.c: new file implementing
5212 _dbus_marshal_byteswap()
5214 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5216 2005-01-26 Havoc Pennington <hp@redhat.com>
5218 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5219 build, apparently - nobody noticed?)
5221 2005-01-26 Havoc Pennington <hp@redhat.com>
5223 * dbus/dbus-marshal-recursive.h: remove todo comment
5225 2005-01-25 Joe Shaw <joeshaw@novell.com>
5227 * Land the mono binding changes to conform to the new APIs.
5229 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5230 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5232 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5233 type code as a string.
5234 (InitAppending): Rename dbus_message_append_iter_init() to
5235 dbus_message_iter_init_append().
5237 * mono/BusDriver.cs: Rename ServiceEventHandler to
5238 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5239 Rename ServiceOwnerChanged to NameOwnerChanged.
5241 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5244 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5246 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5247 dbus_bus_acquire_service() to dbus_bus_request_name().
5249 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5250 of Type.UnderlyingSystemType to get the correct element type for
5252 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5253 dbus_message_get_{element|arg}_type() instead of
5254 dbus_message_iter_init_array_iterator().
5255 (Append): Replace dbus_message_iter_append_array() with
5256 dbus_message_iter_open_container() and
5257 dbus_message_iter_close_container().
5259 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5260 types have been removed.
5262 * mono/DBusType/*.cs: Replace calls of
5263 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5264 but specify the type in the DllImport extern declaration. Ditto
5265 for dbus_message_iter_append_[type]() ->
5266 dbus_message_iter_append_basic().
5268 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5269 NameOwnerChangedHandler.
5271 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5273 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5274 - get_base_service -> get_unique_name
5275 - bus_get_base_service -> bus_get_unique_name
5276 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5277 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5278 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5279 - bus_activate_service -> bus_start_service_by_name
5280 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5281 - bus_acquire_service -> bus_request_name
5282 - dbus_bus_acquire_service -> dbus_bus_request_name
5283 - bus_service_exists -> bus_name_has_owner
5284 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5286 * python/dbus.py: Rename of methods
5287 - activate_service -> start_service_by_name
5288 - bus_acquire_service -> bus_request_name
5289 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5290 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5293 2005-01-24 Joe Shaw <joeshaw@novell.com>
5295 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5296 signature for the method that can't be found.
5298 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5299 the message has any arguments, we need to call
5300 _dbus_type_reader_get_current_type(), not
5301 _dbus_type_reader_has_next().
5303 2005-01-24 Havoc Pennington <hp@redhat.com>
5305 * dbus/dbus-message-factory.c: more testing of message validation
5307 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5310 2005-01-23 Havoc Pennington <hp@redhat.com>
5312 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5313 get this all working, not many tests in the framework yet though
5315 2005-01-22 Havoc Pennington <hp@redhat.com>
5317 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5318 tutorial, based on work from David Wheeler.
5320 2005-01-21 Havoc Pennington <hp@redhat.com>
5322 * dbus/dbus-bus.c: add more return_if_fail checks
5324 * dbus/dbus-message.c (load_message): have the "no validation"
5325 mode (have to edit the code to toggle the mode for now though)
5327 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5328 skips all validation; I want to use this at least for benchmark
5329 baseline, I'm not sure if it should be a publicly-available switch.
5331 2005-01-21 Havoc Pennington <hp@redhat.com>
5333 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5334 toplevel doxygen group as the low-level API stuff
5336 * dbus/dbus.h: note that libdbus is the low-level API
5338 2005-01-20 Havoc Pennington <hp@redhat.com>
5340 * update-dbus-docs.sh: script to update docs on the web site, only
5341 works for me though. neener.
5343 2005-01-20 Havoc Pennington <hp@redhat.com>
5345 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5346 code can reveal bugs in it
5348 2005-01-20 Havoc Pennington <hp@redhat.com>
5350 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5351 select() version, patches from Tor Lillqvist
5353 2005-01-20 Havoc Pennington <hp@redhat.com>
5355 * doc/dbus-tutorial.xml: replace > with >
5357 * bus/services.c (bus_registry_acquire_service): validate the name
5358 and return a better error if it's no good.
5360 * doc/dbus-specification.xml: note NO_AUTO_START change
5362 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5363 from AUTO_START, we're toggling the default
5365 * bus/dispatch.c: adapt the tests to change of auto-start default
5367 2005-01-18 Havoc Pennington <hp@redhat.com>
5369 * rename dbus-daemon-1 to dbus-daemon throughout
5371 2005-01-18 Havoc Pennington <hp@redhat.com>
5373 * Throughout, grand renaming to strip out the use of "service",
5374 just say "name" instead (or "bus name" when ambiguous). Did not
5375 change the internal code of the message bus itself, only the
5376 programmer-facing API and messages.
5378 * doc/dbus-specification.xml: further update the message bus section
5380 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5383 2005-01-17 Havoc Pennington <hp@redhat.com>
5385 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5388 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5389 "invalid name character" not only non-ASCII
5391 * doc/dbus-specification.xml: further update spec, message bus
5392 parts are still out-of-date but the marshaling etc. stuff is now
5395 2005-01-17 Havoc Pennington <hp@redhat.com>
5397 * doc/dbus-specification.xml: partially update spec
5399 2005-01-17 Havoc Pennington <hp@redhat.com>
5401 * Throughout, align variant bodies according to the contained
5402 type, rather than always to 8. Should save a fair bit of space in
5405 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5406 fix handling of case where p == end
5408 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5410 2005-01-17 Havoc Pennington <hp@redhat.com>
5412 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5414 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5415 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5416 are marshaling/unmarshaling a boolean.
5418 2005-01-16 Havoc Pennington <hp@redhat.com>
5420 This is about it on what can be disabled/deleted from libdbus
5421 easily, back below 150K anyhow. Deeper cuts are more work than
5422 just turning the code off as I've done here.
5424 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5425 signed int convenience funcs
5427 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5430 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5431 things out of libdbus
5433 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5435 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5436 tests-enabled-only, though it should probably be deleted)
5438 * dbus/dbus-message-util.c: same stuff
5440 * dbus/dbus-auth-util.c: same stuff
5442 2005-01-16 Havoc Pennington <hp@redhat.com>
5444 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5446 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5447 way for stripping down dbus-userdb.c stuff included in libdbus.
5448 Rename _dbus_parse_uid for consistency.
5450 2005-01-16 Havoc Pennington <hp@redhat.com>
5452 * dbus/dbus-internals.c (_dbus_real_assert): print the function
5453 name the assertion failed in
5455 * dbus/dbus-internals.h (_dbus_return_if_fail)
5456 (_dbus_return_val_if_fail): assert that the name of the function
5457 containing the check doesn't start with '_', since we only want to
5458 use checks on public functions
5460 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5461 checks to assertions
5463 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5464 change checks to asserts for private function
5466 * dbus/dbus-message.c (_dbus_message_set_serial): checks
5467 to asserts for private function
5469 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5470 broken assertion that was breaking make check
5471 (_dbus_type_reader_array_is_empty): remove this rather than fix
5472 it, was only used in assertions
5474 2005-01-16 Havoc Pennington <hp@redhat.com>
5476 * test/unused-code-gc.py: hacky script to find code that's used
5477 only by the bus (not libdbus) or used only by tests or not used at
5478 all. It has some false alarms, but looks like we can clean up a
5479 lot of size from libdbus.
5481 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5482 dbus/Makefile.am: initially move 10K of binary size out of libdbus
5484 2005-01-16 Havoc Pennington <hp@redhat.com>
5486 * Add and fix docs according to Doxygen warnings throughout
5489 * dbus/dbus-marshal-recursive.c
5490 (_dbus_type_reader_array_is_empty): change this to just call
5491 array_reader_get_array_len() and make it static
5493 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5495 (dbus_message_iter_init_append): rename from append_iter_init
5497 * dbus/dbus-marshal-recursive.c
5498 (_dbus_type_reader_get_element_type): rename from
5499 _dbus_type_reader_get_array_type
5501 2005-01-15 Havoc Pennington <hp@redhat.com>
5503 * test/glib/test-profile.c (with_bus_server_filter): fix crash
5505 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5506 when DBUS_DISABLE_ASSERT
5507 (_dbus_marshal_set_basic): be sure we align for the string length
5509 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5512 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5513 inline macro version
5514 (_dbus_string_set_byte): provide inline macro version
5516 2005-01-15 Havoc Pennington <hp@redhat.com>
5518 * Land the new message args API and type system.
5520 This patch is huge, but the public API change is not
5521 really large. The set of D-BUS types has changed somewhat,
5522 and the arg "getters" are more geared toward language bindings;
5523 they don't make a copy, etc.
5525 There are also some known issues. See these emails for details
5527 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5528 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5530 * dbus/dbus-marshal-*: all the new stuff
5532 * dbus/dbus-message.c: basically rewritten
5534 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5535 freed blocks to be all non-nul bytes so using freed memory is less
5536 likely to work right
5538 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5539 DBUS_FAIL_MALLOC=N environment variable, so you can do
5540 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5541 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5544 * qt/message.cpp: port to the new message args API
5545 (operator<<): use str.utf8() rather than str.unicode()
5546 (pretty sure this is right from the Qt docs?)
5548 * glib/dbus-gvalue.c: port to the new message args API
5550 * bus/dispatch.c, bus/driver.c: port to the new message args API
5552 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5553 "locked" flag to TRUE and align_offset to 0; I guess we never
5554 looked at these anyhow, but seems cleaner.
5556 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5557 move allocation padding macro to this header; use it to implement
5558 (_DBUS_STRING_STATIC): ability to declare a static string.
5560 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5561 change to return TRUE if the interface is not set.
5563 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5564 to dbus-marshal-validate.[hc]
5566 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5569 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5570 to dbus-marshal-*.[hc]
5572 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5573 function here from dbus-marshal.c
5575 2005-01-12 Joe Shaw <joeshaw@novell.com>
5577 * NEWS: Update for 0.23.
5579 * configure.in: Release 0.23.
5581 2005-01-12 Joe Shaw <joeshaw@novell.com>
5583 * mono/Makefile.am, mono/example/Makefile.am: Always build the
5584 dbus DLL with --debug. Clean up after the .mdb files this leaves
5587 * mono/doc/Makefile.am: Need to uninstall the docs on "make
5590 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5591 is an enum, get the enum's underlying type. Another mono
5594 2005-01-11 Joe Shaw <joeshaw@novell.com>
5596 Patch from Sjoerd Simons <sjoerd@luon.net>
5598 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5599 DESTDIR. It breaks stuff.
5601 2005-01-11 Joe Shaw <joeshaw@novell.com>
5603 Patch from Tambet Ingo <tambet@ximian.com>
5605 * mono/DBusType/Array.cs (Get): Get the underlying element type by
5606 calling type.GetElementType(). The code previously depended on
5607 broken Mono behavior, which was fixed in Mono 1.1.3.
5609 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5610 Activator.CreateInstance() so that the class's constructor is
5611 called with the right parameters.
5613 2005-01-11 Joe Shaw <joeshaw@novell.com>
5615 Patch from Timo Teräs <ext-timo.teras@nokia.com>
5617 * dbus/dbus-connection.c
5618 (_dbus_connection_queue_received_message_link): Call
5619 _dbus_connection_remove_timeout() instead of the _locked()
5620 variant, since it's always called from
5621 _dbus_connection_handle_watch(), which handles the locking.
5622 Removed the _locked() variant since it's no longer used.
5624 2005-01-03 Havoc Pennington <hp@redhat.com>
5626 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5629 2004-12-26 Havoc Pennington <hp@redhat.com>
5631 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5633 2005-01-03 Havoc Pennington <hp@redhat.com>
5635 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5638 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5640 2005-01-02 Havoc Pennington <hp@redhat.com>
5642 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5644 2005-01-01 Havoc Pennington <hp@redhat.com>
5646 * configure.in: add -Wfloat-equal
5648 2005-01-01 Havoc Pennington <hp@redhat.com>
5650 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
5651 for a variety of reasons '==' doesn't do this.
5653 2004-12-31 Havoc Pennington <hp@redhat.com>
5655 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5656 I keep wishing I had
5658 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5660 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5662 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5664 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5665 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5666 dbus-protocol.h. Because they are defines and not enums they are not
5669 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
5671 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5672 dbus_bus_activate_service
5674 * python/dbus.py (Bus.activate_service): activate a service on the
5677 2004-12-24 Havoc Pennington <hp@redhat.com>
5679 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5680 file format has also changed and I haven't adapted to that yet
5682 * Makefile.am: load .gcno files from latest gcc
5684 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
5685 * Patch from Rob Taylor <robtaylor@fastmail.fm>
5687 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5690 * python/dbus.py (get_unix_user): Added binding to
5691 call dbus_bindings.bus_get_unix_user
5693 * python/extract.py: Modified the proto_pat regex to
5694 handle unsigned long
5696 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5698 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5699 better POSIX compliance.
5701 2004-12-19 Havoc Pennington <hp@redhat.com>
5703 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
5704 (_dbus_string_insert_8_aligned): new functions
5706 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5708 2004-12-18 Havoc Pennington <hp@redhat.com>
5710 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5713 * dbus/dbus-message.c: fix a comment, and add a still-unused
5714 not-implemented function
5716 * dbus/dbus-marshal.h: fix comment
5718 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5720 2004-12-17 Joe Shaw <joeshaw@novell.com>
5722 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5723 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5724 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5725 Type.UnderlyingSystemType to get the actual system type
5726 underneath. This code previously depended on the broken Mono
5727 behavior, which was fixed in 1.1.3.
5729 2004-11-27 Havoc Pennington <hp@redhat.com>
5731 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5733 (_dbus_string_get_const_data): inline when asserts are disabled
5735 * dbus/dbus-message.c: record the _dbus_current_generation of
5736 creation so we can complain if dbus_shutdown() is used improperly.
5737 Do this only if checks are enabled.
5739 * dbus/dbus-connection.c: ditto
5741 2004-11-26 Havoc Pennington <hp@redhat.com>
5743 * test/glib/test-profile.c: add with_bus mode to profile echoes
5744 that go through the bus.
5746 * test/glib/run-test.sh: add ability to run test-profile
5748 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5751 2004-11-26 Havoc Pennington <hp@redhat.com>
5753 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5754 thing was implemented
5756 2004-11-26 Havoc Pennington <hp@redhat.com>
5758 * test/glib/test-profile.c: tweak a bit, add support for some
5759 made-up minimal malloc overhead with plain sockets, since in
5760 real life some sort of buffers are unavoidable thus we could
5761 count them in the theoretical best case
5763 2004-11-26 Havoc Pennington <hp@redhat.com>
5765 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5766 where I was trying to cache one too many messages
5768 2004-11-26 Havoc Pennington <hp@redhat.com>
5770 * dbus/dbus-message.c: reimplement message cache as an array which
5771 makes the cache about twice as fast and saves maybe 1.5% overall
5773 2004-11-26 Havoc Pennington <hp@redhat.com>
5775 * dbus/dbus-threads.c (init_global_locks): forgot to put the
5776 message cache lock here
5778 2004-11-26 Havoc Pennington <hp@redhat.com>
5780 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5781 the "char byte_order" next to each other to save 4 bytes
5782 (dbus_message_new_empty_header): reduce preallocation, since the
5783 message cache should achieve a similar effect
5784 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5785 message cache that keeps a few DBusMessage around in a pool,
5786 another 8% speedup or so.
5788 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5790 2004-11-25 Havoc Pennington <hp@redhat.com>
5792 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5793 to write, without reading or blocking, try it before the poll()
5794 and skip the poll() if nothing remains to write. This is about a
5795 3% speedup in the echo client/server
5797 2004-11-25 Havoc Pennington <hp@redhat.com>
5799 The primary change here is to always write() once before adding
5800 the write watch, which gives us about a 10% performance increase.
5802 * dbus/dbus-transport-unix.c: a number of modifications to cope
5803 with removing messages_pending
5804 (check_write_watch): properly handle
5805 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5806 messages_pending stuff
5807 (check_read_watch): properly handle WAITING_FOR_MEMORY and
5809 (unix_handle_watch): after writing, see if the write watch can be
5811 (unix_do_iteration): assert that write_watch/read_watch are
5812 non-NULL rather than testing that they aren't, since they
5813 aren't allowed to be NULL. check_write_watch() at the end so
5814 we add the watch if we did not finish writing (e.g. got EAGAIN)
5816 * dbus/dbus-transport-protected.h: remove messages_pending call,
5817 since it resulted in too much inefficient watch adding/removing;
5818 instead we now require that the transport user does an iteration
5819 after queueing outgoing messages, and after trying the first
5820 write() we add a write watch if we got EAGAIN or exceeded our
5821 max bytes to write per iteration setting
5823 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5826 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5827 freed and then accessed, valgrind flagged this bug, fix it
5829 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5830 as the last valid field plus 1, where really it is equal to the
5831 last valid field. Corrects some message corruption issues.
5833 * dbus/dbus-mainloop.c: verbosity changes
5835 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5836 instead of aborting in one of the test codepaths
5838 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5839 caused not printing the pid ever again if a verbose was missing
5840 the newline at the end
5841 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5843 * dbus/dbus-connection.c: verbosity changes;
5844 (dbus_connection_has_messages_to_send): new function
5845 (_dbus_connection_message_sent): no longer call transport->messages_pending
5846 (_dbus_connection_send_preallocated_unlocked): do one iteration to
5847 try to write() immediately, so we can avoid the write watch. This
5848 is the core purpose of this patchset
5849 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5850 dump the outgoing message queue, so nobody will get confused
5851 trying to send them or thinking stuff is pending to be sent
5853 * bus/test.c: verbosity changes
5855 * bus/driver.c: verbosity/assertion changes
5857 * bus/dispatch.c: a bunch of little tweaks to get it working again
5858 because this patchset changes when/where you need to block.
5860 2004-11-23 Havoc Pennington <hp@redhat.com>
5862 * test/glib/test-profile.c: modify to accept a plain_sockets
5863 argument in which case it will bench plain sockets instead of
5864 libdbus, for comparison purposes.
5866 2004-11-22 Havoc Pennington <hp@redhat.com>
5868 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5869 threads for more time, so sysprof can get a grip on it.
5871 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5874 2004-11-13 Havoc Pennington <hp@redhat.com>
5876 * test/glib/test-profile.c: fix this thing up a bit
5878 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5879 preallocation sizes by a fair bit; not sure if this will be an
5880 overall performance win or not, but it does reduce reallocs.
5882 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5883 the test hack that forced constant realloc if asserts are
5884 disabled, so we can profile sanely. Sprinkle in some
5885 _DBUS_UNLIKELY() which are probably pointless, but before I
5886 noticed the real performance problem I put them in.
5887 (_dbus_string_validate_utf8): micro-optimize this thing a little
5888 bit, though callgrind says it didn't help; then special-case
5889 ascii, which did help a lot; then be sure we detect nul bytes as
5890 invalid, which is a bugfix.
5891 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5892 superstition; use memset to nul the padding instead of a manual
5894 (_dbus_string_get_length): inline this as a
5895 macro; it showed up in the profile because it's used for loop
5898 2004-11-10 Colin Walters <walters@verbum.org>
5900 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5903 2004-11-09 Colin Walters <walters@verbum.org>
5905 * dbus/dbus-string.c (_dbus_string_get_length): New
5906 function, writes DBusString to C buffer.
5908 * dbus/dbus-string.h: Prototype it.
5910 * dbus/dbus-message.c (dbus_message_type_to_string): New
5911 function, converts message type into C string.
5913 * dbus/dbus-message.h: Prototype it.
5915 * bus/selinux.c (bus_selinux_check): Take source pid,
5916 target pid, and audit data. Pass audit data to
5918 (log_audit_callback): New function, appends extra
5920 (bus_selinux_allows_acquire_service): Also take
5921 service name, add it to audit data.
5922 (bus_selinux_allows_send): Also take message
5923 type, interface, method member, error name,
5924 and destination, and add them to audit data.
5925 (log_cb): Initialize func_audit.
5927 * bus/selinux.h (bus_selinux_allows_acquire_service)
5928 (bus_selinux_allows_send): Update prototypes
5930 * bus/services.c (bus_registry_acquire_service): Pass
5931 service name to bus_selinux_allows_acquire_service.
5933 * bus/bus.c (bus_context_check_security_policy): Pass
5934 additional audit data. Move assignment of dest
5937 2004-11-07 Colin Walters <walters@verbum.org>
5939 * dbus/dbus-transport-unix.c (do_authentication): Always
5940 initialize auth_completed.
5942 2004-11-07 Colin Walters <walters@verbum.org>
5944 * bus/bus.c (load_config): Break into three
5945 separate functions: process_config_first_time_only,
5946 process_config_every_time, and process_config_postinit.
5947 (process_config_every_time): Move call of
5948 bus_registry_set_service_context_table into
5949 process_config_postinit.
5950 (process_config_postinit): New function, does
5951 any processing that needs to happen late
5952 in initialization (and also on reload).
5953 (bus_context_new): Instead of calling load_config,
5954 open config parser here and call process_config_first_time_only
5955 and process_config_every_time directly. Later, after
5956 we have forked but before changing UID,
5957 invoke bus_selinux_full_init, and then call
5958 process_config_postinit.
5959 (bus_context_reload_config): As in bus_context_new,
5960 load parse file inside here, and call process_config_every_time
5961 and process_config_postinit.
5963 * bus/services.h, bus/services.c
5964 (bus_registry_set_service_context_table): Rename
5965 from bus_registry_set_sid_table. Take string hash from config
5966 parser, and convert them here into SIDs.
5968 * bus/config-parser.c (struct BusConfigParser): Have
5969 config parser only store a mapping of service->context
5971 (merge_service_context_hash): New function.
5972 (merge_included): Merge context string hashes instead
5973 of using bus_selinux_id_table_union.
5974 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5975 simply create a new string hash.
5976 (bus_config_parser_unref): Unref it.
5977 (start_selinux_child): Simply insert strings into hash,
5978 don't call bus_selinux_id_table_copy_over.
5980 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5981 (bus_selinux_id_table_copy_over): Delete.
5983 2004-11-03 Colin Walters <walters@verbum.org>
5985 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5988 2004-11-03 Colin Walters <walters@verbum.org>
5990 * bus/test-main.c (test_pre_hook): Fix test logic,
5991 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5993 2004-11-02 Colin Walters <walters@redhat.com>
5995 * bus/selinux.c (bus_selinux_init): Split into two functions,
5996 bus_selinux_pre_init and bus_selinux_post_init.
5997 (bus_selinux_pre_init): Just determine whether SELinux is
5999 (bus_selinux_post_init): Do everything else.
6001 * bus/main.c (main): Call bus_selinux_pre_init before parsing
6002 config file, and bus_selinux_post_init after. This ensures that
6003 we don't lose the policyreload notification thread that
6004 bus_selinux_init created before forking previously.
6006 * bus/test-main.c (test_pre_hook): Update for split.
6008 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
6010 Patch from Johan Fischer <linux@fischaz.com>
6012 * mono/doc/Makefile.am (install-data-local): Added directory
6015 2004-10-29 Colin Walters <walters@redhat.com>
6017 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6018 parameter for fd to write pid to.
6020 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6022 * bus/bus.c (bus_context_new): Pass print_pid_fd
6023 to _dbus_become_daemon (bug #1720)
6025 2004-10-29 Colin Walters <walters@redhat.com>
6027 Patch from Ed Catmur <ed@catmur.co.uk>
6029 * mono/doc/Makefile.am (install-data-local): Handle
6032 2004-10-29 Colin Walters <walters@redhat.com>
6034 * bus/.cvsignore, qt/.cvsignore: Update.
6036 2004-10-29 Colin Walters <walters@redhat.com>
6038 Patch from Kristof Vansant <de_lupus@pandora.be>
6040 * configure.in: Detect Slackware.
6041 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6042 * bus/rc.messagebus.in: New file.
6044 2004-10-29 Colin Walters <walters@redhat.com>
6046 * tools/dbus-monitor.c (filter_func): Return
6047 DBUS_HANDLER_RESULT_HANDLED in filter function
6049 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6051 2004-10-29 Colin Walters <walters@redhat.com>
6053 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6055 * bus/services.c (bus_registry_acquire_service):
6056 Correctly retrieve service name from DBusString
6059 2004-10-29 Colin Walters <walters@redhat.com>
6061 * dbus/dbus-glib.h: Update documentation to not
6062 refer to internal APIs.
6064 2004-10-27 Joe Shaw <joeshaw@novell.com>
6066 * mono/Arguments.cs (GetDBusTypeConstructor):
6067 type.UnderlyingSystemType will return "System.Byte" if you do it
6068 on "byte[]", which is not what we want. So check the type.IsArray
6069 property and use System.Array instead.
6071 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
6073 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6074 the DBusUserInfo structure since this is passed into the function.
6075 This would cause a double free when the function that allocated
6076 the structure would try to free it when an error occured.
6078 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6079 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6080 for service activation to avoid 32bit/64bit parallel install issues
6082 2004-10-21 Colin Walters <walters@verbum.org>
6084 * AUTHORS: Fix my email address, the @gnu.org one
6085 has been bouncing for some time. Also add J5.
6087 2004-10-21 Colin Walters <walters@verbum.org>
6089 * dbus/dbus-transport-unix.c (do_authentication): Return
6090 authentication status to callers.
6091 (unix_handle_watch): If we completed authentication this round,
6092 don't do another read. Instead wait until the next iteration,
6093 after we've read any pending data in the auth buffer.
6094 (unix_do_iteration): Ditto.
6095 (unix_handle_watch): Updated for new do_authentication prototype.
6097 2004-10-18 Colin Walters <walters@verbum.org>
6099 * bus/selinux.c (bus_selinux_enabled): Handle
6100 --disable-selinux case.
6102 2004-10-18 Colin Walters <walters@verbum.org>
6104 * bus/selinux.h: Add bus_selinux_enabled.
6106 * bus/selinux.c (bus_selinux_enabled): Implement it.
6108 * bus/config-parser.c (struct include): Add
6109 if_selinux_enabled member.
6110 (start_busconfig_child): Parse if_selinux_enabled
6111 attribute for include.
6112 (bus_config_parser_content): Handle it.
6114 * bus/session.conf.in, bus/system.conf.in: Add
6115 inclusion of context mapping to default config files;
6116 conditional on SELinux being enabled.
6118 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6120 * test/data/invalid-config-files/badselinux-1.conf,
6121 test/data/invalid-config-files/badselinux-2.conf:
6122 Test files for bad syntax.
6124 2004-10-17 Colin Walters <walters@verbum.org>
6126 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6127 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6128 format specifier mismatches.
6130 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
6132 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6135 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6136 pointer (bug #1540, Leonardo Boiko).
6138 2004-09-28 Jon Trowbridge <trow@ximian.com>
6140 * mono/BusDriver.cs: Changed BusDriver struct to remove
6141 the ServiceCreated and ServiceDeleted events and replace them
6142 with the new ServiceOwnerChanged event.
6144 * mono/example/BusListener.cs: Added a new example program,
6145 which listens for and reports any ServiceOwnerChanged events
6148 * mono/example/Makefile.am (DESTDIR): Build changes for the
6149 new BusListener.cs example.
6151 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6153 * bus/signals.c (bus_match_rule_parse): validate the components of
6154 match rules (bug #1439).
6156 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6158 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6160 * doc/dbus-specification.xml: document ServiceOwnerChanged
6163 * bus/driver.c, bus/driver.h, bus/services.c: Use
6164 ServiceOwnerChanged signal instead of ServiceCreated and
6167 * bus/dispatch.c: update testcase for the new signal.
6169 2004-09-20 Jon Trowbridge <trow@ximian.com>
6171 Patch from Nat Friedman <nat@novell.com>
6173 * mono/Makefile.am: A number of small build fixes to allow "make
6174 distcheck" to succeed.
6176 * mono/example/Makefile.am: "make distcheck" fixes.
6178 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6181 * test/Makefile.am: "make distcheck" fixes.
6183 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6185 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6187 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6189 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6190 messages after the first one (bug #1389).
6192 * bus/dispatch.c (check_double_hello_message): add a test case for
6193 the double hello message bug.
6194 (check_existent_service_activation): fix check of spawning error.
6196 2004-09-16 David Zeuthen <david@fubar.dk>
6198 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6200 2004-09-12 David Zeuthen <david@fubar.dk>
6202 Patch from Kay Sievers <kay.sievers@vrfy.org>
6204 * bus/bus.c (bus_context_new):
6206 * bus/main.c (usage)
6208 Add commandline option --nofork to override configuration file
6211 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6213 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6214 compilers don't like it (bug #974).
6216 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6218 * qt/connection.*: Applied patch by Jérôme Lodewyck
6219 <lodewyck@clipper.ens.fr> to integrate an existing
6220 connection into the Qt eventloop
6222 2004-08-30 Jon Trowbridge <trow@ximian.com>
6224 * mono/BusDriver.cs: Added. This is a class for interacting with
6225 the org.freedesktop.DBus service.
6227 * mono/Message.cs: Added a mechanism to expose the message that is
6228 currently being dispatched via the static Message.Current
6229 property. Added Message.Sender and Message.Destination
6232 * mono/Handler.cs: Expose the dispatched message via
6233 Message.Current when handling method calls.
6235 * mono/Service.cs: Expose the dispatched message via
6236 Message.Current when handling signal emissions.
6238 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6239 Connection.BaseService property.
6241 2004-08-28 Havoc Pennington <hp@redhat.com>
6243 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6245 More fixes from Steve Grubb
6247 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6248 (_dbus_listen_tcp_socket): fix fd leak
6250 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6251 EINTR to a bit lower in the code
6253 2004-08-26 Jon Trowbridge <trow@ximian.com>
6255 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6256 TRUE if we are inquiring about the existence of the built-in
6257 org.freedesktop.DBus service.
6259 2004-08-25 John Palmieri <johnp@redhat.com>
6260 * bus/config-parser.c:
6261 (struct PolicyType): Add POLICY_CONSOLE
6262 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6263 (start_busconfig_child): Sets up console element when
6264 <policy at_console=""> is encountered in a policy file
6265 (append_rule_from_element): Convert console elements to console
6269 (bus_policy_create_client_policy): Add console rules to the client
6270 policy based on if the client is at the console
6271 (bus_policy_append_console_rule): New function for adding a
6272 console rule to a policy
6273 (bus_policy_merge): Handle console rule merging
6275 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6276 where we check for console user files
6278 * dbus/dbus-sysdeps.c:
6279 (_dbus_file_exists): New function which checks if the given
6281 (_dbus_user_at_console): New function which does the system
6282 specific process of checking if the user is at the console
6284 * dbus/dbus-userdb.c:
6285 (_dbus_is_console_user): New function converts a UID to user name
6286 and then calls the system specific _dbus_user_at_console to
6287 see if the user is at the console and therefor a console user
6289 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6291 * bus/config-parser.c (set_limit):
6292 * bus/dbus-daemon-1.1.in:
6293 * test/data/valid-config-files/many-rules.conf: set the
6294 max_match_rules_per_connection limt from the config file.
6296 * doc/busconfig.dtd: update the DTD.
6298 * bus/driver.c: remove some unused variables.
6300 2004-08-24 Mikael Hallendal <micke@imendio.com>
6302 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6303 it's been replaced by dbus_g_bus_get
6305 2004-08-23 Colin Walters <walters@redhat.com>
6307 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6309 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6311 * bus/selinux.c: Create a thread for policy reload notification.
6312 (bus_selinux_get_policy_root): Implement.
6314 * bus/config-parser.c (start_busconfig_child)
6315 (bus_config_parser_content): Support SELinux-root relative
6318 * configure.in <HAVE_SELINUX>: Add -lpthread.
6320 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6321 (test_post_hook): Move memory checking into here.
6322 (test_pre_hook, test_post_hook): Move SELinux checks in
6323 here, but conditional on a DBUS_TEST_SELINUX environment
6324 variable. Unfortunately we can't run the SELinux checks
6325 as a normal user, since they won't have any permissions
6326 for /selinux. So this will have to be tested manually
6327 for now, until we have virtualization for most of
6330 2004-08-23 Havoc Pennington <hp@redhat.com>
6332 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6333 drop supplementary groups, suggested by Steve Grubb
6335 2004-08-20 Colin Walters <walters@redhat.com>
6337 * bus/config-parser.c (start_busconfig_child): Remove some unused
6340 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6343 2004-08-17 Joe Shaw <joeshaw@novell.com>
6345 * configure.in: If --enable-mono is passed in, if we can't find
6348 * mono/Makefile.am: Use /gacutil to install assemblies into the
6351 2004-08-12 Havoc Pennington <hp@redhat.com>
6353 * NEWS: update for 0.22
6355 * configure.in: release 0.22
6357 2004-08-11 Colin Walters <walters@redhat.com>
6359 * tools/dbus-send.c (main, usage): Add --reply-timeout
6362 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6364 * bus/bus.c (process_config_first_time_only): get rid of an unused
6365 DBusError that was causing a memoy leak (bug #989).
6367 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6368 fix compilation on Solaris/Forte C (bug #974)
6370 * bus/main.c (main): plug two minuscule memleaks.
6372 2004-08-10 Havoc Pennington <hp@redhat.com>
6374 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6376 2004-08-09 Havoc Pennington <hp@redhat.com>
6378 * COPYING: switch to Academic Free License version 2.1 instead of
6379 2.0, to resolve complaints about patent termination clause.
6381 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6383 * README: added documentation for the --enable-python
6386 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6388 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6389 _unref in the SELinux support.
6391 * doc/busconfig.dtd: update DTD for SELinux support.
6393 * bus/config-loader-libxml.c: fix error handler and parser
6394 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6396 * configure.in: remove the warning about libxml2.
6398 * dbus/dbus-bus.c: silence doxygen warning.
6400 2004-07-31 Colin Walters <walters@redhat.com>
6402 * configure.in: Move #error in SELinux check to its own line.
6404 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6406 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6407 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6410 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6411 broken by the change in the _SET_OOM macros.
6413 2004-07-31 Colin Walters <walters@redhat.com>
6415 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6418 2004-07-31 Colin Walters <walters@redhat.com>
6420 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6421 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6424 2004-07-24 Havoc Pennington <hp@redhat.com>
6426 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6428 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6431 * configure.in: add --enable-selinux
6433 * bus/policy.c (bus_policy_merge): add FIXME to a comment
6435 * bus/main.c (main): initialize and shut down selinux
6437 * bus/connection.c: store SELinux ID on each connection, to avoid
6438 repeated getting of the string context and converting it into
6441 * bus/bus.c (bus_context_get_policy): new accessor, though it
6443 (bus_context_check_security_policy): check whether the security
6444 context of sender connection can send to the security context of
6445 recipient connection
6447 * bus/config-parser.c: add parsing for <selinux> and <associate>
6449 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6450 implement dbus_connection_get_unix_fd()
6452 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6453 function, used by the selinux stuff
6455 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
6457 * bus/config-loader-libxml.c: complete the implementation of
6458 libxml backend for config file loader. Doesn't work with full OOM
6461 * configure.in: change error when selecting libxml into a warning.
6463 * test/data/invalid-config-files: add two non-well-formed XML
6466 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6468 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6469 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6470 be necessary to read all the buffer. (bug #894)
6472 * bus/activation.c (bus_activation_activate_service): fix a
6473 potential assertion failure (bug #896). Small optimization in the
6474 case of auto-activation messages.
6476 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6477 add test case for byte-through-vararg bug (#901). patch by Kimmo
6480 2004-07-28 Anders Carlsson <andersca@gnome.org>
6483 * python/dbus_bindings.pyx.in:
6484 Add dbus.init_gthreads (), allow emit_signal to pass
6485 arguments to the signal.
6487 2004-07-24 Havoc Pennington <hp@redhat.com>
6489 * AUTHORS: add some people, not really comprehensively, let me
6490 know if I missed you
6492 2004-07-24 Havoc Pennington <hp@redhat.com>
6494 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6497 * test/Makefile.am (DIST_SUBDIRS): here also
6499 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6501 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6502 breaking build on Solaris, reported by Farhad Saberi on the ML.
6504 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6505 va_arg invocation to account for integer promotion in the case of
6506 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6508 * bus/services.c (bus_service_remove_owner): fix bug #902, use
6509 _dbus_list_get_first_link, not _dbus_list_get_first.
6511 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6513 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6514 handler functions so that the asserts in _dbus_object_subtree_unref
6517 * dbus/dbus-transport-unix.c (do_reading):
6518 _dbus_transport_queue_messages return value is of type
6519 dbus_bool_t, not DBusDispatchStatus.
6521 2004-07-19 David Zeuthen <david@fubar.dk>
6523 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6526 (check_get_connection_unix_user): Debug says GetProperty; but the
6527 method is called GetConnectionUnixUser
6528 (check_get_connection_unix_process_id): New function
6529 (bus_dispatch_test): Actually call check_get_connection_unix_user();
6530 also call check_get_connection_unix_process_id()
6533 (bus_driver_handle_get_connection_unix_process_id): New function,
6534 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6538 (handle_server_data_external_mech): Set pid from the credentials
6539 obtained from the socket
6541 * dbus/dbus-connection.c:
6542 (dbus_connection_get_unix_process_id): New function
6544 * dbus/dbus-connection.h:
6545 Add prototype for dbus_connection_get_unix_process_id
6547 * dbus/dbus-transport.c:
6548 (_dbus_transport_get_unix_process_id): New function
6550 * dbus/dbus-transport.h:
6551 Add prototype for _dbus_transport_get_unix_process_id
6553 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
6555 * dbus/dbus-message.c: Message counter fix, patch by Christian
6556 Hammond <chipx86@gnupdate.org>
6558 2004-07-18 Seth Nickell <seth@gnome.org>
6561 * python/dbus_bindings.pyx.in:
6562 * python/tests/test-client.py:
6564 Add dbus.ByteArray and dbus_bindings.ByteArray
6565 types so that byte streams can be passed back.
6567 Give jdahlin the heaps of credit that are so
6570 2004-07-12 Seth Nickell <seth@gnome.org>
6574 Add message argument to the default object_method_handler
6577 * python/dbus_bindings.pyx.in:
6579 Automatically return NIL when passed an empty list
6580 (we can't pass back a list since lists are typed
6581 and we don't have any idea what type the the client
6582 intended the list to be... :-( )
6584 2004-07-10 Seth Nickell <seth@gnome.org>
6586 * python/examples/Makefile.am:
6588 Fix distcheck breakage caused by new examples.
6590 2004-07-10 Seth Nickell <seth@gnome.org>
6594 Add "message" argument to service-side dbus.Object
6595 methods. This will break existing services written
6596 using the python bindings, but will allow extraction
6597 of all the message information (e.g. who its from).
6599 Add improved "object oriented" signal handling/emission.
6601 * python/examples/example-service.py:
6605 * python/examples/example-signal-emitter.py:
6606 * python/examples/example-signal-recipient.py:
6608 Two new examples that show how to emit and receive
6609 signals using the new APIs.
6611 * python/examples/example-signals.py:
6612 * python/examples/gconf-proxy-service.py:
6613 * python/examples/gconf-proxy-service2.py:
6615 Add "message" argument to service methods.
6617 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
6619 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6620 * dbus/bus.c (dbus_bus_get_unix_user)
6621 * doc/dbus-specification.xml: implement GetConnectionUnixUser
6622 method of org.freedesktop.DBus interface.
6624 * bus/dispatch.c: test case
6626 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
6628 * python/Makefile.am: switched include directory from glib/ to dbus/
6629 since dbus-glib.h moved
6631 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6633 * configure.in: prevent building the gcj stuff and libxml loader
6634 since they are broken.
6636 2004-06-20 Havoc Pennington <hp@redhat.com>
6638 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
6639 codes from the dbus error names
6641 * glib/dbus-glib.h: move to subdir dbus/ since it's included
6642 as dbus/dbus-glib.h and that breakage is now visible due to
6643 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6645 * glib/dbus-glib.h: s/gproxy/g_proxy/
6647 * dbus/dbus-shared.h: new header to hold stuff shared with
6650 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6653 * glib/dbus-glib.h (dbus_set_g_error): move to
6654 dbus-glib-lowlevel.h
6656 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6657 of stuff to enable this
6659 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6661 * a bunch of other changes with the same basic "separate glib
6662 bindings from dbus.h" theme
6664 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
6666 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6668 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6670 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6672 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6673 the reply value of the ServiceExists message.
6675 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
6677 * python/dbus_bindings.pyx.in: No longer need to parse path
6678 elements and pass them as arrays of strings. The C API now
6679 accepts plain path strings.
6680 (_build_parsed_path): removed
6682 2004-06-07 Havoc Pennington <hp@redhat.com>
6684 * doc/TODO: remove auto-activation item since it's done; sort
6685 items by importance/milestone
6687 2004-06-07 Havoc Pennington <hp@redhat.com>
6689 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6690 random signature when using REQUIRED_FIELDS (this hack won't work
6693 * dbus/dbus-message.c: change the signature to be a header field,
6694 instead of message->signature special-case string. Incremental
6695 step forward. Then we can fix up code to send the signature in the
6696 message, then fix up code to validate said signature, then fix up
6697 code to not put the typecodes inline, etc.
6698 (load_one_message): don't make up the signature after the fact
6699 (decode_header_data): require signature field for the known
6702 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6704 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6706 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
6708 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6710 * mono/Handler.cs: Updated to follow new path argument for
6711 (un-)registering objects.
6713 * mono/example/Makefile.am:
6715 * configure.in: Bumped required version for mono and use new -pkg
6718 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
6720 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6721 registration functions take the path argument as char* instead of
6724 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6725 split off the path decompostion part of
6726 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6729 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6731 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6733 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6734 machine approach. A state is implemented as a function that
6735 handles incoming events as specified for that state.
6737 * doc/dbus-specification.xml: Update auth protocol state machine
6738 specification to match implementation. Remove some leftover
6741 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6743 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6744 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6747 * Doxyfile.in: remove deprecated options.
6749 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6750 glib/test-thread.h, glib/test-thread-client.c,
6751 glib/test-thread-server.c, glib/test-profile.c,
6752 glib/test-dbus-glib.c: remove these unused files.
6754 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
6756 * dbus/dbus-object-tree.c
6757 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6758 non-fallback handlers (bug #684).
6759 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6760 (find_subtree_recurse): report wether the returned subtree is an
6761 exact match or a "fallback" match higher up in the tree.
6762 (object_tree_test_iteration): update test case.
6764 2004-06-01 Seth Nickell <seth@gnome.org>
6766 * python/dbus_bindings.pyx.in:
6767 * python/tests/test-client.py:
6769 Round off basic type support. Add dicts (yay!), and
6770 remaining array types.
6772 Make MessageIter more general so it works for dicts too.
6774 Mark all loop variables as C integers.
6776 2004-05-31 Havoc Pennington <hp@redhat.com>
6778 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6781 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6783 * glib/dbus-glib-tool.c (main): set up to have a --self-test
6784 option that runs the tests, and start filling in some code
6785 including for starters just dumping the interfaces to stdout
6787 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6789 * test/data/valid-introspection-files/lots-of-types.xml: test of
6790 an example introspection file
6792 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6795 2004-05-31 Seth Nickell <seth@gnome.org>
6797 * python/dbus_bindings.pyx.in:
6798 * python/tests/test-client.py:
6803 Fix string array memory trashing bug... oops...
6805 2004-05-30 Seth Nickell <seth@gnome.org>
6809 Add a nicer-but-less-flexible alternate API for handling
6810 calls to virtual objects in dbus.ObjectTree.
6812 Screw up the argument order to the dbus.Object constructor
6813 for consistency with dbus.ObjectTree (and to make dbus_methods
6814 optional for future extension)
6816 * python/examples/Makefile.am:
6817 * python/examples/gconf-proxy-service.py:
6818 * python/examples/gconf-proxy-service2.py:
6820 Alternate implementation of gconf-proxy-service using the
6821 nicer dbus.ObjectTree API.
6823 * python/examples/example-service.py:
6824 * python/tests/test-server.py
6826 Reverse the argument order to deal with dbus.Object constructor
6829 2004-05-30 Seth Nickell <seth@gnome.org>
6831 * python/examples/example-client.py:
6832 * python/examples/example-service.py:
6834 Take it back. Lists seem to work but they're broken
6835 in the test suite. Make the base examples use
6838 2004-05-30 Seth Nickell <seth@gnome.org>
6840 * python/dbus_bindings.pyx.in:
6841 * python/tests/test-client.py:
6843 Add some more tests and fix errors that crop up.
6844 Unfortunately, currently it seems like marshalling
6845 and unmarshalling of lists is completely broken :-(
6847 2004-05-30 Seth Nickell <seth@gnome.org>
6849 * python/dbus_bindings.pyx.in:
6851 Add support for ObjectPath type.
6855 Refactor message handling code to a common function.
6857 * python/tests/test-client.py:
6858 * python/tests/test-server.py:
6860 Add tests that check to make sure values of all types
6861 can be echoed from a service w/o mangling.
6863 2004-05-29 Seth Nickell <seth@gnome.org>
6867 Add ObjectTree class which allows implementation
6868 of trees of "virtual" objects. Basically the python
6869 wrapper for "register_fallback".
6871 * python/examples/Makefile.am
6872 * python/examples/gconf-proxy-client.py:
6873 * python/examples/gconf-proxy-service.py:
6875 Implement a simple GConf proxy service that supports
6876 get/set on string and int GConf keys using the ObjectTree.
6878 2004-05-29 Seth Nickell <seth@gnome.org>
6881 * python/examples/example-client.py:
6882 * python/examples/example-service.py:
6883 * python/examples/list-system-services.py:
6885 Add SessionBus, SystemBus and ActivationBus classes
6886 so you don't need to know the special little BUS_TYPE
6889 2004-05-29 Havoc Pennington <hp@redhat.com>
6891 * bus/config-parser.c (process_test_valid_subdir): temporarily
6892 stop testing config parser OOM handling, since expat has issues
6893 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6895 * bus/dbus-daemon-1.1.in: change requested_reply to
6896 send_requested_reply/receive_requested_reply so we can send the
6897 replies, not just receive them.
6899 * bus/config-parser.c: parse the new
6900 send_requested_reply/receive_requested_reply
6902 * bus/policy.c (bus_client_policy_check_can_send): add
6903 requested_reply argument and use it
6905 * bus/bus.c (bus_context_check_security_policy): pass through
6906 requested_reply status to message send check
6908 * bus/system.conf.in: adapt to requested_reply change
6910 2004-05-28 Havoc Pennington <hp@redhat.com>
6912 * test/glib/test-service-glib.c (main): remove unused variable
6914 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6916 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6917 from the enum, no longer in use.
6919 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6922 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6923 whether error_name passed in is a valid error name.
6925 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
6927 * dbus/dbus-message.c (dbus_message_get_args): Added support for
6928 OBJECT_PATH and OBJECT_PATH_ARRAY
6930 2004-05-28 Seth Nickell <seth@gnome.org>
6932 * python/examples/Makefile.am:
6934 Forget to add Makefile.am. Do not pass go.
6936 2004-05-28 Michael Meeks <michael@ximian.com>
6938 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
6941 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6943 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6944 (_dbus_message_iter_get_basic_type_array): impl.
6945 drastically simplify ~all relevant _get methods to use these.
6946 (_dbus_message_iter_append_basic_array),
6947 (dbus_message_iter_append_basic): impl
6948 drastically simplify ~all relevant _append methods to use these.
6950 * dbus/dbus-message-builder.c (parse_basic_type)
6951 (parse_basic_array, lookup_basic_type): impl.
6952 (_dbus_message_data_load): prune scads of duplicate /
6955 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
6956 (_dbus_demarshal_basic_type): implement,
6957 (demarshal_and_validate_len/arg): beef up debug.
6958 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6960 2004-05-27 Seth Nickell <seth@gnome.org>
6963 * python/Makefile.am:
6965 Include the example python apps in the tarball.
6967 * python/examples/list-system-services.py
6969 Add a python new example that fetches the list of services
6970 from the system bus.
6972 2004-05-27 Seth Nickell <seth@gnome.org>
6975 * python/dbus_bindings.pyx.in:
6977 Fix failure to notify that a signal was not handled,
6978 resulted in hung functions.
6980 2004-05-25 Colin Walters <walters@redhat.com>
6982 * tools/dbus-monitor.c (main): Monitor all types of messages.
6984 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
6986 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6987 which unregisters the object path and disposes the handler.
6989 2004-05-23 Kristian Høgsberg <krh@redhat.com>
6991 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6993 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6994 operands to && so we call dbus_message_iter_next () for the last
6997 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6999 * dbus/dbus-object-tree.c
7000 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7001 children even if the requested path isn't registered.
7002 (object_tree_test_iteration): test object_tree_list_registered.
7004 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7007 2004-05-20 Kristian Høgsberg <krh@redhat.com>
7009 * doc/TODO: Remove resolved items.
7011 * bus/expirelist.h (struct BusExpireList): remove unused n_items
7014 * bus/connection.c (bus_connections_expect_reply): Enforce the
7015 per-connection limit on pending replies.
7017 Patch from Jon Trowbridge <trow@ximian.com>:
7019 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
7020 up a watch that triggers a config reload when one end of the pipe
7022 (signal_handler): Instead of doing the config reload in our SIGHUP
7023 handler, just write to the reload pipe and let the associated
7024 watch handle the reload when control returns to the main loop.
7026 * bus/driver.c (bus_driver_handle_reload_config): Added.
7027 Implements a ReloadConfig method for requesting a configuration
7028 file reload via the bus driver.
7030 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
7032 * HACKING: Updated release instructions concerning the wiki page.
7034 2004-05-18 Kristian Høgsberg <krh@redhat.com>
7036 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7037 filter against auth->allowed_mechs; we only add allowed mechs in
7038 record_mechanisms().
7040 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7041 ALLOWED_MECHS to auth-script format so we can set the list of
7044 * data/auth/client-out-of-mechanisms.auth-script: New test to
7045 check client disconnects when it is out of mechanisms to try.
7047 * dbus/dbus-auth.c (process_command): Remove check for lines
7048 longer that 1 MB; we only buffer up maximum 16 kB.
7050 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7051 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7052 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7053 assume there might be unused bytes.
7055 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7056 client-out-of-mechs, it is handled in process_reject(). Move check
7057 for max failures to send_rejected(), as it's a server-only thing.
7059 * dbus/dbus-auth.c: Factor out protocol reply code into functions
7060 send_auth(), send_data(), send_rejected(), send_error(),
7061 send_ok(), send_begin() and send_cancel().
7063 2004-05-17 Kristian Høgsberg <krh@redhat.com>
7065 Remove base64 encoding, replace with hex encoding. Original patch
7066 from trow@ximian.com, added error handling.
7068 * dbus/dbus-string.c (_dbus_string_base64_encode)
7069 (_dbus_string_base64_decode): Remove.
7070 (_dbus_string_hex_decode): Add end_return argument so we can
7071 distinguish between OOM and invalid hex encoding.
7072 (_dbus_string_test): Remove base64 tests and add test case for
7075 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7076 Replace base64 with hex.
7078 * test/data/auth/invalid-hex-encoding.auth-script: New test case
7079 for invalid hex encoded data in auth protocol.
7081 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7083 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7086 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7088 * mono/dbus-sharp.dll.config.in: Added for GAC
7089 * mono/dbus-sharp.snk: Added for GAC
7090 * mono/Assembly.cs.in: Added for GAC
7091 * mono/Makefile.am: Changes for GAC installation
7092 * configure.in: Added refs for dbus-sharp.dll.config.in and
7093 Assembly.cs.in. More fixes for mono testing
7094 * mono/example/Makefile.am: Changed var to CSC
7095 * Makefile.am: Changed flag name to DBUS_USE_CSC
7097 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7099 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7100 * mono/doc/*: Added documentation framework
7101 * configure.in: Added monodoc check
7102 * README: Added description of mono configure flags
7104 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
7106 * doc/dbus-specification.xml: Added a "Required" column to the
7107 header fields table and changed the "zero or more" verbage in
7108 the above paragraph to read "The header must contain the required
7109 named header fields and zero or more of the optional named header
7111 * test/data/invalid-messages/*.message: Added the required PATH
7112 named header field to the tests so that they don't fail on
7113 'Missing path field'
7115 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
7117 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7118 the stack by implicitly defining variable and parameter types and
7119 removing the hack of defining C pointers as python objects and later
7122 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
7124 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7126 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
7128 * mono/DBusType/Dict.cs: Handle empty dicts
7129 * mono/DBusType/Array.cs: Handle empty arrays
7130 * mono/Arguments.cs: Handle empty arguments
7132 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
7134 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7137 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7139 * test/data/valid-messages/standard-*.message: Update message
7140 test scripts to new header field names.
7142 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7144 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7145 overflow to times_we_did_each_thing array which would chop off the
7146 first character of the failure_dir string. Increased the size of
7147 the array to 7 to reflect the number of random mutation functions
7150 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7152 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7153 unix_server->watch here, it is unreffed in disconnect.
7154 (_dbus_server_new_for_tcp_socket): convert NULL host to
7155 "localhost" here so we don't append NULL to address.
7157 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7158 various addresses, including tcp with no explicit host.
7160 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7162 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7163 fix incorrect setting of .name_offset in the HeaderField (it was
7164 off by two bytes, positioned right after the name and typecode)
7166 * bus/bus.c (bus_context_new, bus_context_unref): test before
7167 calling dbus_server_free_data_slot and _dbus_user_database_unref
7168 in case of an error.
7170 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7173 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7175 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7176 _dbus_poll() instead of select().
7178 2004-04-15 Jon Trowbridge <trow@ximian.com>
7180 * bus/main.c (signal_handler): Reload the configuration files
7182 (main): Set up our SIGHUP handler.
7184 * bus/bus.c (struct BusContext): Store the config file, user and
7185 fork flag in the BusContext.
7186 (process_config_first_time_only): Added. Contains the code
7187 (previously in bus_context_new) for setting up the BusContext from
7188 the BusConfigParser that should only be run the first time the
7189 config files are read.
7190 (process_config_every_time): Added. Contains the code (previously
7191 in bus_context_new) for setting up the BusContext from the
7192 BusConfigParser that should be run every time the config files are
7194 (load_config): Added. Builds a BusConfigParser from the config
7195 files and passes the resulting structure off to
7196 process_config_first_time_only (assuming this is the first time)
7197 and process_config_every_time.
7198 (bus_context_new): All of the config-related code has been moved
7199 to process_config_first_time_only and process_config_every_time.
7200 Now this function just does the non-config-related initializations
7201 and calls load_config.
7202 (bus_context_reload_config): Added.
7204 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7206 * bus/driver.c (bus_driver_handle_get_service_owner):
7207 implement a GetServiceOwner method.
7208 * doc/dbus-specification.xml: document it.
7209 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7211 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7212 implement, using the bus GetServiceOwner method.
7214 * test/glib/test-dbus-glib.c:
7215 use dbus_gproxy_new_for_service_owner so that we can receive the
7218 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7220 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7221 dbus/dbus-message.c, dbus/dbus-protocol.h
7222 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7224 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7225 dbus/dbus-message.c, dbus/dbus-protocol.h
7226 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7228 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7229 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7230 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7232 * doc/dbus-specification.xml (Header Fields Table):
7233 s/SERVICE/DESTINATION
7234 s/SENDER_SERVICE/SENDER
7237 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7239 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7242 2004-04-13 Michael Meeks <michael@ximian.com>
7244 * glib/dbus-gobject.c (handle_introspect): split out
7245 (introspect_properties): this.
7246 (handle_introspect): implement this.
7248 * test/glib/Makefile.am: use the absolute path so the bus
7249 daemon's chdir ("/") doesn't kill us dead.
7251 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7253 2004-04-12 Jon Trowbridge <trow@ximian.com>
7255 * bus/config-parser.c (struct BusConfigParser): Added
7256 included_files field.
7257 (seen_include): Added. Checks whether or not a file has already
7258 been included by any parent BusConfigParser.
7259 (bus_config_parser_new): Copy the parent's included_files.
7260 (include_file): Track which files have been included, and fail on
7261 circular inclusions.
7262 (process_test_valid_subdir): Changed printf to report if we are
7263 testing valid or invalid conf files.
7264 (all_are_equiv): Changed printf to be a bit clearer about
7265 what we are actually doing.
7266 (bus_config_parser_test): Test invalid configuration files.
7268 2004-04-09 Jon Trowbridge <trow@ximian.com>
7270 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7271 argument. If non-null, the newly-constructed BusConfigParser will
7272 be initialized with the parent's BusLimits instead of the default
7274 (include_file): When including a config file, pass in
7275 the current parser as the parent and then copy the BusLimits
7276 from the included BusConfigParser pack to the current parser.
7277 (process_test_valid_subdir): Renamed from process_test_subdir.
7278 (process_test_equiv_subdir): Added. Walks through a directory,
7279 descending into each subdirectory and loading the config files
7280 it finds there. If any subdirectory contains two config files
7281 that don't produce identical BusConfigParser structs, fail.
7282 For now, the BusConfigParser's BusPolicies are not compared.
7283 (bus_config_parser_test): Call both process_test_valid_subdir and
7284 process_test_equiv_subdir.
7286 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7287 argument and pass it along to the call to bus_config_parser_new.
7288 Also made a few small changes to allow this code to compile.
7290 * bus/config-loader-expat.c (bus_config_load): Take a parent
7291 argument and pass it along to the call to bus_config_parser_new.
7293 * bus/bus.c (bus_context_new): Load the config file
7294 with a NULL parent argument.
7296 2004-03-29 Michael Meeks <michael@ximian.com>
7298 * glib/dbus-gobject.c (introspect_properties): split
7299 out, fix mangled 'while' flow control.
7300 (introspect_signals): implement.
7301 (handle_introspect): update.
7303 2004-03-29 Michael Meeks <michael@ximian.com>
7305 * glib/dbus-gobject.c (set_object_property): split out /
7306 re-work, use the property type, and not the message type(!)
7307 (get_object_property): ditto.
7309 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7310 (dbus_gvalue_marshal): make this code re-usable, needed
7311 for signals too, also on both proxy and server side.
7312 Re-write for more efficiency / readability.
7314 2004-03-29 Michael Meeks <michael@ximian.com>
7316 * dbus/dbus-message.c
7317 (dbus_message_new_error_printf): impl.
7319 * dbus/dbus-connection.c
7320 (dbus_connection_unregister_object_path): fix warning.
7322 * configure.in: fix no-mono-installed situation.
7324 2004-03-27 Havoc Pennington <hp@redhat.com>
7326 Patch from Timo Teräs:
7328 * tools/dbus-send.c (main): if --print-reply, assume type is
7329 method call; support boolean type args
7331 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7332 bunch of memleak and logic bugs
7334 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7336 * mono/Arguments.cs:
7337 * mono/Introspector.cs:
7339 * mono/InterfaceProxy.cs:
7341 * mono/ProxyBuilder.cs:
7343 Added InterfaceProxy class to avoid building proxies for every
7347 * dbus-message.c (dbus_message_append_args_valist)
7348 (dbus_message_iter_get_object_path)
7349 (dbus_message_iter_get_object_path_array)
7350 (dbus_message_iter_append_object_path)
7351 (dbus_message_iter_append_object_path_array):
7352 Added object_path iter functions to handle OBJECT_PATH arguments
7354 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7356 First checkin of mono bindings.
7359 Build stuff for the bindings
7360 * dbus-sharp.pc.in: Added for pkgconfig
7362 2004-03-21 Havoc Pennington <hp@redhat.com>
7364 * test/test-service.c (main): remove debug spew
7366 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7368 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7371 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7372 (dbus_message_iter_init_array_iterator)
7373 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7374 indicate whether the iterator is empty
7376 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7379 2004-03-19 Havoc Pennington <hp@redhat.com>
7381 * NEWS: 0.21 updates
7383 * configure.in: 0.21
7385 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7387 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7388 you don't need pyrex to make dist
7390 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7393 2004-03-18 Richard Hult <richard@imendio.com>
7395 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7396 (dbus_message_set_auto_activation): Add doxygen docs.
7398 2004-03-16 Richard Hult <richard@imendio.com>
7400 * bus/activation.c: (bus_activation_service_created),
7401 (bus_activation_send_pending_auto_activation_messages),
7402 (bus_activation_activate_service):
7404 * bus/dispatch.c: (bus_dispatch),
7405 (check_nonexistent_service_auto_activation),
7406 (check_service_auto_activated),
7407 (check_segfault_service_auto_activation),
7408 (check_existent_service_auto_activation), (bus_dispatch_test):
7409 * bus/driver.c: (bus_driver_handle_activate_service):
7410 * bus/services.c: (bus_registry_acquire_service):
7411 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7412 (dbus_message_get_auto_activation):
7413 * dbus/dbus-message.h:
7414 * dbus/dbus-protocol.h: Implement auto-activation.
7416 * doc/dbus-specification.xml: Add auto-activation to the spec.
7418 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7420 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7421 fix a bug with CUSTOM types.
7423 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7424 a unit test for this bug (used to fail).
7426 2004-03-12 Mikael Hallendal <micke@imendio.com>
7429 (babysitter_watch_callback): notify all pending activations waiting for
7430 the same exec that the activation failed.
7431 (bus_activation_activate_service): shortcut the activation if we
7432 already waiting for the same executable to start up.
7434 2004-03-12 Mikael Hallendal <micke@imendio.com>
7437 - Added service file reloading.
7438 Each service files directory is kept in an hash table in
7439 BusActivation and each BusActivationEntry knows what .service-file it
7440 was read from. So when you try to activate a service the bus will
7441 check if it's been updated, removed or if new .service-files has
7443 - Test code at the bottom for the service file reloading.
7444 * bus/test-main.c: (main):
7446 - added service reloading test.
7447 * dbus/dbus-sysdeps.c:
7448 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7450 2004-03-08 Michael Meeks <michael@ximian.com>
7452 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
7453 bail immediately if disconnected, to avoid busy loop.
7455 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7456 cleanup cut/paste/inefficiency.
7458 2004-03-01 David Zeuthen <david@fubar.dk>
7460 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7461 bug where args were used twice. This bug resulted in a segfault
7462 on a Debian/PPC system when starting the messagebus daemon. Include
7463 dbus-sysdeps.h for DBUS_VA_COPY
7465 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7467 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7468 appropriate va_copy implementation. From GLib
7470 2004-02-24 Joe Shaw <joe@ximian.com>
7472 * bus/services.c (bus_registry_acquire_service): We need to pass
7473 in the service name to dbus_set_error() to prevent a crash.
7475 2003-12-26 Anders Carlsson <andersca@gnome.org>
7477 * AUTHORS: Reveal my True identity.
7479 2003-12-17 Mikael Hallendal <micke@imendio.com>
7481 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7482 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7484 2003-12-13 Mikael Hallendal <micke@imendio.com>
7486 * doc/TODO: Added not about better error check of configuration files.
7488 2003-12-02 Richard Hult <richard@imendio.com>
7490 * Update AFL version to 2.0 throughout the source files to reflect
7491 the update that was done a while ago.
7493 2003-12-02 Richard Hult <richard@imendio.com>
7495 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7496 wrote_dict_key to FALSE on the iter that the dict is appended to,
7497 just like when appending other types. Fixes a bug where a dict
7498 couldn't be put inside a dict.
7499 (dbus_message_iter_append_dict_key): Fix typo in warning message.
7500 (message_iter_test, _dbus_message_test): Add test case for dict
7503 2003-12-01 David Zeuthen <david@fubar.dk>
7505 * python/dbus.py: Add the actual message when calling the reciever
7506 of a signal such that parameters can be inspected. Add the method
7507 remove_signal_receiver
7509 2003-11-26 Mikael Hallendal <micke@imendio.com>
7513 * glib/*.[ch]: Made ref functions return the pointer
7515 2003-11-25 Zack Rusin <zack@kde.org>
7517 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7519 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
7522 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
7523 the Integrator and to better fit with the server,
7525 2003-11-24 Zack Rusin <zack@kde.org>
7527 * qt/connection.h, qt/connection.cpp: removing initDbus method since
7528 the integrator handles it now
7530 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7531 since QTimer wasn't really meant to be used the way DBusTimeout is
7533 2003-11-24 Zack Rusin <zack@kde.org>
7535 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
7536 Integrator class which integrates D-BUS with the Qt event loop,
7538 * qt/connection.h, qt/connection.cpp: Move all the code which
7539 was dealing with D-BUS integration to the Integrator class,
7540 and start using Integrator,
7542 2003-11-23 Zack Rusin <zack@kde.org>
7544 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
7547 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7548 switching namespaces to DBusQt, reworking the class,
7550 * Makefile.cvs: switching dependencies so that it matches KDE
7553 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
7556 2003-11-19 Havoc Pennington <hp@redhat.com>
7560 * configure.in: bump version to 0.20
7562 * configure.in (have_qt): add yet another place to look for qt
7563 (someone hand trolltech a .pc file...)
7565 2003-11-01 Havoc Pennington <hp@redhat.com>
7567 * doc/dbus-specification.xml: add state machine docs on the auth
7568 protocol; just a first draft, I'm sure it's wrong.
7570 2003-10-28 David Zeuthen <david@fubar.dk>
7572 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7573 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7575 2003-10-28 Havoc Pennington <hp@redhat.com>
7577 * dbus/dbus-message.c (get_next_field): delete unused function
7579 2003-10-28 Havoc Pennington <hp@redhat.com>
7581 * bus/expirelist.c (do_expiration_with_current_time): detect
7582 failure of the expire_func due to OOM
7584 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7586 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7587 NoReply error that's now created by the bus when the service exits
7589 2003-10-28 Havoc Pennington <hp@redhat.com>
7591 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7592 tests for set_path, set_interface, set_member, etc.
7594 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7596 * dbus/dbus-message.c (set_string_field): always just delete and
7597 re-append the field; accept NULL for deletion
7598 (re_align_fields_recurse): reimplement
7600 2003-10-26 Havoc Pennington <hp@redhat.com>
7602 * dbus/dbus-connection.c: fix docs to properly describe the
7603 disconnected message
7604 (_dbus_connection_notify_disconnected): remove this function;
7605 we can't synchronously add the disconnected message, we have to
7606 do it after we've queued any remaining real messages
7607 (_dbus_connection_get_dispatch_status_unlocked): queue the
7608 disconnect message only if the transport has finished queueing all
7609 its real messages and is disconnected.
7610 (dbus_connection_disconnect): update the dispatch status here
7612 2003-10-22 Havoc Pennington <hp@redhat.com>
7614 * bus/bus.c (bus_context_check_security_policy): fix up assertion
7616 * bus/connection.c (bus_transaction_send_from_driver): set the
7617 destination to the connection's base service
7619 2003-10-20 Havoc Pennington <hp@redhat.com>
7621 hmm, make check is currently not passing.
7623 * doc/dbus-specification.xml: add requirement that custom type
7624 names follow the same rules as interface names.
7626 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7627 duplication and allow 'c' to be 'custom'; dict is now 'm' for
7630 * doc/dbus-specification.xml: update type codes to match
7631 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7632 CUSTOM. Add type OBJECT_PATH to the spec.
7634 2003-10-17 Havoc Pennington <hp@redhat.com>
7636 * bus/driver.c (create_unique_client_name): use "." as separator
7637 in base service names instead of '-'
7639 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7640 byte at the end of the string
7642 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7643 optimization macros since string validation seems to be a slow
7646 * doc/dbus-specification.xml: restrict valid
7647 service/interface/member/error names. Add test suite code for the
7650 * dbus/dbus-string.c: limit service/interface/member/error names
7653 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7654 format arg to verbose spew
7656 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7657 memory, return instead of g_error
7659 * test/test-service.c (path_message_func): support emitting a
7662 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7663 activation bus type if DBUS_BUS_ACTIVATION was set; default to
7664 assuming the activation bus was the session bus so that services
7665 started manually will still register.
7666 (init_connections_unlocked): fix so that in OOM situation we get
7667 the same semantics when retrying the function
7669 * test/test-service.c (main): change to use path registration, to
7670 test those codepaths; register with DBUS_BUS_ACTIVATION rather
7671 than DBUS_BUS_SESSION
7673 2003-10-16 Havoc Pennington <hp@redhat.com>
7675 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7677 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7678 coverage of the tests
7679 (coverage-report.txt): don't move the .da and .bbg files around
7681 2003-10-16 Havoc Pennington <hp@redhat.com>
7683 * bus/bus.c (struct BusContext): remove struct field I didn't mean
7686 2003-10-16 Havoc Pennington <hp@redhat.com>
7688 * bus/connection.c (bus_pending_reply_expired): either cancel or
7690 (bus_connections_check_reply): use unlink, not remove_link, as we
7691 don't want to free the link; fixes double free mess
7693 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7694 where no reply was received
7696 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7699 * bus/signals.c (match_rule_matches): add special cases for the
7700 bus driver, so you can match on sender/destination for it.
7702 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7703 DBUS_PRINT_BACKTRACE is set
7705 * dbus/dbus-internals.c: add pid to assertion failure messages
7707 * dbus/dbus-connection.c: add message type code to the debug spew
7709 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7710 sender=foo not service=foo
7712 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7713 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
7714 DBUS_ACTIVATION_ADDRESS instead
7716 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7717 DBUS_SYSTEM_BUS_ADDRESS if appropriate
7719 * bus/bus.c (bus_context_new): handle OOM copying bus type into
7722 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7723 (dbus_message_iter_get_object_path_array): new function (half
7724 finished, disabled for the moment)
7726 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7727 DBUS_MESSAGE_TYPE_ERROR
7729 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7730 avoid redirecting stderr to /dev/null
7731 (babysit): close stdin if not doing the "exit_with_session" thing
7733 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7734 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7735 stdout/stdin, so things don't get confused
7737 * bus/system.conf.in: fix to allow replies, I modified .conf
7738 instead of .conf.in again.
7740 2003-10-14 David Zeuthen <david@fubar.dk>
7742 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7743 argtype to arg_type when raising unknown arg type exception.
7744 Changed type list to reflect the changes in dbus-protocol.h so
7745 the bindings actually work.
7747 2003-10-14 Havoc Pennington <hp@redhat.com>
7749 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7750 to have a bug keeping it from outputting the .da files sometimes
7751 (string_get_string): don't append garbage nul bytes to the string.
7753 2003-10-15 Seth Nickell <seth@gnome.org>
7755 * python/Makefile.am:
7757 Include dbus_h_wrapper.h in the dist tarball.
7759 2003-10-14 Havoc Pennington <hp@redhat.com>
7761 * bus/bus.c (bus_context_check_security_policy): revamp this to
7762 work more sanely with new policy-based requested reply setup
7764 * bus/connection.c (bus_transaction_send_from_driver): set bus
7765 driver messages as no reply
7767 * bus/policy.c (bus_client_policy_check_can_receive): handle a
7768 requested_reply attribute on allow/deny rules
7770 * bus/system.conf: add <allow requested_reply="true"/>
7772 * bus/driver.c (bus_driver_handle_message): fix check for replies
7773 sent to the bus driver, which was backward. How did this ever work
7774 at all though? I think I'm missing something.
7776 * dbus/dbus-message.c (decode_header_data): require error and
7777 method return messages to have a reply serial field to be valid
7778 (_dbus_message_loader_queue_messages): break up this function;
7779 validate that reply serial and plain serial are nonzero;
7780 clean up the OOM/error handling.
7781 (get_uint_field): don't return -1 from this
7782 (dbus_message_create_header): fix signed/unsigned bug
7784 * bus/connection.c (bus_connections_expect_reply): save serial of
7785 the incoming message, not reply serial
7787 2003-10-14 Havoc Pennington <hp@redhat.com>
7789 * bus/connection.c: implement pending reply tracking using
7792 * bus/bus.c (bus_context_check_security_policy): verify that a
7793 reply is pending in order to allow a reply to be sent. Deny
7794 messages of unknown type.
7796 * bus/dbus-daemon-1.1.in: update to mention new resource limits
7798 * bus/bus.c (bus_context_get_max_replies_per_connection): new
7799 (bus_context_get_reply_timeout): new
7801 2003-10-13 Seth Nickell <seth@gnome.org>
7803 * python/Makefile.am:
7805 Pass "make distcheck": remove a couple files from DIST_FILES
7806 that weren't included in the final version.
7808 2003-10-12 Havoc Pennington <hp@pobox.com>
7810 Added test code that 1) starts an actual bus daemon and 2) uses
7811 DBusGProxy; fixed bugs that were revealed by the test. Lots
7812 more testing possible, but this is the basic framework.
7814 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7815 empty proxy lists from the proxy list hash
7817 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7818 couple of return_if_fail checks
7820 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7821 to allocate, so everything is cleared to NULL as it should be.
7823 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7824 source as data to dbus_connection_set_timeout_functions() as the
7825 timeout functions expected
7827 * test/glib/run-test.sh: add a little script to start up a message
7828 bus and run tests using it
7830 * tools/dbus-launch.1: updates
7832 * tools/dbus-launch.c (main): add --config-file option
7834 * tools/dbus-launch.c (main): remove confusing else if (runprog)
7835 that could never be reached.
7837 * dbus/dbus-message.c (dbus_message_new_method_return)
7838 (dbus_message_new_error, dbus_message_new_signal): set the
7839 no-reply-expected flag on all these. Redundant, but may
7840 as well be consistent.
7842 2003-10-11 Havoc Pennington <hp@pobox.com>
7844 * test/decode-gcov.c (function_solve_graph): make broken block
7845 graph a nonfatal error since it seems to be broken. Need to debug
7848 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7849 can't just check type > INVALID < LAST anymore
7851 * dbus/dbus-message.c (dbus_message_get_signature): new function
7852 (dbus_message_has_signature): new function
7853 (struct DBusMessage): add signature field (right now it isn't sent
7854 over the wire, just generated on the fly)
7855 (dbus_message_copy): copy the signature, and init strings to
7856 proper length to avoid some reallocs
7857 (dbus_message_iter_init_array_iterator): return void, since it
7859 (dbus_message_iter_init_dict_iterator): return void since it can't fail
7860 (_dbus_message_loader_queue_messages): add silly temporary hack to
7861 fill in message->signature on load
7863 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7864 characters, so they are relatively human-readable.
7866 2003-10-11 Havoc Pennington <hp@pobox.com>
7868 * dbus/dbus-message.c (_dbus_message_test): add more test
7869 coverage, but #if 0 for now since they uncover a bug
7870 not fixed yet; I think in re_align_field_recurse()
7871 (re_align_field_recurse): add FIXME about broken assertion
7873 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7875 * bus/connection.c: share a couple code bits with expirelist.c
7877 * bus/expirelist.h, bus/expirelist.c: implement a generic
7878 expire-items-after-N-seconds facility, was going to share between
7879 expiring connections and replies, decided not to use for expiring
7880 connections for now.
7882 * COPYING: include AFL 2.0 (still need to change all the file headers)
7884 2003-10-09 Havoc Pennington <hp@redhat.com>
7886 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7887 gcc 3.3. Not that we do anything about it yet.
7889 * bus/signals.c (bus_match_rule_parse): impose max length on the
7892 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7894 2003-10-09 Havoc Pennington <hp@redhat.com>
7896 Make matching rules theoretically work (add parser).
7898 * bus/bus.c (bus_context_check_security_policy): fix up to handle
7899 the case where destination is explicitly specified as bus driver
7900 and someone else is eavesdropping.
7902 * bus/policy.c (bus_client_policy_check_can_receive): fix up
7903 definition of eavesdropping and assertion
7905 * tools/dbus-send.c (main): use dbus_message_type_from_string
7907 * bus/signals.c (bus_match_rule_parse): implement
7909 * dbus/dbus-message.c (dbus_message_type_from_string): new
7911 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7913 2003-10-02 Havoc Pennington <hp@pobox.com>
7915 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7916 dbus_gproxy_oneway_call
7918 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
7919 (dbus_server_setup_with_g_main): fix to allow calling them more
7920 than once on the same args
7921 (dbus_bus_get_with_g_main): new function
7923 2003-10-02 Havoc Pennington <hp@redhat.com>
7925 * doc/dbus-tutorial.xml: write some stuff
7927 2003-09-29 Havoc Pennington <hp@pobox.com>
7929 * configure.in: split checks for Doxygen from XML docs, check for
7932 * doc/Makefile.am: XML-ify all the docs, and add a blank
7935 2003-09-29 Havoc Pennington <hp@pobox.com>
7937 * Merge dbus-object-names branch. To see the entire patch
7938 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7939 it's huuuuge though.
7940 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7942 2003-09-28 Havoc Pennington <hp@pobox.com>
7944 * HACKING: update to reflect new server
7946 2003-09-26 Seth Nickell <seth@gnome.org>
7949 * python/examples/example-signals.py:
7951 Start implementing some notions of signals. The API
7952 is really terrible, but they sort of work (with the
7953 exception of being able to filter by service, and to
7954 transmit signals *as* a particular service). Need to
7955 figure out how to make messages come from the service
7958 * python/dbus_bindings.pyx.in:
7960 Removed duplicate message_handler callbacks.
7962 2003-09-25 Havoc Pennington <hp@redhat.com>
7964 * bus/session.conf.in: fix my mess
7966 2003-09-25 Havoc Pennington <hp@pobox.com>
7968 * bus/session.conf.in: fix security policy, reported by Seth Nickell
7970 2003-09-25 Seth Nickell <seth@gnome.org>
7972 * python/examples/example-service.py:
7974 Johan notices complete wrong code in example-service, but
7975 completely wrong in a way that works exactly the same (!).
7976 Johan is confused, how could this possibly work? Example
7977 code fails to serve purpose of making things clear.
7980 2003-09-25 Mark McLoughlin <mark@skynet.ie>
7982 * doc/dbus-specification.sgml: don't require header fields
7983 to be 4-byte aligned and specify that fields should be
7984 distinguished from padding by the fact that zero is not
7987 * doc/TODO: remove re-alignment item and add item to doc
7988 the OBJECT_PATH type.
7990 * dbus/dbus-message.c:
7991 (HeaderField): rename the original member to value_offset
7992 and introduce a name_offset member to keep track of where
7993 the field actually begins.
7994 (adjust_field_offsets): remove.
7995 (append_int_field), (append_uint_field),
7996 (append_string_field): don't align the start of the header
7997 field to a 4-byte boundary.
7998 (get_next_field): impl finding the next marhsalled field
7999 after a given field.
8000 (re_align_field_recurse): impl re-aligning a number of
8001 already marshalled fields.
8002 (delete_field): impl deleting a field of any type and
8003 re-aligning any following fields.
8004 (delete_int_or_uint_field), (delete_string_field): remove.
8005 (set_int_field), (set_uint_field): no need to re-check
8006 that we have the correct type for the field.
8007 (set_string_field): ditto and impl re-aligning any
8009 (decode_header_data): update to take into account that
8010 the fields aren't 4-byte aligned any more and the new
8011 way to distinguish padding from header fields. Also,
8012 don't exit when there is too much header padding.
8013 (process_test_subdir): print the directory.
8014 (_dbus_message_test): add test to make sure a following
8015 field is re-aligned correctly after field deletion.
8017 * dbus/dbus-string.[ch]:
8018 (_dbus_string_insert_bytes): rename from insert_byte and
8019 allow the insert of multiple bytes.
8020 (_dbus_string_test): test inserting multiple bytes.
8022 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8023 warning note to docs about having to re-align any
8024 marshalled values following the string.
8026 * dbus/dbus-message-builder.c:
8027 (append_string_field), (_dbus_message_data_load):
8028 don't align the header field.
8030 * dbus/dbus-auth.c: (process_test_subdir): print the
8033 * test/break-loader.c: (randomly_add_one_byte): upd. for
8036 * test/data/invalid-messages/bad-header-field-alignment.message:
8039 * test/data/valid-messages/unknown-header-field.message: shove
8040 a dict in the unknown field.
8042 2003-09-25 Seth Nickell <seth@gnome.org>
8045 * python/dbus_bindings.pyx.in:
8047 Handle return values.
8049 * python/examples/example-client.py:
8050 * python/examples/example-service.py:
8052 Pass back return values from the service to the client.
8054 2003-09-24 Seth Nickell <seth@gnome.org>
8058 Connect Object methods (when you are sharing an object) up... pass
8059 in a list of methods to be shared. Sharing all the methods just
8060 worked out too weird. You can now create nice Services over the
8063 * python/dbus_bindings.pyx.in:
8065 Keep references to user_data tuples passed into C functions so
8066 Python doesn't garbage collect on us.
8068 Implement MethodReturn and Error subclasses of Message for creating
8069 DBusMessage's of those types.
8071 * python/examples/example-client.py:
8072 * python/examples/example-service.py:
8074 Simple example code showing both how create DBus services and objects,
8075 and how to use them.
8077 2003-09-23 Havoc Pennington <hp@pobox.com>
8079 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8081 2003-09-23 Havoc Pennington <hp@redhat.com>
8083 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8084 (dbus_gproxy_disconnect_signal): implement
8085 (dbus_gproxy_manager_remove_signal_match): implement
8086 (dbus_gproxy_manager_add_signal_match): implement
8087 (dbus_gproxy_oneway_call): implement
8089 2003-09-23 Havoc Pennington <hp@pobox.com>
8091 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8092 subclass. This means dropping the transparent thread safety of the
8093 proxy; you now need a separate proxy per-thread, or your own
8094 locking on the proxy. Probably right anyway.
8095 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8097 2003-09-22 Havoc Pennington <hp@redhat.com>
8099 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8101 2003-09-21 Seth Nickell <seth@gnome.org>
8103 First checkin of the Python bindings.
8105 * python/.cvsignore:
8106 * python/Makefile.am:
8107 * python/dbus_bindings.pyx.in:
8108 * python/dbus_h_wrapper.h:
8110 Pieces for Pyrex to operate on, building a dbus_bindings.so
8111 python module for low-level access to the DBus APIs.
8115 High-level Python module for accessing DBus objects.
8120 Build stuff for the python bindings.
8124 Extra macro needed for finding the Python C header files.
8126 2003-09-21 Havoc Pennington <hp@pobox.com>
8128 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8129 implementing the proxy manager, didn't get very far.
8131 * dbus/dbus-bus.c (dbus_bus_add_match): new
8132 (dbus_bus_remove_match): new
8134 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8135 path_name argument; adjust the other not-yet-implemented
8136 gproxy constructors to be what I think they should be.
8138 2003-09-21 Havoc Pennington <hp@pobox.com>
8140 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8141 by default for message bus connections.
8143 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8144 exit_on_disconnect flag is set and we process the disconnected
8146 (dbus_connection_set_exit_on_disconnect): new function
8148 2003-09-21 Havoc Pennington <hp@pobox.com>
8150 Get matching rules mostly working in the bus; only actually
8151 parsing the rule text remains. However, the client side of
8152 "signal connections" hasn't been started, this patch is only the
8155 * dbus/dispatch.c: fix for the matching rules changes
8157 * bus/driver.c (bus_driver_handle_remove_match)
8158 (bus_driver_handle_add_match): send an ack reply from these
8161 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8162 arguments, reported by Seth Nickell
8164 * bus/config-parser.c (append_rule_from_element): support
8165 eavesdrop=true|false attribute on policies so match rules
8166 can be prevented from snooping on the system bus.
8168 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8169 and "destination" in attribute names; fix some docs bugs;
8170 add eavesdrop=true|false attribute
8172 * bus/driver.c (bus_driver_handle_add_match)
8173 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8176 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8177 rid of broadcast service concept, signals are just always broadcast
8179 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8180 mostly implement matching rules stuff (currently only exposed as signal
8183 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8185 * doc/dbus-specification.sgml: Change the header field name
8186 to be an enum and update the rest of the spec to reference
8187 the fields using the conventinal name.
8189 * dbus/dbus-protocol.h: update to reflect the spec.
8191 * doc/TODO: add item to remove the 4 byte alignment requirement.
8193 * dbus/dbus-message.c: Remove the code to generalise the
8194 header/body length and serial number header fields as named
8195 header fields so we can reference field names using the
8197 (append_int_field), (append_uint_field), (append_string_field):
8198 Append the field name as a byte rather than four chars.
8199 (delete_int_or_uint_field), (delete_string_field): reflect the
8200 fact that the field name and typecode now occupy 4 bytes instead
8202 (decode_string_field), (decode_header_data): update to reflect
8203 protocol changes and move the field specific encoding from
8204 decode_string_field() back into decode_header_data().
8206 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8207 Add utility to aid debugging.
8209 * dbus/dbus-message-builder.c:
8210 (append_string_field), (_dbus_message_data_load): Update to
8211 reflect protocol changes; Change the FIELD_NAME directive
8212 to HEADER_FIELD and allow it to take the field's conventional
8213 name rather than the actual value.
8215 * test/data/*/*.message: Update to use HEADER_FIELD instead
8216 of FIELD_NAME; Always align the header on an 8 byte boundary
8217 *before* updating the header length.
8219 2003-09-15 Havoc Pennington <hp@pobox.com>
8221 * dbus/dbus-pending-call.c: add the get/set object data
8222 boilerplate as for DBusConnection, etc. Use generic object data
8223 for the notify callback.
8225 * glib/dbus-gparser.c (parse_node): parse child nodes
8227 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8229 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8230 contain functions shared between the convenience lib and the
8233 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8234 -export-symbols-regex to the GLib library
8236 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8237 fix the locking in here, and add a default handler for
8238 Introspect() that just returns sub-nodes.
8240 2003-09-14 Havoc Pennington <hp@pobox.com>
8242 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8243 rather than gfoo consistent
8245 * glib/dbus-gproxy.h: delete for now, move contents to
8246 dbus-glib.h, because the include files don't work right since we
8247 aren't in the dbus/ subdir.
8249 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8250 (dbus_gproxy_end_call): finish
8251 (dbus_gproxy_begin_call): finish
8253 * glib/dbus-gmain.c (dbus_set_g_error): new
8255 * glib/dbus-gobject.c (handle_introspect): include information
8256 about child nodes in the introspection
8258 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8259 function to help in implementation of introspection
8261 * dbus/dbus-object-tree.c
8262 (_dbus_object_tree_list_registered_and_unlock): new function
8264 2003-09-12 Havoc Pennington <hp@pobox.com>
8266 * glib/dbus-gidl.h: add common base class for all the foo_info
8269 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8272 * test/Makefile.am: try test srcdir -ef . in addition to test
8273 srcdir = ., one of them should work (yeah lame)
8275 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8278 * glib/dbus-gparser.h: make description_load routines return
8279 NodeInfo* not Parser*
8281 * Makefile.am (SUBDIRS): build test dir after all library dirs
8283 * configure.in: add GTK+ detection
8285 2003-09-07 Havoc Pennington <hp@pobox.com>
8287 * Make Doxygen contented.
8289 2003-09-07 Havoc Pennington <hp@pobox.com>
8291 * doc/dbus-specification.sgml: more updates
8293 2003-09-06 Havoc Pennington <hp@pobox.com>
8295 * doc/dbus-specification.sgml: partial updates
8297 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8298 zillionth time; hopefully I edited the right file this time.
8300 * bus/config-parser.c (append_rule_from_element): support
8301 send_type, send_path, receive_type, receive_path
8303 * bus/policy.c: add message type and path to the list of things
8304 that can be "firewalled"
8306 2003-09-06 Havoc Pennington <hp@pobox.com>
8308 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8309 (dbus_connection_register_object_path): make this not handle
8310 messages to paths below the given path
8312 2003-09-03 Havoc Pennington <hp@pobox.com>
8314 * test/glib/Makefile.am: add this with random glib-linked test
8317 * glib/Makefile.am: remove the random test programs from here,
8318 leave only the unit tests
8320 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8321 uscore/javacaps conversion, and fix
8322 (get_object_property, set_object_property): change to .NET
8323 convention for mapping props to methods, set_FooBar/get_FooBar,
8324 since one language has such a convention we may as well copy it.
8325 Plus real methods in either getFooBar or get_foo_bar style won't
8326 collide with this convention.
8328 2003-09-01 Havoc Pennington <hp@pobox.com>
8330 * glib/dbus-gparser.c: implement
8332 * glib/dbus-gobject.c: start implementing skeletons support
8334 * configure.in: when disabling checks/assert, also define
8335 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8337 2003-09-01 Havoc Pennington <hp@pobox.com>
8339 * glib/Makefile.am: rearrange a bunch of files and get "make
8340 check" framework set up
8342 2003-08-31 Havoc Pennington <hp@pobox.com>
8344 * fix build with --disable-tests
8346 2003-08-30 Havoc Pennington <hp@pobox.com>
8348 * dbus/dbus-connection.c: purge DBusMessageHandler
8350 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8351 use callbacks everywhere
8353 2003-08-30 Havoc Pennington <hp@pobox.com>
8355 * test/data/valid-config-files/system.d/test.conf: change to
8356 root for the user so warnings don't get printed
8358 * dbus/dbus-message.c: add dbus_message_get_path,
8359 dbus_message_set_path
8361 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8362 dispatching to a path
8364 * dbus/dbus-string.c (_dbus_string_validate_path): add
8366 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8367 (_dbus_marshal_object_path): implement
8369 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8370 to contain the path to the target object
8371 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8372 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8374 2003-08-30 Havoc Pennington <hp@pobox.com>
8376 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8378 2003-08-29 Havoc Pennington <hp@pobox.com>
8380 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8382 (struct DBusObjectSubtree): shrink this
8383 a lot, since we may have a lot of them
8384 (_dbus_object_tree_free_all_unlocked): implement
8385 (_dbus_object_tree_dispatch_and_unlock): implement
8387 2003-08-29 Havoc Pennington <hp@pobox.com>
8389 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8391 2003-08-28 Havoc Pennington <hp@pobox.com>
8395 * dbus/dbus-connection.c: port to no ObjectID, create a
8396 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8398 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8399 everything except UnregisterFunction and MessageFunction
8401 * dbus/dbus-marshal.c: port away from DBusObjectID,
8402 add DBUS_TYPE_OBJECT_PATH
8404 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8405 dbus/dbus-objectid.[hc]: remove these, we are moving to
8406 path-based object IDs
8408 2003-08-25 Havoc Pennington <hp@pobox.com>
8410 Just noticed that dbus_message_test is hosed, I wonder when I
8411 broke that. I thought make check was passing earlier...
8413 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8414 container tree, will replace most of dbus-object-registry
8416 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8419 2003-08-19 Havoc Pennington <hp@pobox.com>
8421 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8422 (dbus_message_is_error): fix this function
8424 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8427 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8428 reflect clarified man page
8429 (bus_client_policy_check_can_send): ditto
8431 * bus/session.conf.in: fixup
8433 * bus/system.conf.in: fixup
8435 2003-08-18 Havoc Pennington <hp@redhat.com>
8437 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8439 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8440 dumb bug created earlier (wrong order of args to
8441 decode_header_data())
8443 * tools/dbus-send.c: port
8445 * tools/dbus-print-message.c (print_message): port
8447 * test/data/*messages: port all messages over
8449 * dbus/dbus-message-builder.c: support including
8452 * bus/driver.c: port over
8454 * bus/dispatch.c: port over to new stuff
8456 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8457 rename disconnect signal to "Disconnected"
8459 2003-08-17 Havoc Pennington <hp@pobox.com>
8461 This doesn't compile yet, but syncing up so I can hack on it from
8462 work. What are branches for if not broken code? ;-)
8464 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8465 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8466 DBUS_HEADER_FIELD_ERROR_NAME
8468 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8469 for the interface+member pairs
8470 (string_hash): change to use g_str_hash algorithm
8471 (find_direct_function, find_string_function): refactor these to
8474 * dbus/dbus-message.c: port all of this over to support
8475 interface/member fields instead of name field
8477 * dbus/dbus-object-registry.c: port over
8479 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8480 from _dbus_string_validate_name
8482 * bus/dbus-daemon-1.1: change file format for the
8483 <deny>/<allow> stuff to match new message naming scheme
8485 * bus/policy.c: port over
8487 * bus/config-parser.c: parse new format
8489 2003-08-16 Havoc Pennington <hp@pobox.com>
8491 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8494 * glib/dbus-gproxy.c: some hacking
8496 2003-08-15 Havoc Pennington <hp@redhat.com>
8498 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8500 * dbus/dbus-connection.c
8501 (dbus_connection_send_with_reply_and_block): factor out internals;
8502 change to convert any error replies to DBusError instead of
8503 returning them as a message
8505 2003-08-15 Havoc Pennington <hp@pobox.com>
8507 * dbus/dbus-connection.c,
8508 dbus/dbus-pending-call.c: Finish the pending call stuff
8510 2003-08-14 Havoc Pennington <hp@redhat.com>
8512 * dbus/dbus-pending-call.c: start on new object that will replace
8513 DBusMessageHandler and ReplyHandlerData for tracking outstanding
8516 * dbus/dbus-gproxy.c: start on proxy object used to communicate
8517 with remote interfaces
8519 * dbus/dbus-gidl.c: do the boring boilerplate in here
8521 2003-08-12 Havoc Pennington <hp@pobox.com>
8523 * bus/dispatch.c (bus_dispatch): make this return proper
8524 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8526 * dbus/dbus-errors.c (dbus_set_error): use
8527 _dbus_string_append_printf_valist
8529 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8530 (_dbus_string_append_printf): new
8532 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8535 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8536 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8537 message is unhandled.
8539 2003-08-11 Havoc Pennington <hp@pobox.com>
8541 * bus/test.c (client_disconnect_handler): change to return
8542 HANDLED (would have been REMOVE_MESSAGE)
8544 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8545 HANDLED/NOT_YET_HANDLED instead of
8546 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
8549 2003-08-10 Havoc Pennington <hp@pobox.com>
8551 * tools/dbus-send.c (main): add --type argument, for now
8552 supporting only method_call and signal types.
8554 * tools/dbus-print-message.c: print message type
8556 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8557 init connection->objects
8559 * doc/dbus-specification.sgml: fix sgml
8561 * bus/*.c: port over to object-instance API changes
8563 * test/test-service.c: ditto
8565 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8566 name, we will have to fix up the rest of the code to also handle
8568 (dbus_message_new): generic message-creation call
8569 (set_string_field): allow appending name field
8571 2003-08-06 Havoc Pennington <hp@pobox.com>
8573 * dbus/dbus-object-registry.c: implement signal connection
8576 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8578 * dbus/dbus-internals.c (_dbus_memdup): new function
8580 2003-08-02 Havoc Pennington <hp@pobox.com>
8582 * dbus/dbus-message.c (dbus_message_get_no_reply)
8583 (dbus_message_set_no_reply): add these and remove
8584 set_is_error/get_is_error
8586 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
8587 remove the ERROR flag, since there's now an ERROR type
8589 2003-08-01 Havoc Pennington <hp@pobox.com>
8591 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8594 * dbus/dbus-message.c (dbus_message_get_type): new function
8596 * doc/dbus-specification.sgml: add "type" byte to messages
8598 2003-08-01 Havoc Pennington <hp@pobox.com>
8600 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8601 a message type enum to distinguish kinds of message
8602 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
8603 that need not be replied to
8605 2003-08-01 Havoc Pennington <hp@pobox.com>
8607 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8608 (unpack_8_octets): fix no-64-bit-int bug
8610 * dbus/dbus-object-registry.c (validate_id): validate the
8611 connection ID bits, not just the instance ID.
8613 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8614 the connection-global 33 bits of the object ID
8616 * dbus/dbus-object-registry.c (info_from_entry): fill in
8617 object ID in the new way
8619 * dbus/dbus-objectid.h: rather than high/low bits, specifically
8620 define server/client/instance bits.
8622 2003-07-30 Havoc Pennington <hp@pobox.com>
8624 * dbus/dbus-connection.c (dbus_connection_register_object): fix
8627 2003-07-13 Havoc Pennington <hp@pobox.com>
8629 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8630 fields to DBusObjectVTable and DBusObjectInfo
8632 2003-07-12 Havoc Pennington <hp@pobox.com>
8634 * dbus/dbus-object-registry.c: implement unit test,
8635 fix bugs discovered in process
8637 * dbus/dbus-connection.c: remove handler_table and
8638 register_handler(), add DBusObjectRegistry usage
8640 * dbus/dbus-objectid.c (dbus_object_id_is_null)
8641 (dbus_object_id_set_null): new functions
8643 2003-07-08 Havoc Pennington <hp@pobox.com>
8645 * dbus/dbus-object.c: implement some of this
8647 * dbus/dbus-object-registry.c
8648 (_dbus_object_registry_add_and_unlock): fill in the object_id out
8650 (_dbus_object_registry_new): handle OOM
8652 2003-07-08 Havoc Pennington <hp@pobox.com>
8654 * dbus/dbus-object.h: sketch out an API for registering objects
8655 with a connection, that allows us to use as little as 24 bytes
8656 per object and lets application code represent an object in
8657 any conceivable way.
8659 * dbus/dbus-object-registry.c: implement the hard bits of the
8660 DBusConnection aspect of object API. Not yet wired up.
8662 2003-07-06 Havoc Pennington <hp@pobox.com>
8664 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8665 (_dbus_marshal_object_id): new
8666 (_dbus_demarshal_object_id): new
8667 (_dbus_marshal_get_arg_end_pos): support object ID type, and
8668 consolidate identical switch cases. Don't conditionalize handling
8669 of DBUS_TYPE_UINT64, need to handle the type always.
8670 (_dbus_marshal_validate_arg): consolidate identical cases, and
8671 handle DBUS_TYPE_OBJECT_ID
8673 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8675 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8677 2003-09-28 Havoc Pennington <hp@pobox.com>
8681 2003-09-28 Havoc Pennington <hp@pobox.com>
8683 * doc/Makefile.am (dbus-specification.html): testing a funky hack
8684 to work with Debian db2html
8686 2003-09-28 Havoc Pennington <hp@pobox.com>
8688 * configure.in: 0.13
8690 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8691 stylesheet-images for benefit of Debian
8693 Change back to using filesystem-linked sockets for the system
8694 bus, so only root can create the default system bus address.
8696 * bus/system.conf.in: change to use
8697 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8699 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8702 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8703 here, and AC_DEFINE DBUS_SYSTEM_PATH
8705 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8708 * doc/busconfig.dtd:
8711 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8713 * doc/dbus-specification.sgml:
8714 Add activation reply values.
8716 2003-08-05 Havoc Pennington <hp@redhat.com>
8718 * configure.in: 0.12
8720 2003-08-05 Anders Carlsson <andersca@codefactory.se>
8722 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8723 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8724 (add_watch), (remove_watch), (create_source):
8725 Refcount fds, fixes some reentrancy issues.
8727 2003-07-30 Havoc Pennington <hp@redhat.com>
8729 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8730 bus address to be abstract if we have abstract sockets
8734 2003-07-28 Havoc Pennington <hp@redhat.com>
8736 * bus/messagebus.in: fix to avoid processname/servicename
8737 confusion, from Michael Kearey
8738 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8740 2003-07-23 Havoc Pennington <hp@pobox.com>
8742 * dbus/dbus-message.c (dbus_message_iter_get_named):
8743 fix from Andy Hanton to remove broken "+1"
8745 2003-07-16 Havoc Pennington <hp@pobox.com>
8747 * tools/dbus-launch.c (babysit): close stdout/stderr in the
8748 babysitter process, as suggested by Thomas Leonard, so
8749 an "eval `dbus-launch --exit-with-session`" will actually
8752 2003-07-16 Havoc Pennington <hp@pobox.com>
8754 * configure.in: print out EXPANDED_* variables in the summary at
8755 the end; clean up the code that computes EXPANDED_ variables and
8756 get the ones using exec_prefix right. Should make things work
8757 when you build without --prefix
8759 2003-06-29 Havoc Pennington <hp@pobox.com>
8761 * mono/Test.cs (class Test): fire up a main loop and run it
8763 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8764 done once, the app has to do it
8766 2003-06-26 Havoc Pennington <hp@pobox.com>
8768 * mono/Connection.cs: set up connection with the glib main loop
8770 2003-07-01 Havoc Pennington <hp@redhat.com>
8772 * doc/dbus-specification.sgml: clarify the format of a type code,
8773 change suggested by Jim Blandy
8775 2003-06-29 Miloslav Trmac <mitr@volny.cz>
8778 * tools/Makefile.am: Don't assume srcdir == builddir.
8780 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8781 the allocated block.
8782 (_dbus_memory_test): New function.
8783 * dbus/dbus-test.h: Add _dbus_memory_test ().
8784 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8786 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8788 (dbus_message_new): Remove obsolete @todo.
8790 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8791 (_dbus_marshal_set_uint64): Fix comment.
8793 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8794 hardcode FIELD_REPLY_SERIAL.
8796 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8797 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8799 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8800 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8802 2003-06-24 Havoc Pennington <hp@pobox.com>
8804 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8806 2003-06-23 Anders Carlsson <andersca@codefactory.se>
8812 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8813 * gcj/org/.cvsignore:
8814 * gcj/org/Makefile.am:
8815 * gcj/org/freedesktop/.cvsignore:
8816 * gcj/org/freedesktop/Makefile.am:
8817 * gcj/org/freedesktop/dbus/.cvsignore:
8818 * gcj/org/freedesktop/dbus/Makefile.am:
8819 * gcj/org/freedesktop/dbus/Message.java: (Message),
8821 * gcj/org/freedesktop/dbus/natMessage.cc:
8822 Fix the build system.
8824 2003-06-22 Havoc Pennington <hp@pobox.com>
8826 * mono/Connection.cs: add more bindings
8828 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8831 2003-06-22 Havoc Pennington <hp@pobox.com>
8833 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8834 Start wrapping more stuff.
8836 2003-06-22 Havoc Pennington <hp@pobox.com>
8838 * mono/Message.cs: implement Message.Wrap() that ensures we only
8839 have a single C# wrapper per DBusMessage, assuming it works which
8840 it probably doesn't.
8842 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8843 (dbus_message_free_data_slot): new
8844 (dbus_message_set_data): new
8845 (dbus_message_get_data): new
8847 2003-06-22 Havoc Pennington <hp@pobox.com>
8849 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8850 (_dbus_data_slot_allocator_alloc): rework these to keep a
8851 reference count on each slot and automatically manage a global
8852 slot ID variable passed in by address
8854 * bus/bus.c: convert to new dataslot API
8856 * dbus/dbus-bus.c: convert to new dataslot API
8858 * dbus/dbus-connection.c: convert to new dataslot API
8860 * dbus/dbus-server.c: convert to new dataslot API
8862 * glib/dbus-gmain.c: ditto
8866 * bus/connection.c: ditto
8868 2003-06-22 Anders Carlsson <andersca@codefactory.se>
8870 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8871 after the gcj checks so that the correct configuration tags
8872 will be added to libtool.
8874 * dbus-glib-1.pc.in: No need to specify any includes since
8875 dbus-1.pc.in has those.
8877 2003-06-22 Havoc Pennington <hp@pobox.com>
8879 * mono/*, gcj/*, configure.in, Makefile.am:
8880 Check in makefiles and subdirs for mono and gcj bindings.
8881 Neither binding actually exists, just trying to get through
8882 all the build and other boring bits.
8884 2003-06-21 Philip Blundell <philb@gnu.org>
8886 * tools/dbus-monitor.1: Updated.
8888 * tools/dbus-send.1: Likewise.
8890 2003-06-20 Anders Carlsson <andersca@codefactory.se>
8892 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8893 for hangup and error after checking read so we won't discard
8894 pending data if both hangup and read are set.
8896 2003-06-19 Philip Blundell <philb@gnu.org>
8898 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8900 * tools/dbus-send.c: Accept both --system and --session.
8902 * tools/dbus-monitor.c: Same here.
8904 2003-06-19 Anders Carlsson <andersca@codefactory.se>
8906 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8907 from C++ (Patch by Miloslav Trmac).
8909 2003-06-15 Joe Shaw <joe@assbarn.com>
8911 * configure.in: Check for socklen_t.
8913 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8915 * test/test-segfault.c: Add #include <sys/time.h>
8917 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8918 dbus-launch needs it.
8920 2003-06-09 Havoc Pennington <hp@redhat.com>
8922 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8923 SUN_LEN, it breaks abstract socket usage
8925 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8928 2003-06-04 Havoc Pennington <hp@pobox.com>
8930 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8931 using unix:abstract=/foo, and when listening in a tmpdir
8932 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8934 * dbus/dbus-transport.c (_dbus_transport_open): support
8937 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8938 support abstract sockets
8940 * dbus/dbus-transport-unix.c
8941 (_dbus_transport_new_for_domain_socket): support abstract sockets
8943 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8944 toggle as an argument, implement abstract namespace support
8945 (_dbus_listen_unix_socket): ditto
8947 * configure.in: add --enable-abstract-sockets and implement
8948 a configure check for autodetection of the right value.
8950 2003-06-01 Havoc Pennington <hp@pobox.com>
8952 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8953 in /tmp (though on Linux this will end up being useless,
8954 when we add abstract namespace support)
8956 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8959 2003-05-28 Colin Walters <walters@verbum.org>
8961 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8963 2003-05-18 Anders Carlsson <andersca@codefactory.se>
8965 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8967 2003-05-17 Colin Walters <walters@gnu.org>
8969 * tools/dbus-send.c: Don't exit with an error code if --help was
8970 passed. Default to using the session bus instead of the system
8973 * tools/dbus-launch.c: Ditto.
8975 * tools/dbus-monitor.c: Ditto.
8977 * tools/dbus-send.1: Update with new arguments.
8979 * tools/dbus-launch.c: Emit code to export variables. New
8980 arguments -s and -c to specify shell syntax, and a bit of code to
8981 autodetect syntax. Also, allow specifying a program to run.
8983 * tools/dbus-launch.1: Update with new arguments.
8985 * tools/dbus-send.1: Ditto.
8987 * tools/dbus-monitor.1: Ditto.
8989 2003-05-17 Havoc Pennington <hp@pobox.com>
8991 * bus/config-parser.c (merge_included): merge in policies from
8992 child configuration file.
8994 * bus/policy.c (bus_policy_merge): function to merge two policies
8997 2003-05-16 Havoc Pennington <hp@redhat.com>
8999 * dbus/dbus-connection.c: disable verbose lock spew
9001 * tools/dbus-send.c: add --print-reply command line option
9003 * tools/dbus-print-message.h (print_message): new util function
9004 shared by dbus-send and dbus-monitor
9006 * tools/dbus-monitor.c (handler_func): exit on disconnect
9008 * dbus/dbus-transport-unix.c (do_reading): if the transport is
9009 disconnected, don't try to use the read_watch
9011 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9012 so we can find this bug more easily
9014 2003-05-16 Havoc Pennington <hp@redhat.com>
9016 * bus/policy.c (free_rule_list_func): avoid a crash when passed
9017 NULL as DBusHashTable is annoyingly likely to do.
9019 2003-05-16 Colin Walters <walters@verbum.org>
9021 * tools/dbus-monitor.c: Add --session argument and usage()
9024 * tools/dbus-monitor.1: Update with new --session arg.
9026 * bus/Makefile.am (install-data-hook): Create
9027 $(libdir)/dbus-1.0/services so that the session bus is happy.
9029 2003-05-15 Havoc Pennington <hp@redhat.com>
9031 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9032 on non-x86. ifdef's are evil.
9034 2003-05-15 Havoc Pennington <hp@redhat.com>
9036 * configure.in: 0.11
9040 * bus/Makefile.am (initddir): apparently we are supposed to put
9041 init scripts in /etc/rc.d/init.d not /etc/init.d
9043 * bus/Makefile.am: remove the "you must --enable-tests to make
9044 check" as it broke distcheck
9046 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9048 2003-05-13 James Willcox <jwillcox@gnome.org>
9051 * bus/activation.c: (bus_activation_service_created),
9052 (bus_activation_activate_service):
9053 * bus/driver.c: (bus_driver_send_service_deleted),
9054 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9055 (bus_driver_send_service_acquired),
9056 (bus_driver_send_welcome_message),
9057 (bus_driver_handle_list_services):
9058 * bus/session.conf.in:
9059 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9060 (dbus_bus_service_exists), (dbus_bus_activate_service):
9063 Add some convenience API which lets you activate a service, and did a
9064 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9065 and dbus_message_get_args()
9067 2003-05-11 Havoc Pennington <hp@pobox.com>
9069 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9070 calling _dbus_marshal_validate_arg() for every byte in a byte
9073 * dbus/dbus-message-handler.c: use atomic reference counting to
9074 reduce number of locks slightly; the global lock in here sucks
9076 * dbus/dbus-connection.c
9077 (_dbus_connection_update_dispatch_status_and_unlock): variant of
9078 update_dispatch_status that can be called with lock held; then use
9079 in a couple places to reduce locking/unlocking
9080 (dbus_connection_send): hold the lock over the whole function
9081 instead of acquiring it twice.
9083 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9085 * bus/connection.c (bus_connections_setup_connection): fix access
9086 to already-freed memory.
9088 * dbus/dbus-connection.c: keep a little cache of linked list
9089 nodes, to avoid using the global linked list alloc lock in the
9090 normal send-message case. Instead we just use the connection lock
9091 that we already have to take.
9093 * dbus/dbus-list.c (_dbus_list_find_last): new function
9095 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9096 change to use a struct for the atomic type; fix docs,
9097 they return value before increment, not after increment.
9099 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9100 (_dbus_string_append_8_aligned): new functions to try to
9101 microoptimize this operation.
9102 (reallocate_for_length): break this out of set_length(), to
9103 improve profile info, and also so we can consider inlining the
9106 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9107 strings with some preallocation, cuts down on our calls to realloc
9108 a fair bit. Though if we can get the "move entire string to empty
9109 string" optimization below to kick in here, it would be better.
9111 * dbus/dbus-string.c (_dbus_string_move): just call
9112 _dbus_string_move_len
9113 (_dbus_string_move_len): add a special case for moving
9114 an entire string into an empty string; we can just
9115 swap the string data instead of doing any reallocs.
9116 (_dbus_string_init_preallocated): new function
9118 2003-05-11 Havoc Pennington <hp@pobox.com>
9120 Write a "test-profile" that does echo client-server with threads;
9121 profile reveals lock contention, memcpy/realloc of buffers, and
9122 UTF-8 validation as hot spots. 20% of lock contention eliminated
9123 with dbus_atomic_inc/dec implementation on x86. Much remaining
9124 contention is global mempool locks for GList and DBusList.
9126 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9129 * dbus/dbus-connection.c (struct DBusConnection): use
9130 dbus_atomic_t for the reference count
9132 * dbus/dbus-message.c (struct DBusMessage): declare
9133 dbus_atomic_t values as volatile
9135 * configure.in: code to detect ability to use atomic integer
9136 operations in assembly, from GLib patch
9138 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9139 time, tired of it being wrong in threads and forked processes
9141 * glib/test-profile.c: a little program to bounce messages back
9142 and forth between threads and eat CPU
9144 * dbus/dbus-connection.c: add debug spew macros for debugging
9145 thread locks; include config.h at top; fix deadlock in
9146 dbus_connection_flush()
9148 2003-05-08 Havoc Pennington <hp@pobox.com>
9150 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9151 data from getting written, and there wasn't a good reason to
9154 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9155 dbus_verbose lines in test coverage
9156 (main): add list of functions sorted by # of untested blocks
9157 to the coverage report
9159 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9161 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9163 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9164 extend test coverage
9166 * test/data/auth/cancel.auth-script: test canceling an
9169 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9170 aren't used. in CVS history if we end up needing them.
9172 2003-05-04 Havoc Pennington <hp@pobox.com>
9174 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9177 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9178 function, which assumed length was in # of strings, not bytes
9180 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9183 * dbus/dbus-connection.c
9184 (_dbus_connection_queue_received_message): disable function for
9185 now, we are only using it in test mode
9187 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9188 remove a mistaken FIXME
9190 2003-05-04 Havoc Pennington <hp@pobox.com>
9192 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9193 unlock mutex on successful return, patch from Anders Gustafsson
9195 2003-05-04 Havoc Pennington <hp@pobox.com>
9197 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9200 2003-05-04 Havoc Pennington <hp@pobox.com>
9202 * tools/dbus-launch.c: implement
9204 * bus/main.c (main), bus/bus.c (bus_context_new):
9205 implement --print-pid and --fork
9207 2003-05-03 Havoc Pennington <hp@redhat.com>
9209 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9210 the address had no value, and add to test suite. Fix and
9211 regression test from Miloslav Trmac
9213 2003-05-03 Havoc Pennington <hp@pobox.com>
9215 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9216 watch is invalid when handled
9218 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9219 dbus-launch utility to launch the bus from a shell script. Didn't
9220 actually implement dbus-launch yet, it's just a placeholder still.
9222 2003-05-03 Havoc Pennington <hp@pobox.com>
9224 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9225 daemon; also documents daemon config file, so replaces
9226 doc/config-file.txt. Corrected some stuff from config-file.txt in
9227 the process of moving it.
9229 2003-05-03 Havoc Pennington <hp@pobox.com>
9231 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9234 2003-05-03 Colin Walters <walters@verbum.org>
9236 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9237 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9239 * Makefile.am: Update to use new .pc versioning scheme.
9241 2003-05-02 Havoc Pennington <hp@redhat.com>
9243 * bus/system.conf.in: allow send/receive to/from message bus
9246 2003-04-30 Havoc Pennington <hp@redhat.com>
9248 * configure.in: print a note when building with unit tests and
9251 2003-04-30 Havoc Pennington <hp@redhat.com>
9253 * Makefile.am: add a check-local that complains if you didn't
9254 configure with --enable-tests
9256 2003-04-29 Havoc Pennington <hp@redhat.com>
9258 * glib/dbus-gmain.c: docs cleanups
9260 * dbus/dbus-types.h: add docs on int64 types
9262 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9263 public API docs section
9265 2003-04-29 Havoc Pennington <hp@redhat.com>
9267 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9268 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9269 parallel install API version, not with the D-BUS package version.
9271 * HACKING: move some of README over here
9273 * README: updates, and document API/ABI policy
9275 * configure.in: reindentation
9277 2003-04-29 Havoc Pennington <hp@redhat.com>
9279 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9280 to use this library" to be sure people have the right
9283 2003-04-28 Havoc Pennington <hp@redhat.com>
9285 * configure.in: add --enable-docs which by default is auto yes if
9286 doxygen and db2html found, no otherwise; but can be forced on/off
9288 * doc/Makefile.am: conditionalize whether to build docs on
9291 2003-04-28 Havoc Pennington <hp@redhat.com>
9293 * configure.in: 0.10
9297 * bus/system.conf.in: add <includedir>system.d</includedir>
9299 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9300 username was provided but not uid
9302 * bus/config-parser.c (struct BusConfigParser): keep track of
9303 whether the parser is toplevel or was included; change some
9304 of the error handling if it's included.
9306 2003-04-27 Havoc Pennington <hp@pobox.com>
9310 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9311 report correct status if we finish processing authentication
9312 inside this function.
9314 * bus/activation.c (try_send_activation_failure): use
9315 bus_transaction_send_error_reply
9317 * bus/connection.c (bus_connection_get_groups): return an error
9318 explaining the problem
9320 * bus/bus.c (bus_context_check_security_policy): implement
9321 restriction here that inactive connections can only send the
9322 hello message. Also, allow bus driver to send anything to
9325 * bus/connection.c (bus_connection_complete): create the
9326 BusClientPolicy here instead of on-demand.
9327 (bus_connection_get_policy): don't return an error
9329 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9330 sender field in message being replied to
9332 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9333 causing it to return FALSE always
9335 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9336 we checked sender rather than destination
9338 2003-04-25 Havoc Pennington <hp@redhat.com>
9340 test suite is slightly hosed at the moment, will fix soon
9342 * bus/connection.c (bus_connections_expire_incomplete): fix to
9343 properly disable the timeout when required
9344 (bus_connection_set_name): check whether we can remove incomplete
9345 connections timeout after we complete each connection.
9347 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9348 probably still broken.
9350 * bus/services.c (bus_registry_acquire_service): implement max
9351 number of services owned, and honor allow/deny rules on which
9352 services a connection can own.
9354 * bus/connection.c (bus_connection_get_policy): report errors here
9356 * bus/activation.c: implement limit on number of pending
9359 2003-04-25 Havoc Pennington <hp@redhat.com>
9361 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9362 where we used >= 0 instead of != DBUS_UID_UNSET.
9364 2003-04-25 Havoc Pennington <hp@redhat.com>
9366 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9367 were toggled without add/remove, fix from Anders Gustafsson
9369 2003-04-24 Havoc Pennington <hp@redhat.com>
9371 * test/data/valid-config-files/basic.conf: add <limit> tags to
9374 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9375 <limit> tag in configuration file.
9377 2003-04-24 Havoc Pennington <hp@redhat.com>
9379 * bus/dispatch.c: somehow missed some name_is
9381 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9382 (_dbus_timeout_set_interval): new
9384 * bus/connection.c (bus_connections_setup_connection): record time
9385 when each connection is first set up, and expire them after the
9386 auth timeout passes.
9388 2003-04-24 Havoc Pennington <hp@redhat.com>
9390 * dbus/dbus-message.c (dbus_message_name_is): rename
9391 (dbus_message_service_is): rename
9392 (dbus_message_sender_is): rename
9393 (dbus_message_get_service): rename
9395 2003-04-24 Havoc Pennington <hp@redhat.com>
9397 * configure.in: add --enable-checks
9399 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9401 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9402 to use thread locks.
9403 (_dbus_connection_handler_destroyed_locked): move some private
9404 functions into proper docs group
9406 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9407 _dbus_return_val_if_fail
9409 Throughout: use dbus_return_if_fail
9411 2003-04-23 James Willcox <jwillcox@gnome.org>
9414 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9415 (dbus_connection_setup_with_g_main),
9416 (dbus_server_setup_with_g_main):
9417 * glib/test-dbus-glib.c: (main):
9418 * glib/test-thread-client.c: (main):
9419 * glib/test-thread-server.c: (new_connection_callback), (main):
9420 * tools/dbus-monitor.c: (main):
9422 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9423 and dbus_server_setup_with_g_main().
9425 2003-04-20 Havoc Pennington <hp@pobox.com>
9427 * doc/dbus-specification.sgml: document the restrictions on
9428 message and service names
9430 2003-04-22 Havoc Pennington <hp@redhat.com>
9432 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9433 support, and do some code cleanups to share more code and
9434 speed up array marshal/demarshal.
9436 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9438 * configure.in: generate dbus-arch-deps.h
9440 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9443 2003-04-22 Havoc Pennington <hp@redhat.com>
9445 * test/data/valid-messages/opposite-endian.message: fix test
9446 to use proper type for rply field
9448 * test/data/invalid-messages: add tests for below validation
9450 * dbus/dbus-message.c (decode_header_data): validate field types,
9451 and validate that named fields are valid names
9452 (decode_name_field): consider messages in the
9453 org.freedesktop.Local. namespace to be invalid.
9455 * dbus/dbus-string.c (_dbus_string_validate_name): new
9457 2003-04-19 Havoc Pennington <hp@pobox.com>
9459 * bus/driver.c (bus_driver_handle_hello): check limits and
9460 return an error if they are exceeded.
9462 * bus/connection.c: maintain separate lists of active and inactive
9463 connections, and a count of each. Maintain count of completed
9464 connections per user. Implement code to check connection limits.
9466 * dbus/dbus-list.c (_dbus_list_unlink): export
9468 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9469 number of bytes in the message queue for a connection
9471 2003-04-18 Havoc Pennington <hp@pobox.com>
9473 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9475 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9478 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9479 on realloc be sure to update the pointer in the keyring
9481 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9482 offset to avoid writing to unallocated memory
9484 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9485 try the next mechanism, so we properly handle OOM
9487 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9489 (_dbus_keyring_new): fix OOM bug
9490 (_dbus_keyring_new_homedir): always set error; impose a maximum
9491 number of keys we'll load from the file, mostly to speed up the
9492 test suite and make its OOM checks more useful, but also for
9495 * dbus/dbus-auth.c (process_error_server): reject authentication
9496 if we get an error from the client
9497 (process_cancel): on cancel, send REJECTED, per the spec
9498 (process_error_client): send CANCEL if we get an error from the
9501 2003-04-18 Havoc Pennington <hp@pobox.com>
9503 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9506 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9509 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9510 about DBUS_TEST_HOMEDIR once
9512 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9515 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9516 config file so we test the right thing
9518 Throughout: assorted docs improvements
9520 2003-04-18 Havoc Pennington <hp@pobox.com>
9522 * glib/dbus-gmain.c: adapt to watch changes
9524 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9526 * dbus/dbus-server.h: remove dbus_server_handle_watch
9528 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9530 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9531 like DBusTimeout, so we don't need dbus_connection_handle_watch
9534 2003-04-17 Havoc Pennington <hp@redhat.com>
9536 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9537 database usage so it all goes via the DBusUserDatabase cache.
9539 2003-04-17 Havoc Pennington <hp@redhat.com>
9541 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9542 there was an OOM watch we skipped, we always return TRUE so we
9543 iterate again to have a look at it again. Fixes test suite hang.
9544 Code rearrangement also lets us lose some memset and only iterate
9545 over callbacks once.
9547 * bus/driver.c (bus_driver_handle_message): sense of test for
9550 2003-04-16 Havoc Pennington <hp@pobox.com>
9552 * doc/dbus-specification.sgml: make spec say serials are unsigned
9554 * dbus/dbus-message.h: change message serials to unsigned
9556 * dbus/dbus-connection.c: adapt to message serials being unsigned
9558 2003-04-15 Havoc Pennington <hp@pobox.com>
9560 * bus/bus.c: create and keep around a shared DBusUserDatabase
9563 * bus/connection.c (bus_connection_get_groups): don't cache
9564 groups for user in the connection object, since user database
9565 object now does that.
9567 2003-04-16 Havoc Pennington <hp@redhat.com>
9569 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9570 list of size counters
9571 (_dbus_message_loader_putback_message_link): put back a popped link
9573 * dbus/dbus-connection.c
9574 (dbus_connection_set_max_live_messages_size): rename
9576 (dbus_connection_get_outgoing_size): get size of outgoing
9578 (_dbus_connection_set_connection_counter): remove this cruft
9580 2003-04-14 Havoc Pennington <hp@redhat.com>
9582 * dbus/dbus-userdb.c: user database abstraction, mostly to get
9583 caching, but at some point we might want to be able to use a
9586 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9587 SHA1 conf file to test the sha1 auth mechanism, since the regular
9588 test always uses EXTERNAL when available.
9591 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9592 add conf file that requires use of sha1 auth
9594 2003-04-13 Havoc Pennington <hp@pobox.com>
9596 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9597 from Philip Blundell to send messages and monitor them.
9599 2003-04-13 Havoc Pennington <hp@pobox.com>
9601 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9604 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9607 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9608 fix to only recover unused bytes if we're already authenticated
9609 (_dbus_transport_get_is_authenticated): fix to still mark us
9610 authenticated if there are unused bytes.
9612 * bus/dispatch.c: implement security policy checking
9614 * bus/connection.c (bus_transaction_send_from_driver): new
9616 * bus/bus.c (bus_context_check_security_policy): new
9618 * bus/dispatch.c (send_service_nonexistent_error): delete this,
9619 now we just set the DBusError and it gets converted to an error
9622 * bus/connection.c (allow_user_function): enable code using actual
9623 data from the config file
9625 * bus/policy.c (list_allows_user): handle wildcard rules for
9626 user/group connection perms
9628 2003-04-13 Havoc Pennington <hp@pobox.com>
9630 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9632 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9634 * bus/policy.c (bus_policy_append_mandatory_rule)
9635 (bus_policy_append_default_rule, bus_policy_append_user_rule)
9636 (bus_policy_append_group_rule): new functions
9638 2003-04-12 Havoc Pennington <hp@pobox.com>
9640 * bus/config-parser.c (bus_config_parser_new): fix a memleak
9642 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9643 the pid/gid/uid, just for paranoia.
9645 * test/break-loader.c (randomly_do_n_things): find a byte
9646 containing a type code, and randomly change it to a different
9649 2003-04-12 Havoc Pennington <hp@pobox.com>
9651 * bus/policy.h: change BusPolicy to be the thing from the config
9652 file, and rename old BusPolicy to BusClientPolicy
9654 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9655 match change in how policy works
9657 * dbus/dbus-internals.h: mark assert_not_reached as
9658 __attribute((noreturn))__
9660 2003-04-11 Havoc Pennington <hp@redhat.com>
9662 * doc/dbus-specification.sgml: fix a spot with the wrong name for
9663 the broadcast service. Use boolean return for ServiceExists.
9665 2003-04-11 Havoc Pennington <hp@redhat.com>
9667 * configure.in: add another directory to look for qt in.
9669 2003-04-11 Havoc Pennington <hp@redhat.com>
9671 * AUTHORS: add Colin Walters
9673 2003-04-11 Havoc Pennington <hp@redhat.com>
9679 2003-04-11 Havoc Pennington <hp@redhat.com>
9681 * bus/messagebus.in: remove pid file when stopping the
9682 message bus, since the bus won't have privileges to remove it
9685 2003-04-11 Havoc Pennington <hp@redhat.com>
9687 * bus/bus.c (bus_context_new): move credentials change after
9690 2003-04-11 Havoc Pennington <hp@pobox.com>
9692 * test/decode-gcov.c: add "below average functions" to the
9693 coverage report, and change how some of the code works.
9695 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9696 not in the coverage stats.
9698 * test/test-service.c (main): use _dbus_verbose not fprintf in a
9699 couple places so running the test suite doesn't result in megaspam.
9701 2003-04-11 Havoc Pennington <hp@pobox.com>
9703 * bus/dispatch.c (check_existent_service_activation): accept a no
9704 memory error in a place we didn't before
9706 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9707 in case the first one failed," since the test suite is less
9710 2003-04-10 Havoc Pennington <hp@pobox.com>
9712 * bus/dispatch.c (check_segfault_service_activation): add test
9713 for launching an executable that just crashes.
9715 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9716 don't leave a million cores. We'll see how portable this is.
9718 2003-04-10 Havoc Pennington <hp@pobox.com>
9720 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9721 the possible parent failures before we fork, so that we don't
9722 fail to create a babysitter after creating the child.
9724 * bus/activation.c (bus_activation_activate_service): kill child
9725 if we don't successfully complete the activation.
9727 2003-04-10 Havoc Pennington <hp@redhat.com>
9729 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9730 the connection if it's disconnected
9732 * bus/activation.c (bus_activation_service_created): use new
9733 transaction features to roll back removal of pending activation if
9734 we don't successfully create the service after all. Don't remove
9735 pending activation if the function fails.
9737 * dbus/dbus-list.c (_dbus_list_insert_before_link)
9738 (_dbus_list_insert_after_link): new code to facilitate
9741 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9742 new functionality, so we can preallocate the ability to insert
9745 * bus/connection.c (bus_transaction_add_cancel_hook): new function
9746 allowing us to put custom hooks in a transaction to be used for
9747 cancelling said transaction
9749 * doc/dbus-specification.sgml: add some discussion of secondary
9750 service owners, and disallow zero-length service names
9752 * bus/services.c (bus_registry_acquire_service): new function,
9753 splits out part of bus_driver_handle_acquire_service() and fixes
9754 a bug where we didn't remove the service doing the acquiring
9755 from the secondary queue if we failed to remove the current owner
9756 from the front of the queue.
9758 2003-04-10 Alexander Larsson <alexl@redhat.com>
9760 * doc/dbus-specification.sgml:
9761 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9763 2003-04-10 Alexander Larsson <alexl@redhat.com>
9768 Added files to cvsignore
9770 * dbus/dbus-message.h:
9771 * dbus/dbus-message.c: (dbus_message_iter_get_named):
9772 Make get_named() take two out argument and return a boolean.
9773 (dbus_message_iter_get_args_valist):
9774 Update usage of get_named().
9775 (dbus_message_iter_append_byte):
9777 (dbus_message_iter_append_named)
9779 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9782 2003-04-10 Alexander Larsson <alexl@redhat.com>
9784 * dbus/dbus-marshal.[ch]:
9785 Add array_type_pos argument to _dbus_marshal_validate_arg.
9786 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9788 * dbus/dbus-message.[ch]:
9789 Multi-dimensional arrays have full type specification in the
9790 outermost array. Iter code re-arranged to handle this.
9791 Added some more iter tests.
9793 * doc/dbus-specification.sgml:
9796 Update new array encoding description.
9797 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9799 * test/data/invalid-messages/array-with-mixed-types.message:
9800 * test/data/valid-messages/array-of-array-of-uint32.message:
9801 Change to the new array format.
9803 * test/data/invalid-messages/too-short-dict.message:
9806 * test/data/valid-messages/recursive-types.message:
9807 Fix up and extend test.
9809 2003-04-10 Havoc Pennington <hp@pobox.com>
9811 * bus/dispatch.c: lots of fixes
9813 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9814 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9815 that was crack, broke the test service.
9817 * dbus/dbus-transport.c (_dbus_transport_open): fix error
9818 handling to avoid piling up errors if we get a failure on the
9821 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9822 pid in assertion failures.
9824 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9825 to some fixed size of file descriptor array. Don't return TRUE
9826 anytime a timeout exists, that led to lots of busy loop silliness
9829 2003-04-09 Havoc Pennington <hp@redhat.com>
9831 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9832 I'd checked this in earlier but hadn't.
9834 2003-04-09 Havoc Pennington <hp@redhat.com>
9836 * bus/dispatch.c (bus_dispatch_test): get a bit further through
9837 the activation test (man this is getting old!)
9839 2003-04-09 Havoc Pennington <hp@redhat.com>
9841 * test/test-utils.c: use dispatch status function to fix this up
9843 * bus/connection.c (connection_watch_callback): don't dispatch
9845 (connection_timeout_callback): don't dispatch from here
9846 (bus_connections_setup_connection): set the dispatch status function
9847 (bus_connection_disconnected): unset it
9849 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9850 used to add a connection to be dispatched
9851 (_dbus_loop_iterate): do the dispatching at the end of each
9854 * dbus/dbus-connection.c
9855 (dbus_connection_set_dispatch_status_function): new function
9856 allowing us to fix up main loop usage
9857 (_dbus_connection_last_unref): free all the various function
9859 (dbus_connection_dispatch): call the DispatchStatusFunction
9860 whenever this function returns
9861 (dbus_connection_handle_watch): call DispatchStatusFunction
9862 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9863 (reply_handler_timeout): call DispatchStatusFunction
9864 (dbus_connection_flush): call DispatchStatusFunction
9866 2003-04-09 Havoc Pennington <hp@redhat.com>
9868 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9871 * bus/dispatch.c (check_service_activated): fix bug in test
9873 * dbus/dbus-mainloop.c (check_timeout): fix this up
9875 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9876 verbose output so we can sort out output from different processes,
9877 e.g. in the activation case.
9879 2003-04-08 Colin Walters <walters@gnu.org>
9881 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9883 (bus_context_new): Set it.
9884 (bus_context_unref): Use it to delete the pid file.
9886 2003-04-08 Havoc Pennington <hp@redhat.com>
9888 * test/data/invalid-messages/array-with-mixed-types.message:
9889 regression test that fails for the moment
9891 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9892 tests for convenience
9894 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9895 array of nil, it broke things.
9897 * test/data/invalid-messages/array-of-nil.message: regression test
9899 * test/data/valid-messages/array-of-array-of-uint32.message:
9900 happened to write this so added it to suite
9902 2003-04-08 Havoc Pennington <hp@redhat.com>
9904 * bus/driver.c (bus_driver_handle_acquire_service): init
9905 retval/reply before checking name
9907 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9908 recursion depth argument
9910 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9911 in the public struct for future extension
9913 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9916 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9919 * doc/dbus-specification.sgml: fix typo
9921 2003-04-08 Alexander Larsson <alexl@redhat.com>
9923 Implemented recursive types, named types and new-style iters
9926 * glib/test-thread-client.c: (thread_func):
9927 * glib/test-thread-server.c: (handle_test_message):
9928 * test/test-service.c: (handle_echo):
9937 * dbus/dbus-internals.c: (_dbus_type_to_string):
9938 Update for new types.
9940 * dbus/dbus-marshal.[ch]:
9941 Implement recursive types and the new marshalling format.
9942 Remove hardcoded dict marshalling.
9943 Marshal named types.
9945 * dbus/dbus-message-builder.c:
9947 Remove references to old types
9949 * dbus/dbus-message.[ch]:
9950 New non-refcounted iter API that supports recursive iters.
9951 Use iters for appending, including support for recursive
9953 Add byte and named type support.
9954 Update everything to new marshalling formats.
9955 Add tests for new API.
9957 * dbus/dbus-protocol.h:
9958 Remove old array types.
9959 Add types: BYTE, ARRAY, DICT, NAMED
9961 * dbus/dbus-string.c:
9962 * dbus/dbus-sysdeps.c:
9963 Make parse_double locale safe.
9965 * dbus/dbus-test-main.c:
9971 * doc/dbus-specification.sgml:
9974 * test/data/incomplete-messages/missing-body.message:
9975 * test/data/invalid-messages/bad-boolean.message:
9976 * test/data/invalid-messages/bad-boolean-array.message:
9977 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9978 * test/data/invalid-messages/boolean-has-no-value.message-raw:
9979 * test/data/invalid-messages/too-short-dict.message:
9980 * test/data/valid-messages/dict-simple.message:
9981 * test/data/valid-messages/dict.message:
9982 * test/data/valid-messages/emptiness.message:
9983 * test/data/valid-messages/lots-of-arguments.message:
9984 * test/data/valid-messages/no-padding.message:
9985 * test/data/valid-messages/recursive-types.message:
9986 Add missing NAME fields
9987 Fix up dicts & arrays
9989 * test/data/invalid-messages/dict-with-nil-value.message:
9990 Removed, this is not invalid anymore.
9992 * test/data/valid-messages/recursive-types.message:
9993 Add new test for deeply recursive types.
9995 2003-04-07 Havoc Pennington <hp@pobox.com>
9997 * bus/driver.c (bus_driver_handle_acquire_service): return an
9998 error if you try to acquire a service that starts with ':'
10000 2003-04-07 Havoc Pennington <hp@redhat.com>
10002 * doc/dbus-specification.sgml: require that base service names
10003 start with ':' and that the base service is created/deleted
10004 as first and last things a connection does on the bus
10006 * bus/dispatch.c (check_existent_service_activation): lots more
10007 work on the activation test; it doesn't fully pass yet...
10009 * test/test-service.c (main): fix so we don't memleak the
10010 connection to the message bus
10011 (filter_func): accept a message asking us to exit
10013 2003-04-06 Havoc Pennington <hp@pobox.com>
10015 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10018 * configure.in: fixes to Qt detection from Colin Walters
10020 * doc/Makefile.am: Only remove generated docbook dirs if they
10021 exist, from Colin Walters
10023 * dbus/dbus-bus.c: change how we set well-known connections to
10024 NULL, so that it works if a single connection is stored in
10025 two well-known array slots.
10027 * test/Makefile.am: remove a lot of stuff that isn't immediately
10028 useful, it's in CVS history if we want it.
10030 * test/test-service.c: use dbus-mainloop instead of that
10033 2003-04-06 Havoc Pennington <hp@pobox.com>
10035 * dbus/Makefile.am: split lists of sources into stuff that goes in
10036 the library, util functions that go in the lib and are also used
10037 elsewhere, and util functions that are used in tests/daemon but
10038 don't go in the lib.
10040 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10041 here so it can be used in test binaries also
10043 2003-04-06 Havoc Pennington <hp@pobox.com>
10045 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10046 here in the parent process, so we can return an error if it
10047 fails. Also, move some of the code into the child so the parent
10048 is less hosed if we fail midway through.
10050 * bus/bus.c (bus_context_new): move pidfile detection further up
10051 in the function, before we start overwriting sockets and such.
10053 * bus/messagebus.in: adjust this a bit, not sure if it will work.
10055 * configure.in: add --with-system-pid-file and --with-system-socket
10057 2003-04-06 Colin Walters <walters@verbum.org>
10059 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10061 * bus/system.conf.in: Declare a pidfile.
10063 * bus/bus.c (bus_context_new): Test for an existing pid file, and
10064 create one (if appropriate).
10066 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10067 (struct BusConfigParser) [pidfile]: New.
10068 (element_type_to_name, merge_included, start_busconfig_child)
10069 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10070 (bus_config_parser_unref): Free it.
10071 (bus_config_parser_get_pidfile): New function.
10073 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10075 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10077 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10079 * dbus/dbus-sysdeps.h: Prototype it.
10081 2003-04-06 Havoc Pennington <hp@pobox.com>
10083 * bus/bus.c (bus_context_new): print the address in here, rather
10084 than in main(), because we need to do it before forking the daemon
10086 * bus/dispatch.c (send_service_nonexistent_error): set the sender
10087 on the service nonexistent error
10089 * bus/driver.c (bus_driver_handle_acquire_service): set the
10090 sender on the AcquireService reply
10092 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10093 server also listen on a UNIX socket so services can connect to it.
10095 2003-04-06 Havoc Pennington <hp@pobox.com>
10097 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10098 so it detects deadlocks and also we actually init threads when
10101 2003-04-06 Havoc Pennington <hp@pobox.com>
10103 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10104 save the domain socket name, and unlink it when we disconnect the
10105 server. Means that at least when we exit normally, we won't leave
10106 a bunch of junk in /tmp
10108 * dbus/dbus-transport-unix.c
10109 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10110 memory management). (I was making a real change here but then
10113 2003-04-06 Havoc Pennington <hp@pobox.com>
10115 * bus/bus.c (bus_context_new): fix wrong handling of
10116 server_data_slot_unref() in the error case.
10118 * dbus/dbus-internals.h (_dbus_assert): change so it passes
10119 "(condition) != 0" to _dbus_real_assert so that
10120 "_dbus_assert (pointer)" doesn't cause a warning
10122 * bus/main.c (main): accept --print-address option to print out
10123 the message bus address
10125 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10127 * dbus/dbus-transport.c (_dbus_transport_open): special error for
10128 "tmpdir" option to unix: address on client side
10130 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10133 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10134 we can use to create sockets in the test suite.
10136 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10137 cleanly. To be used for testing.
10139 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10141 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10143 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10144 handle trying to call this when there's no servers active
10146 2003-04-05 Havoc Pennington <hp@pobox.com>
10150 * configure.in: 0.8
10152 2003-04-05 Havoc Pennington <hp@pobox.com>
10154 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10155 crash on startup. Need to get "try starting the daemon"
10156 in the test suite I guess. ;-)
10158 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10159 tracked the number of open connections; it's better done in
10160 application-specific code as you want it to span all servers etc.
10162 2003-04-05 Havoc Pennington <hp@pobox.com>
10164 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10165 patch from Colin Walters
10167 2003-04-05 Havoc Pennington <hp@pobox.com>
10169 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10170 reality; in fact multiple mechanisms are allowed.
10172 * dbus/dbus-internals.c (_dbus_real_assert)
10173 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10174 _dbus_assert_not_reached() into functions, so that they don't show
10175 up in basic block counts for test coverage, and don't use up as
10176 much disk space. Does mean slower execution speed though, so
10177 assumes --disable-asserts is the normal production case.
10179 2003-04-05 Havoc Pennington <hp@pobox.com>
10181 * test/Makefile.am (dist-hook): also dist *.in files
10185 * configure.in: 0.7
10187 2003-04-05 Havoc Pennington <hp@pobox.com>
10189 * dbus/dbus-string.c: docs warning
10191 * dbus/dbus-spawn.c: missing docs
10193 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10195 2003-04-05 Havoc Pennington <hp@pobox.com>
10197 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10200 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10201 to -1 once we've reaped the babysitter
10202 (_dbus_babysitter_handle_watch): do as much work as we can, not
10205 * bus/activation.c: add code using DBusBabysitter so that we
10206 handle it when a service fails to start up properly.
10207 (bus_activation_service_created): don't remove the activation
10208 entries as we go, just let them get removed when we free the pending
10209 activation. Unref reply messages after sending them.
10211 2003-04-05 Havoc Pennington <hp@pobox.com>
10213 * test/decode-gcov.c (main): print per-directory stats in the report
10215 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10217 2003-04-05 Havoc Pennington <hp@pobox.com>
10219 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10221 * test/decode-gcov.c: hack up a little program to suck data
10222 out of gcov files. Yes this is sort of silly.
10224 * configure.in: define something in config.h and do an
10225 AM_CONDITIONAL when gcov is enabled
10227 2003-04-04 Havoc Pennington <hp@redhat.com>
10229 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10230 return a "babysitter" object that is used to monitor the status of
10231 the spawned process and reap it when required.
10233 * test/test-segfault.c, test/test-exit.c,
10234 test/test-sleep-forever.c: binaries that do various lame things,
10235 used in the test suite.
10237 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10239 2003-04-03 Havoc Pennington <hp@pobox.com>
10241 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10242 in preparation for modifying it, dbus-sysdeps is getting
10243 a bit unmanageable.
10245 2003-04-03 Havoc Pennington <hp@redhat.com>
10247 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10250 * bus/*.[hc]: adapt to mainloop change
10252 2003-04-03 Havoc Pennington <hp@redhat.com>
10254 * bus/activation.c (load_directory): fix up memleaks
10255 (bus_activation_entry_free): free the entry
10257 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10258 we get one from the message bus; fix memleaks.
10260 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10262 2003-04-03 Havoc Pennington <hp@pobox.com>
10264 * bus/config-parser.c (bus_config_parser_unref): free
10265 list of mechanisms, bug discovered by test suite enhancements
10266 (putting system.conf and session.conf into suite)
10268 * test/Makefile.am, test/test-service.c: add placeholder for a
10269 test service that we'll activate as part of test suite. Doesn't
10272 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10273 setting NULL value, and use system malloc not dbus_malloc()
10274 when we have unavoidable memleakage.
10276 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10277 didn't work, and support DBUS_BUS_ACTIVATION.
10279 * bus/activation.c (child_setup): pass our well-known bus type to
10282 * bus/config-parser.c: support <type> to specify well-known type
10284 * doc/dbus-specification.sgml: document the env variables to
10285 locate well-known buses and find service activator
10287 2003-04-02 Havoc Pennington <hp@redhat.com>
10289 * test/Makefile.am (all-local): add a rule to copy tests to
10290 builddir, so we can have generated tests. Use this to remove the
10291 silly hack for testing system.conf and session.conf. Will use this
10292 shortly to generate .service files pointing to test binaries.
10294 2003-04-02 Havoc Pennington <hp@redhat.com>
10296 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10297 current alloc and needed new length, not max of the doubled
10298 allocation and needed new length. Also, when building tests,
10299 don't do the double-allocation stuff, just realloc every time.
10301 2003-04-02 Havoc Pennington <hp@redhat.com>
10303 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10305 (_dbus_string_get_dirname): new
10306 (_dbus_sysdeps_test): new
10307 (_dbus_directory_open): include dirnames in error messages
10309 * bus/config-parser.c: interpret <include> and <includedir> and
10310 <servicedir> relative to config file location if the given
10311 filename is not absolute.
10313 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10315 2003-04-02 Havoc Pennington <hp@redhat.com>
10317 * bus/connection.c (bus_transaction_send_error_reply): set sender
10318 service for the error, and unref the reply on success
10320 * bus/activation.c: convert to use BusTransaction so OOM can be
10322 (bus_activation_service_created): set sender of the message
10324 2003-04-01 Havoc Pennington <hp@redhat.com>
10326 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10327 <includedir> (at least mostly)
10329 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10330 first, then the user ID
10332 2003-04-01 Havoc Pennington <hp@pobox.com>
10334 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10337 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10339 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10341 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10342 socket 0777, and unlink any existing socket.
10344 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10345 the configuration file so specifies; set up auth mechanism
10348 * bus/config-parser.c (bus_config_parser_content): add support
10349 for <fork> option and fill in code for <auth>
10351 * bus/system.conf.in: add <fork/> to default configuration,
10352 and limit auth mechanisms to EXTERNAL
10354 * doc/config-file.txt (Elements): add <fork>
10356 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10357 (_dbus_change_identity): new function
10359 2003-03-31 Havoc Pennington <hp@redhat.com>
10361 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10362 (_dbus_listen_unix_socket): fix off-by-one error in null
10363 termination spotted by Nalin
10365 2003-03-31 Havoc Pennington <hp@redhat.com>
10367 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10368 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10369 having a real home directory available.
10371 2003-03-31 Havoc Pennington <hp@redhat.com>
10373 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10375 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10377 * configure.in: add support for specifying a style of init script
10380 2003-03-31 Havoc Pennington <hp@redhat.com>
10382 Fix some annoying DBusString API and fix all affected code.
10384 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10385 max_length argument
10386 (_dbus_string_get_data): change to return string instead of using
10388 (_dbus_string_get_const_data): ditto
10389 (_dbus_string_get_data_len): ditto
10390 (_dbus_string_get_const_data_len): ditto
10392 2003-03-31 Havoc Pennington <hp@redhat.com>
10394 * bus/main.c (main): fix up the command line arguments to be nicer
10396 2003-03-31 Havoc Pennington <hp@redhat.com>
10398 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10399 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10400 final location that lands in the config file
10402 * bus/config-loader-expat.c (bus_config_load): fix type of
10403 XML_Parser variable
10405 * doc/TODO: remove TODO item for dbus_bus_get()
10407 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10409 2003-03-31 Havoc Pennington <hp@pobox.com>
10411 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10412 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10413 argument since they are always client side
10415 * dbus/dbus-server.c (dbus_server_get_address): new function
10417 * bus/main.c (main): take the configuration file as an argument.
10419 * test/data/valid-config-files/debug-allow-all.conf: new file to
10420 use with dispatch.c tests for example
10422 * bus/test-main.c (main): require test data dir
10424 * bus/bus.c (bus_context_new): change this to take a
10425 configuration file name as argument
10427 * doc/config-file.txt (Elements): add <servicedir>
10429 * bus/system.conf, bus/session.conf: new files
10431 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10432 well-known socket if none set
10434 * configure.in: create system.conf and session.conf
10436 2003-03-30 Havoc Pennington <hp@pobox.com>
10438 * bus/config-parser.c: hacking
10440 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10441 to shut down, since it could cause weirdness with the DBusList
10444 * dbus/dbus-list.c (_dbus_list_test): add tests for the
10445 link-oriented stack routines
10446 (alloc_link): free the mempool if the first alloc from it fails
10448 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10450 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10452 (_dbus_string_skip_white): new
10454 * doc/config-file.txt (Elements): add <includedir>
10456 2003-03-28 Havoc Pennington <hp@pobox.com>
10458 * dbus/dbus-string.c (_dbus_string_copy_data_len)
10459 (_dbus_string_copy_data): new functions
10461 2003-03-28 Anders Carlsson <andersca@codefactory.se>
10463 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10467 * dbus/dbus-memory.c:
10470 2003-03-28 Havoc Pennington <hp@pobox.com>
10472 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10473 I think it may have just been superstition. Not sure.
10475 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10476 failures that were not being handled.
10478 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10480 * dbus/dbus-memory.c: add ability to set number of mallocs in a
10481 row that will fail on out-of-memory.
10483 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10484 function for testing out-of-memory handling.
10486 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10487 allocation functions, they do map exactly to the expat ones.
10489 2003-03-27 Havoc Pennington <hp@redhat.com>
10491 * bus/config-loader-libxml.c (bus_config_load): add another error
10494 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10497 Add note about automatic service activation.
10499 * doc/dbus-specification.sgml:
10500 Rename the specification and clarify a few things.
10502 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10505 * dbus/dbus-address.c:
10506 * dbus/dbus-dict.c:
10507 * dbus/dbus-marshal.c:
10508 * dbus/dbus-server-debug-pipe.c:
10509 * dbus/dbus-transport-unix.c:
10510 Fix documentation warnings.
10512 2003-03-26 Havoc Pennington <hp@pobox.com>
10514 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10515 after every test so it's quick and easy to see which leaked, and
10516 so we test multiple dbus_shutdown() calls
10518 * configure.in: change configure.in XML stuff to also support
10521 * config-loader-libxml.c: some hacking
10523 * config-loader-expat.c: some hacking
10525 * config-parser.c: some hacking, plus tests
10527 2003-03-25 Havoc Pennington <hp@redhat.com>
10529 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10531 * configure.in: add --with-xml option to specify XML library,
10532 right now only libxml is supported.
10534 * bus/config-loader-libxml.c, config-parser.c: sync some minor
10535 nonworking code between home and work, still just stubs
10537 2003-03-24 Havoc Pennington <hp@redhat.com>
10539 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10542 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10543 NULL argument for "message" if the error is a well-known one,
10544 fill in a generic message in this case.
10546 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10549 * bus/test.c (bus_test_flush_bus): add
10551 * bus/policy.c (bus_policy_test): test code stub
10553 2003-03-24 Havoc Pennington <hp@pobox.com>
10555 * bus/connection.c (bus_connections_setup_connection): set up
10556 the "can this user connect" function, but it always returns
10557 TRUE until we have a config file parser so we can have a config
10558 file that allows connections.
10560 2003-03-23 Havoc Pennington <hp@pobox.com>
10562 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10563 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10564 the mutex, so we can check for proper memory management
10567 * dbus/dbus-dataslot.c: remove the mutex from
10568 DBusDataSlotAllocator and lock it manually when using it,
10569 to simplify fitting it into the global slots framework.
10571 * dbus/dbus-threads.c (init_static_locks): rework how we're
10572 handling global locks so they are easily shut down.
10574 * bus/policy.c (bus_policy_append_rule): fix
10576 * bus/test-main.c (main): check for memleaks
10578 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10579 test suite check for memleaks
10581 * dbus/dbus-memory.c: add support in test mode for tracking
10582 number of outstanding blocks
10584 2003-03-23 Havoc Pennington <hp@pobox.com>
10586 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10589 * dbus/dbus-hash.h: add ULONG hash keys
10591 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10592 (_dbus_get_group_id): new function
10594 2003-03-20 Havoc Pennington <hp@redhat.com>
10596 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10598 (dbus_connection_get_unix_user): new function
10600 2003-03-20 Havoc Pennington <hp@pobox.com>
10602 * bus/connection.c (bus_connection_send_oom_error): assert that
10603 message has a sender
10604 (connection_execute_transaction): ditto
10605 (bus_connection_preallocate_oom_error): fix to set the sender, and
10606 set recipient to the destination service, not the bus driver
10608 * bus/policy.c: hacking
10610 * dbus/dbus-message.c (dbus_message_service_is): new function
10611 (dbus_message_sender_is): new
10613 2003-03-19 Havoc Pennington <hp@redhat.com>
10615 * bus/policy.c: start sketching code for policy restrictions on
10616 what connections can do.
10618 2003-03-18 Havoc Pennington <hp@redhat.com>
10620 * doc/TODO: some notes on high-level todo items. Little nitpick
10621 stuff is all in @todo, so no need to add it here.
10623 * doc/config-file.txt: some notes on how config file might look
10625 2003-03-18 Anders Carlsson <andersca@codefactory.se>
10627 * configure.in: 0.6
10631 2003-03-17 Havoc Pennington <hp@redhat.com>
10633 * dbus/dbus-internals.h: add gcc attributes so that
10634 our printf-style functions warn on bad arguments to
10637 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10640 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10643 2003-03-17 Havoc Pennington <hp@redhat.com>
10645 * bus/test-main.c (main): make it print something as it runs
10646 so make check doesn't look stuck
10648 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10649 from CVS, now obsolete
10651 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10653 * bus/dispatch.c: (bus_dispatch):
10654 Refetch the service name since it may have been reallocated
10655 when dbus_message_set_sender was called.
10657 * dbus/dbus-sysdeps.c: (_dbus_accept):
10658 Add address and address length variables and use them to stop
10659 valgrind from complaining.
10661 2003-03-17 Havoc Pennington <hp@pobox.com>
10663 All tests pass, no memleaks, no valgrind complaints.
10665 * bus/test.c: refcount handler_slot
10667 * bus/connection.c (bus_connections_new): refcount
10668 connection_data_slot
10670 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10671 bytes so that auth scripts pass.
10673 * bus/dispatch.c: init message_handler_slot so it gets allocated
10676 * bus/dispatch.c (message_handler_slot_ref): fix memleak
10678 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10679 dealloc server_pipe_hash when no longer used for benefit of
10682 * dbus/dbus-auth.c (process_command): memleak fix
10684 * bus/dispatch.c (check_hello_message): memleak fix
10686 2003-03-16 Havoc Pennington <hp@pobox.com>
10688 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10690 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10692 * bus/activation.c (bus_activation_activate_service): Append
10693 the pending activation entry to the list of pending activations.
10695 2003-03-16 Havoc Pennington <hp@pobox.com>
10697 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10700 * dbus/dbus-address.c (create_entry): fix OOM handling when
10701 failing to alloc entry->method
10703 2003-03-16 Havoc Pennington <hp@pobox.com>
10705 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10708 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10709 add some missing dbus_set_result
10711 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10712 alloc the DBusMessageHandler
10714 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10715 the transport here, since we call this from the finalizer; it
10716 resulted in a double-finalize.
10718 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10719 where we tried to use transport->connection that was NULL,
10720 happened when transport was disconnected early on due to OOM
10722 * bus/*.c: adapt to handle OOM for watches/timeouts
10724 * dbus/dbus-transport-unix.c: port to handle OOM during
10727 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10728 reference to unused bytes instead of a copy
10730 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10733 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10736 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10739 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10741 * doc/dbus-specification.sgml:
10742 Document reply message for ActivateService.
10744 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10746 * bus/activation.c: (bus_pending_activation_entry_free),
10747 (bus_pending_activation_free), (bus_activation_new),
10748 (bus_activation_unref), (bus_activation_service_created),
10749 (bus_activation_activate_service):
10750 * bus/activation.h:
10751 * bus/bus.c: (bus_context_new):
10752 * bus/desktop-file.c: (new_section):
10753 * bus/driver.c: (bus_driver_send_service_deleted),
10754 (bus_driver_handle_activate_service):
10755 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10757 * dbus/dbus-connection.c:
10758 (dbus_connection_send_with_reply_and_block):
10759 * dbus/dbus-message.c: (dbus_message_append_args_valist):
10760 * dbus/dbus-protocol.h:
10761 Make activation work better. Now pending activations will be queued
10762 and the daemon won't try to activate services that are already registered.
10764 2003-03-16 Havoc Pennington <hp@pobox.com>
10766 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10769 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10770 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10772 2003-03-16 Havoc Pennington <hp@pobox.com>
10774 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10775 this. always run the test suite before commit...
10777 * bus/*: adapt to DBusConnection API changes
10779 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10780 requires renaming stuff to avoid dbus_connection_dispatch name
10783 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10786 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10787 separate from _dbus_message_loader_return_buffer()
10789 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10790 this, because it's now always broken to use; the number of
10791 messages in queue vs. the number still buffered by the message
10792 loader is undefined/meaningless. Should use
10793 dbus_connection_get_dispatch_state().
10794 (dbus_connection_dispatch): rename from
10795 dbus_connection_dispatch_message
10797 2003-03-16 Havoc Pennington <hp@pobox.com>
10799 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10802 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10804 * dbus/dbus-connection.c:
10805 (dbus_connection_send_with_reply_and_block):
10806 Decrease connection->n_incoming when removing an entry
10808 * dbus/dbus-dict.c: (dbus_dict_entry_free),
10809 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10810 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10811 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10812 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10813 (dbus_dict_get_byte_array):
10814 Handle NULL arrays and strings. Also add support for byte arrays.
10816 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10817 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10818 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10819 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10820 (_dbus_demarshal_dict), (demarshal_and_validate_len),
10821 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10822 * dbus/dbus-marshal.h:
10823 Add support for marshalling and demarshalling empty arrays and strings.
10825 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10826 (dbus_message_append_string_array),
10827 (dbus_message_iter_get_boolean),
10828 (dbus_message_iter_get_boolean_array),
10829 (dbus_message_iter_get_int32_array),
10830 (dbus_message_iter_get_uint32_array),
10831 (dbus_message_iter_get_double_array),
10832 (dbus_message_iter_get_byte_array),
10833 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10834 (check_message_handling):
10835 Add support for getting empty arrays and dicts.
10837 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10838 Don't do any validation at all for now, that's better than just checking
10841 * test/data/valid-messages/emptiness.message:
10842 New test message with lots of empty arrays.
10844 2003-03-16 Havoc Pennington <hp@pobox.com>
10846 * dbus/dbus-connection.c
10847 (_dbus_connection_queue_received_message_link): new function that
10848 can't fail due to OOM
10850 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10851 new function pops a message together with a list link
10854 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10855 message queuing functions to avoid needing to alloc memory
10857 2003-03-16 Havoc Pennington <hp@pobox.com>
10859 Oops - test code was only testing failure of around 30 of the
10860 mallocs in the test path, but it turns out there are 500+
10861 mallocs. I believe this was due to misguided linking setup such
10862 that there was one copy of dbus_malloc etc. in the daemon and one
10863 in the shared lib, and only daemon mallocs were tested. In any
10864 case, the test case now tests all 500+ mallocs, and doesn't pass
10865 yet, though there are lots of fixes in this patch.
10867 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10868 this so that it doesn't need to allocate memory, since it
10869 has no way of indicating failure due to OOM (and would be
10870 annoying if it did).
10872 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10874 * bus/Makefile.am: rearrange to create two self-contained
10875 libraries, to avoid having libraries with overlapping symbols.
10876 that was resulting in weirdness, e.g. I'm pretty sure there
10877 were two copies of global static variables.
10879 * dbus/dbus-internals.c: move the malloc debug stuff to
10882 * dbus/dbus-list.c (free_link): free list mempool if it becomes
10885 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10887 * dbus/dbus-address.c (dbus_parse_address): free list nodes
10890 * bus/dispatch.c (bus_dispatch_add_connection): free
10891 message_handler_slot when no longer using it, so
10892 memory leak checkers are happy for the test suite.
10894 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10896 * bus/bus.c (new_connection_callback): disconnect in here if
10897 bus_connections_setup_connection fails.
10899 * bus/connection.c (bus_connections_unref): fix to free the
10901 (bus_connections_setup_connection): if this fails, don't
10902 disconnect the connection, just be sure there are no side
10905 * dbus/dbus-string.c (undo_alignment): unbreak this
10907 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10909 (_dbus_auth_new): fix the order in which we free strings
10912 * bus/connection.c (bus_connection_disconnected): fix to
10913 not send ServiceDeleted multiple times in case of memory
10916 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10917 get the base service name
10918 (dbus_bus_register_client): don't return base service name,
10919 instead store it on the DBusConnection and have an accessor
10921 (dbus_bus_register_client): rename dbus_bus_register()
10923 * bus/dispatch.c (check_hello_message): verify that other
10924 connections on the bus also got the correct results, not
10925 just the one sending hello
10927 2003-03-15 Havoc Pennington <hp@pobox.com>
10929 Make it pass the Hello handling test including all OOM codepaths.
10930 Now to do other messages...
10932 * bus/services.c (bus_service_remove_owner): fix crash when
10933 removing owner from an empty list of owners
10934 (bus_registry_ensure): don't leave service in the list of
10935 a connection's owned services if we fail to put the service
10938 * bus/connection.c (bus_connection_preallocate_oom_error): set
10939 error flag on the OOM error.
10941 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10942 handle _dbus_transport_set_connection failure
10944 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10945 to create watches up front and simply enable/disable them as
10947 (unix_connection_set): this can now fail on OOM
10949 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10950 of enabling/disabling a watch or timeout.
10952 * bus/loop.c (bus_loop_iterate): don't touch disabled
10955 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10957 2003-03-15 Havoc Pennington <hp@pobox.com>
10959 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10960 write useful test code, after all that futzing around ;-)
10962 Test does not yet pass because we can't handle OOM in
10963 _dbus_transport_messages_pending (basically,
10964 dbus_connection_preallocate_send() does not prealloc the write
10965 watch). To fix this, I think we need to add new stuff to
10966 set_watch_functions, namely a SetEnabled function so we can alloc
10967 the watch earlier, then enable it later.
10969 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10970 dbus-memory.c to the convenience lib
10972 * bus/test.c: rename some static functions to keep them clearly
10973 distinct from stuff in connection.c. Handle client disconnection.
10975 2003-03-14 Havoc Pennington <hp@pobox.com>
10977 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10978 transport, tests more of the real codepath. Set up clients
10979 with bus_setup_debug_client.
10981 * bus/test.c (bus_setup_debug_client): function to set up debug
10982 "clients" on the main loop
10984 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10987 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10990 * dbus/dbus-server-debug.c: support a debug server based on pipes
10992 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10993 (_dbus_close): new function
10995 * configure.in: check for socketpair
10997 2003-03-14 Havoc Pennington <hp@redhat.com>
10999 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11002 * dbus/dbus-transport-debug.c: rework this a good bit to be
11003 less complicated. hopefully still works.
11005 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11008 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11011 * dbus/dbus-message.c (dbus_message_copy): rename from
11012 dbus_message_new_from_message, fix it up to copy
11013 all the message fields, add test case
11015 * bus/dispatch.c (bus_dispatch_test): add some more test code,
11016 not quite passing yet
11018 2003-03-14 Havoc Pennington <hp@pobox.com>
11020 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11021 until no work remains" in test code. (the large diff here
11022 is just code movement, no actual changes)
11024 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11025 1, no point waiting around for test code.
11026 (_dbus_server_debug_accept_transport): unref the timeout
11027 after adding it (right?)
11029 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11031 2003-03-13 Havoc Pennington <hp@redhat.com>
11033 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11036 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11039 * dbus/dbus-connection.h: Make AddWatchFunction and
11040 AddTimeoutFunction return a bool so they can fail on out-of-memory
11042 * bus/bus.c (bus_context_new): set up timeout handlers
11044 * bus/connection.c (bus_connections_setup_connection): set up
11047 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11050 * bus/bus.c (bus_context_new): adapt to changes
11052 * bus/connection.c: adapt to changes
11054 * test/watch.c: adapt to DBusWatch changes
11056 * bus/dispatch.c (bus_dispatch_test): started adding this but
11059 2003-03-14 Anders Carlsson <andersca@codefactory.se>
11061 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11063 2003-03-13 Havoc Pennington <hp@pobox.com>
11065 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11066 set up a test framework as for the library
11068 2003-03-12 Havoc Pennington <hp@pobox.com>
11070 Throughout: purge global variables, introduce BusActivation,
11071 BusConnections, BusRegistry, etc. objects instead.
11073 * bus/bus.h, bus/bus.c: introduce BusContext as a global
11076 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11077 going to redo this a bit differently I think
11079 2003-03-12 Havoc Pennington <hp@redhat.com>
11081 Mega-patch that gets the message bus daemon initially handling
11082 out-of-memory. Work still needed. Also lots of random
11083 moving stuff to DBusError instead of ResultCode.
11085 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11087 * dbus/dbus-connection.c
11088 (dbus_connection_send_with_reply_and_block): use DBusError
11090 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11093 * dbus/dbus-connection.c (dbus_connection_send): drop the result
11094 code here, as the only failure possible is OOM.
11096 * bus/connection.c (bus_connection_disconnect):
11097 rename bus_connection_disconnected as it's a notification only
11099 * bus/driver.c (bus_driver_handle_acquire_service): don't free
11100 "name" on get_args failure, should be done by get_args;
11101 don't disconnect client for bad args, just return an error.
11102 (bus_driver_handle_service_exists): ditto
11104 * bus/services.c (bus_services_list): NULL-terminate returned array
11106 * bus/driver.c (bus_driver_send_service_lost)
11107 (bus_driver_send_service_acquired): send messages from driver to a
11108 specific client to the client's unique name, not to the broadcast
11111 * dbus/dbus-message.c (decode_header_data): reject messages that
11112 contain no name field
11113 (_dbus_message_get_client_serial): rename to
11114 dbus_message_get_serial and make public
11115 (_dbus_message_set_serial): rename from set_client_serial
11116 (_dbus_message_set_reply_serial): make public
11117 (_dbus_message_get_reply_serial): make public
11119 * bus/connection.c (bus_connection_foreach): allow stopping
11120 iteration by returning FALSE from foreach function.
11122 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11123 (dbus_connection_free_preallocated_send)
11124 (dbus_connection_preallocate_send): new API for sending a message
11125 without possibility of malloc failure.
11126 (dbus_connection_send_message): rename to just
11127 dbus_connection_send (and same for whole function family)
11129 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11131 * dbus/dbus-sysdeps.c (_dbus_exit): new function
11133 * bus/activation.c: handle/return errors
11135 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11137 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11138 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11139 (_dbus_result_from_errno): move to this file
11141 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11143 * dbus/dbus-marshal.c:
11144 (_dbus_marshal_set_string):
11145 Take a length argument so we can marshal the correct string
11148 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11149 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11150 (_dbus_marshal_test):
11151 * dbus/dbus-marshal.h:
11152 Add support for marshalling and demarshalling dicts.
11154 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11155 Add support for TYPE DICT.
11157 * dbus/dbus-message.c: (set_string_field):
11158 Adjust header padding.
11160 (dbus_message_append_args_valist), (dbus_message_append_dict),
11161 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11162 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11163 (check_message_handling), (check_have_valid_message):
11164 * dbus/dbus-message.h:
11165 Add functions for setting and getting dicts.
11167 * dbus/dbus-protocol.h:
11168 Add DBUS_TYPE_DICT.
11173 * doc/dbus-specification.sgml:
11174 Add information about how dicts are marshalled.
11176 * test/data/invalid-messages/dict-with-nil-value.message:
11177 * test/data/invalid-messages/too-short-dict.message:
11178 * test/data/valid-messages/dict-simple.message:
11179 * test/data/valid-messages/dict.message:
11180 Add sample messages containing dicts.
11182 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11184 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11186 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11188 * dbus/Makefile.am:
11189 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11190 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11191 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11192 (dbus_dict_set_double), (dbus_dict_set_string),
11193 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11194 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11195 (dbus_dict_set_string_array), (_dbus_dict_test):
11196 * dbus/dbus-dict.h:
11197 Fix according to comments from Havoc.
11199 2003-03-06 Michael Meeks <michael@server.home>
11201 * configure.in: if we don't have kde-config, disable have_qt.
11203 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11205 * dbus/Makefile.am:
11208 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11209 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11210 (dbus_dict_remove), (dbus_dict_get_value_type),
11211 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11212 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11213 (dbus_dict_put_double), (dbus_dict_put_string),
11214 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11215 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11216 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11217 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11218 (dbus_dict_get_double), (dbus_dict_get_string),
11219 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11220 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11221 (dbus_dict_get_string_array), (_dbus_dict_test):
11222 * dbus/dbus-dict.h:
11223 Add DBusDict implementation
11225 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11226 * dbus/dbus-test.h:
11227 Add _dbus_dict_test
11229 2003-03-04 Havoc Pennington <hp@pobox.com>
11231 * test/data/auth/*: adapt to changes
11233 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11234 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11237 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11238 more stuff from being in a context name, to make the protocol
11239 simpler to deal with
11241 * dbus/dbus-errors.c (dbus_error_has_name): new function
11242 (dbus_error_is_set): new function
11244 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11245 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11247 * dbus/dbus-connection.c (dbus_connection_flush): also read
11248 messages during a flush operation
11250 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11252 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11254 * configure.in: Check for gethostbyname on Solaris.
11256 * dbus/dbus-transport.c: (_dbus_transport_open):
11257 Remove duplicate "tcp" entry.
11259 * doc/dbus-specification.sgml:
11260 Clarify some things.
11262 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11264 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11265 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11266 (_dbus_keyring_test):
11267 * dbus/dbus-md5.c: (_dbus_md5_compute):
11268 * dbus/dbus-sha.c: (_dbus_sha_compute):
11271 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11273 * README: Add some things.
11275 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11277 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11278 after case DBUS_TYPE_BOOELAN.
11280 2003-03-02 Havoc Pennington <hp@pobox.com>
11282 * test/break-loader.c (randomly_set_extreme_ints): add test that
11283 sets really huge and small integers
11285 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11286 that length of boolean array fits in the string, and that
11287 string has room for boolean value in single-bool case.
11289 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11290 optional value to "ALIGN" command which is what to fill the
11293 * test/data/valid-messages/no-padding.message: add regression
11294 test for the message padding problem
11296 2003-03-02 Havoc Pennington <hp@pobox.com>
11298 * dbus/dbus-message.c (decode_header_data): fix to always init
11299 message_padding, from Benjamin Dauvergne
11301 2003-03-02 Havoc Pennington <hp@pobox.com>
11303 * configure.in: 0.5
11307 2003-03-01 Joe Shaw <joe@assbarn.com>
11309 * configure.in: Check for "struct cmsgcred" and try to access its
11310 members for BSD-like unices.
11312 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11313 _dbus_read_credentials_unix_socket().
11314 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11315 read() for reading the credential byte off the unix socket. Use
11316 struct cmsgcred on systems that support it.
11318 2003-02-27 Alexander Larsson <alexl@redhat.com>
11320 * glib/Makefile.am:
11322 Make gthreads-2.0 dependency optional. Don't build thread test if
11325 2003-02-27 Havoc Pennington <hp@pobox.com>
11327 * dbus/dbus-connection.c
11328 (dbus_connection_send_message_with_reply_and_block): fix doh!
11329 doh! doh! bug that resulted in never removing a reply from the
11330 queue, no wonder we called get_reply_serial so much ;-)
11332 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11333 and client serial instead of demarshaling them every time
11335 2003-02-27 Havoc Pennington <hp@pobox.com>
11337 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11338 more inlined, using dbus-string-private.h, speeds things up
11341 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11342 when freeing the string
11343 (_dbus_string_steal_data): fix for align offset
11344 (undo_alignment): new function
11346 2003-02-26 Havoc Pennington <hp@redhat.com>
11348 All kinds of audit fixes from Owen, plus initial attempt to
11349 handle unaligned memory returned from malloc.
11351 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11352 leave room for align_offset and nul byte
11353 (fixup_alignment): function to track an align_offset and
11354 ensure real->str is aligned
11355 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11356 to allow a nul byte plus align offset
11357 (_dbus_string_lock): fix overflow issue
11358 (_dbus_string_init_const_len): add assertions on sanity of len,
11359 assign allocated to be ALLOCATION_PADDING larger than len
11360 (set_length): fixup the overflow handling
11361 (_dbus_string_get_data_len): fix overflow in assertion
11362 (open_gap): detect overflow in size of gap to be opened
11363 (_dbus_string_lengthen): add overflow check
11364 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11365 (_dbus_string_append): add overflow check
11366 (_dbus_string_append_unichar): overflow
11367 (_dbus_string_delete): fix overflow in assertion
11368 (_dbus_string_copy_len): overflow in assertion
11369 (_dbus_string_replace_len): overflows in assertions
11370 (_dbus_string_find): change to implement in terms of
11371 _dbus_string_find_to
11372 (_dbus_string_find_to): assorted fixage
11373 (_dbus_string_equal_c_str): assert c_str != NULL,
11374 fix logic so the function works
11375 (_dbus_string_ends_with_c_str): fix overflow thingy
11376 (_dbus_string_base64_encode): overflow fix
11377 (_dbus_string_validate_ascii): overflow
11378 (_dbus_string_validate_nul): overflow
11380 2003-02-26 Havoc Pennington <hp@redhat.com>
11382 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11384 2003-02-26 Alexander Larsson <alexl@redhat.com>
11387 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11389 * dbus/dbus-connection.c:
11390 * dbus/dbus-connection.h:
11391 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11392 Add dbus_connection_set_wakeup_main_function and use it when queueing
11393 incoming and outgoing messages.
11396 * dbus/dbus-dataslot.c:
11397 Threadsafe usage of DBusDataSlotAllocator
11399 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11402 * dbus/dbus-server-unix.c:
11405 * glib/dbus-gmain.c:
11406 Implement the new wakeup functions for glib.
11408 * glib/Makefile.am:
11409 * glib/test-thread-client.c:
11410 * glib/test-thread-server.c:
11411 * glib/test-thread.h:
11412 Initial cut at some thread test code. Not really done yet.
11414 2003-02-26 Havoc Pennington <hp@pobox.com>
11416 * dbus/dbus-connection.c
11417 (dbus_connection_send_message_with_reply_and_block): fix crash
11418 where we ref'd the outgoing message instead of the returned reply
11420 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11421 at the end of this function, so if we didn't need to read for
11422 authentication, we reinstall it for receiving messages
11424 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11425 a NULL sender for peer-to-peer case
11427 * dbus/dbus-transport-unix.c (check_read_watch): handle
11428 !authenticated case correctly
11430 * glib/dbus-gmain.c: add support for DBusServer
11432 * dbus/dbus-server.c: add data slot support
11434 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11435 return values and handle errors
11437 * dbus/dbus-dataslot.c: factor out the data slot stuff from
11440 * Doxyfile.in (INPUT): add glib subdir
11442 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11443 setup_with_g_main instead of hookup_with_g_main; write docs
11445 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11447 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11448 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11449 * dbus/dbus-message.c: (dbus_message_append_boolean),
11450 (dbus_message_append_boolean_array),
11451 (dbus_message_get_args_valist), (_dbus_message_test):
11452 * dbus/dbus-message.h:
11453 * doc/dbus-specification.sgml:
11454 Various fixes as pointed out by Havoc.
11456 * test/data/invalid-messages/bad-boolean-array.message:
11457 * test/data/invalid-messages/bad-boolean.message:
11458 Add invalid boolean value test cases.
11460 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11462 * dbus/dbus-internals.c: (_dbus_type_to_string):
11463 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11464 (_dbus_marshal_validate_arg):
11465 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11466 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11467 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11468 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11469 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11470 (dbus_message_iter_get_double),
11471 (dbus_message_iter_get_boolean_array), (message_iter_test):
11472 * dbus/dbus-message.h:
11473 * dbus/dbus-protocol.h:
11474 * doc/dbus-specification.sgml:
11475 * test/data/valid-messages/lots-of-arguments.message:
11476 Add support for boolean and boolean array types.
11478 2003-02-23 Havoc Pennington <hp@pobox.com>
11480 * dbus/dbus-keyring.c: finish most of this implementation and
11483 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11484 these barf if the error isn't cleared to NULL
11486 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11487 (_dbus_create_directory): new function
11489 * dbus/dbus-errors.c (dbus_set_error): fix warning
11491 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11492 (_dbus_string_hex_decode): new function
11493 (test_hex_roundtrip): test code
11495 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11497 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11499 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11500 the save-to-temp/rename trick to atomically write the new file
11501 (_dbus_string_parse_uint): new function
11503 2003-02-22 Havoc Pennington <hp@pobox.com>
11505 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11507 2003-02-22 Havoc Pennington <hp@pobox.com>
11509 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11510 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11512 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11514 * dbus/test/data/sha-1: add US government test suite for SHA-1
11516 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11518 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11519 Make string arrays NULL-terminated.
11521 * dbus/dbus-memory.c: (dbus_free_string_array):
11522 * dbus/dbus-memory.h:
11523 New function for freeing NULL-terminated string arrays.
11525 * dbus/dbus-message-builder.c: (append_quoted_string),
11526 (_dbus_message_data_load):
11527 Add support for array types.
11529 * dbus/dbus-message.c: (check_message_handling):
11530 Add more types as test cases.
11532 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11533 (_dbus_string_parse_double):
11534 Add the start offset to the end offset.
11536 * test/data/valid-messages/lots-of-arguments.message:
11537 New test message with lots of arguments.
11539 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11541 * dbus/dbus-message.c: (dbus_message_append_nil),
11542 (dbus_message_append_int32), (dbus_message_append_uint32),
11543 (dbus_message_append_double), (dbus_message_append_string),
11544 (dbus_message_append_int32_array),
11545 (dbus_message_append_uint32_array),
11546 (dbus_message_append_double_array),
11547 (dbus_message_append_byte_array),
11548 (dbus_message_append_string_array):
11549 Fix all out-of-memory handling in these functions.
11551 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11553 * dbus/dbus-message.c: (dbus_message_append_nil):
11556 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11558 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11559 (dbus_message_append_nil), (dbus_message_append_int32_array),
11560 (dbus_message_append_uint32_array),
11561 (dbus_message_append_double_array),
11562 (dbus_message_append_byte_array),
11563 (dbus_message_append_string_array), (dbus_message_get_args_valist),
11564 (dbus_message_iter_get_int32_array),
11565 (dbus_message_iter_get_uint32_array),
11566 (dbus_message_iter_get_double_array),
11567 (dbus_message_iter_get_byte_array),
11568 (dbus_message_iter_get_string_array):
11570 * dbus/dbus-message.h:
11571 Add functions for appending and getting arrays.
11573 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11575 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11576 element size at least 8 bytes, fixes mempool tests on
11579 2003-02-20 Alexander Larsson <alexl@redhat.com>
11581 * dbus/dbus-transport-unix.c (unix_do_iteration):
11582 Unlock the connection mutex during a blocking select call.
11583 Add todo about how we need a way to wake up the select.
11585 * dbus/dbus-connection-internal.h:
11586 * dbus/dbus-connection.c:
11587 Add _dbus_connection_lock and _dbus_connection_unlock.
11589 2003-02-19 Havoc Pennington <hp@pobox.com>
11591 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11592 Doxyfile.in, not Doxyfile
11594 * dbus/dbus-keyring.c: do some hacking on this
11596 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11598 * dbus/dbus-errors.c (dbus_set_error_const): do not call
11600 (dbus_set_error): remove dbus_error_init, check for message ==
11601 NULL *before* we sprintf into it, and add @todo about including
11602 system headers in this file
11604 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11606 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11608 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11609 get various bits of user information based on either username
11611 (_dbus_homedir_from_username): new function
11613 2003-02-19 Anders Carlsson <andersca@codefactory.se>
11616 Add check for nonposix getpwnam_r
11618 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11619 Align the pool element size to a sizeof (void *) boundary.
11621 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11622 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11623 General Solaris fixes.
11625 * test/data/valid-messages/simplest-manual.message:
11626 Explicitly state that we want little-endian packing.
11628 2003-02-19 Mikael Hallendal <micke@codefactory.se>
11630 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11632 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11633 Added to create a transport connecting using a tcp/ip socket.
11635 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11636 to a tcp socket at given host and port.
11637 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11640 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11642 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11643 Added to create a server listening on a TCP/IP socket.
11645 2003-02-19 Havoc Pennington <hp@pobox.com>
11647 Throughout: mop up all the Doxygen warnings and undocumented
11650 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11651 to search any paths.
11653 * dbus/dbus-threads.c: move global mutex initializers to
11654 dbus-internals.h, multiple prototypes was confusing doxygen
11655 besides being kind of ugly
11657 * Doxyfile (PREDEFINED): have Doxygen define
11658 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11659 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11660 (do not abuse the feature! it's for stuff like the autogenerated
11661 macros in dbus-md5.c, not just for things you don't feel like
11664 2003-02-18 Havoc Pennington <hp@pobox.com>
11666 * dbus/dbus-string.c (_dbus_string_zero): new function
11668 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11669 wrap it in some dbus-friendly API
11671 * dbus/dbus-types.h: add 16-bit types
11673 2003-02-18 Joe Shaw <joe@assbarn.com>
11675 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11676 credentials from our currently running process.
11677 (get_word): Fix a buglet where we were copying the entire length
11678 instead of relative to our position.
11680 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11681 keys on the stack... it's 640k of data.
11683 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11684 read the credentials byte off the socket, even if we don't have
11686 (_dbus_poll): Implement poll() using select() for systems which
11689 * glib/test-dbus-glib.c (main): Print out an error if no
11690 parameters are given.
11692 * test/data/auth/fallback.auth-script: Added. Tests that a client
11693 can fallback to a secondary auth mechanism if the first fails.
11695 2003-02-18 Havoc Pennington <hp@pobox.com>
11697 * AUTHORS: add Alex
11699 2003-02-17 Havoc Pennington <hp@pobox.com>
11701 * doc/dbus-specification.sgml: lots of cosmetic
11702 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11703 env variable to DBUS_BUS_ADDRESS, s/client/application/,
11704 s/server/bus/ (except in authentication section). Add a section
11705 "Message Bus Message Routing"
11707 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
11713 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11715 * doc/dbus-specification.sgml:
11716 Specification updates.
11718 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11720 * bus/activation.c: (bus_activation_init), (child_setup),
11721 (bus_activation_activate_service):
11722 * bus/activation.h:
11723 * bus/main.c: (main):
11724 Set DBUS_ADDRESS environment variable.
11726 * dbus/dbus-errors.c: (dbus_set_error):
11727 Don't use va_copy since that's a C99 feature.
11729 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11730 (_dbus_spawn_async):
11731 * dbus/dbus-sysdeps.h:
11732 Add child_setup_func to _dbus_spawn_async.
11734 * doc/dbus-specification.sgml:
11735 Update specification.
11737 * test/spawn-test.c: (setup_func), (main):
11740 2003-02-17 Alexander Larsson <alexl@redhat.com>
11742 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11745 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11749 * doc/dbus-test-plan.sgml:
11750 Add test plan document.
11752 * test/Makefile.am:
11755 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11757 * dbus/dbus-message.c: (decode_header_data),
11758 (_dbus_message_loader_return_buffer):
11759 Set the header padding amount when loading a message.
11761 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11763 * bus/dispatch.c: (send_one_message):
11764 Only send broadcast messages to registered connections.
11766 * dbus/dbus-message.c: (dbus_message_name_is):
11767 * dbus/dbus-message.h:
11768 New convenience function.
11770 * dbus/dbus-transport-debug.c: (do_reading):
11771 Only dispatch one message per run.
11773 * test/Makefile.am:
11774 * test/bus-test.c: (new_connection_callback), (die),
11775 (test_hello_client1_handler), (test_hello_client2_handler),
11776 (test_hello_replies), (main):
11778 * test/bus-test-loop.[ch]:
11781 2003-02-16 Havoc Pennington <hp@pobox.com>
11783 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11784 backward conditional
11786 2003-02-16 Alexander Larsson <alexl@redhat.com>
11788 * dbus/dbus-connection.c:
11789 Implement sent_message_with_reply. (with_reply_and block is still
11791 Made dispatch_message not lose message if OOM.
11793 * dbus/dbus-errors.h:
11794 Add NoReply error (for reply timeouts).
11796 2003-02-16 Alexander Larsson <alexl@redhat.com>
11798 * dbus/dbus-hash.c (_dbus_hash_table_unref):
11799 Actually free keys and values when destroying hashtable.
11801 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11803 * dbus/dbus-auth.c: (client_try_next_mechanism):
11806 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11807 Return TRUE if there's no thread implementation around.
11809 * glib/dbus-gmain.c: (free_source),
11810 (dbus_connection_hookup_with_g_main):
11811 Make sure to remove the GSource when the connection is finalized.
11813 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11815 * bus/dispatch.c: (bus_dispatch_message_handler):
11816 * dbus/dbus-errors.h:
11817 Return an error if someone tries to send a message to a service
11818 that doesn't exist.
11820 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11822 * bus/activation.c: (load_directory), (bus_activation_init),
11823 (bus_activation_activate_service):
11824 * bus/activation.h:
11826 (bus_driver_handle_activate_service), (bus_driver_handle_message):
11827 More work on the activation handling.
11829 * dbus/dbus-errors.h:
11830 Add some error messages
11832 * dbus/dbus-message.c: (dbus_message_new_error_reply):
11833 * dbus/dbus-message.h:
11834 New function that creates an error message.
11836 * dbus/dbus-protocol.h:
11837 Add ACTIVATE_SERVER message.
11839 * dbus/dbus-server-unix.c: (unix_handle_watch),
11840 (_dbus_server_new_for_domain_socket):
11841 Call _dbus_fd_set_close_on_exec.
11843 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11844 (_dbus_spawn_async), (_dbus_disable_sigpipe),
11845 (_dbus_fd_set_close_on_exec):
11846 * dbus/dbus-sysdeps.h:
11847 Add _dbus_fd_set_close_on exec function. Also add function that checks
11848 that all open fds are set to close-on-exec and warns otherwise.
11850 * dbus/dbus-transport-unix.c:
11851 (_dbus_transport_new_for_domain_socket):
11852 Call _dbus_fd_set_close_on_exec.
11854 2003-02-16 Havoc Pennington <hp@pobox.com>
11856 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11857 allow people to avoid setting SIGPIPE to SIG_IGN
11858 (_dbus_connection_new_for_transport): disable SIGPIPE unless
11859 we've been asked not to
11861 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11863 * dbus/dbus-list.c: (_dbus_list_append_link),
11864 (_dbus_list_prepend_link):
11865 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11869 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11872 * bus/activation.c: (bus_activation_entry_free),
11873 (add_desktop_file_entry), (load_directory), (bus_activation_init):
11874 * bus/activation.h:
11875 * bus/main.c: (main):
11876 Add simple activation support, doesn't work yet though.
11878 2003-02-15 Zack Rusin <zack@kde.org>
11880 * qt/dbus-qthread.cpp: small casting fix
11882 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11884 * dbus/dbus-errors.c: (dbus_set_error):
11885 * dbus/dbus-errors.h:
11886 Add a few errors and make dbus_set_error void.
11888 * dbus/dbus-sysdeps.c:
11889 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11890 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11891 * dbus/dbus-sysdeps.h:
11892 Add _dbus_spawn_async.
11894 * test/spawn-test.c: (main):
11895 Test for _dbus_spawn_async.
11897 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11899 * dbus/dbus-internals.h:
11900 Fix build without tests.
11902 * dbus/dbus-list.c: (alloc_link):
11903 Fix a segfault when a malloc fails.
11905 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11906 (dbus_malloc0), (dbus_realloc):
11907 Add support for malloc debugging.
11909 2003-02-15 Alexander Larsson <alexl@redhat.com>
11911 * dbus/dbus-threads.c:
11912 * dbus/dbus-threads.h:
11913 Add condvars. Remove static mutext from API.
11914 Implement static mutexes by initializing them from threads_init.
11916 * glib/dbus-gthread.c:
11917 * qt/dbus-qthread.cpp:
11918 Update with the thread api changes.
11921 * dbus/dbus-list.c:
11922 * dbus/dbus-list.h:
11923 Turn StaticMutex into normal mutex + init function.
11924 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11925 _dbus_list_append_link, _dbus_list_prepend_link
11928 * dbus/dbus-sysdeps.c:
11929 * dbus/dbus-sysdeps.h:
11930 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11931 _dbus_atomic_dec. Only slow fallback implementation at the moment.
11933 * dbus/dbus-protocol.h:
11934 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11936 * dbus/dbus-message.c:
11937 Make ref/unref atomic.
11940 * dbus/dbus-connection-internal.h:
11941 * dbus/dbus-connection.c:
11942 * dbus/dbus-connection.h:
11944 Change _peek to _borrow,_return & _steal_borrowed.
11945 Change disconnect callback to event.
11946 Make dbus_connection_dispatch_messages reentrant.
11948 * dbus/dbus-transport.c:
11949 Don't ref the connection on calls to the transport
11952 * dbus/dbus-message-handler.c:
11955 * glib/dbus-gmain.c:
11956 Don't use peek_message anymore
11958 * test/Makefile.am:
11959 * test/debug-thread.c:
11960 * test/debug-thread.h:
11961 Simple thread implementation that asserts() on deadlocks in
11962 single-threaded code.
11965 (main) Call debug_threads_init.
11968 Use disconnect message instead of disconnect callback.
11970 * bus/connection.c:
11971 * bus/connection.h:
11972 Don't call dbus_connection_set_disconnect_function. Instead export
11973 bus_connection_disconnect.
11976 Call bus_connection_disconnect when we get a disconnected message.
11978 2003-02-15 Havoc Pennington <hp@pobox.com>
11980 * dbus/dbus-message.c (dbus_message_new): fool around with the
11983 2003-02-14 Havoc Pennington <hp@pobox.com>
11985 * dbus/dbus-mempool.c: fail if the debug functions so indicate
11987 * dbus/dbus-memory.c: fail if the debug functions indicate we
11990 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11991 (_dbus_decrement_fail_alloc_counter): debug functions to
11992 simulate memory allocation failures
11994 2003-02-14 Havoc Pennington <hp@pobox.com>
11996 * dbus/dbus-errors.h (struct DBusError): add a word of padding
11999 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12001 * bus/driver.c: (bus_driver_handle_hello):
12003 * bus/services.c: (bus_service_lookup):
12004 Reorder message sending so we get a more sane order.
12006 * test/bus-test.c: (message_handler):
12009 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12011 * bus/driver.c: (bus_driver_send_service_deleted),
12012 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12013 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12014 (bus_driver_send_welcome_message),
12015 (bus_driver_handle_list_services),
12016 (bus_driver_handle_acquire_service),
12017 (bus_driver_handle_service_exists):
12018 * dbus/dbus-bus.c: (dbus_bus_register_client),
12019 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12020 * dbus/dbus-errors.c: (dbus_result_to_string):
12021 * dbus/dbus-errors.h:
12022 * dbus/dbus-message.c: (dbus_message_append_args),
12023 (dbus_message_append_args_valist), (dbus_message_get_args),
12024 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12025 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12026 (dbus_message_iter_get_byte_array),
12027 (dbus_message_iter_get_string_array), (message_iter_test),
12028 (check_message_handling), (_dbus_message_test):
12029 * dbus/dbus-message.h:
12030 * test/bus-test.c: (main):
12031 Change fields to arguments in messages, so that they won't be
12032 confused with header fields.
12034 * glib/test-dbus-glib.c: (main):
12035 Remove append_fields from hello message.
12037 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12039 * dbus/dbus-errors.c:
12040 * dbus/dbus-message.c:
12041 * dbus/dbus-string.c:
12042 Documentation fixes.
12044 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12046 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12048 Implement support for timeouts in dbus-glib.
12050 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12052 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12053 * dbus/dbus-message.c: (process_test_subdir):
12054 * test/break-loader.c: (find_breaks_based_on):
12055 Plug some memory leaks.
12057 2003-02-13 Richard Hult <rhult@codefactory.se>
12059 * bus/main.c: Fix build.
12061 * dbus/dbus-errors.h:
12062 * dbus/dbus-errors.c: Fix copyright for Anders.
12064 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12069 * bus/connection.c: (bus_connection_foreach):
12072 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12073 (unescape_string), (new_section), (parse_section_start),
12074 (parse_key_value), (report_error), (bus_desktop_file_load),
12075 (bus_desktop_file_get_string):
12076 * bus/desktop-file.h:
12077 Use DBusError for error reporting.
12079 * bus/dispatch.c: (send_one_message),
12080 (bus_dispatch_message_handler):
12081 * bus/driver.c: (bus_driver_send_service_deleted),
12082 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12083 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12084 (bus_driver_send_welcome_message),
12085 (bus_driver_handle_list_services),
12086 (bus_driver_handle_acquire_service),
12087 (bus_driver_handle_service_exists):
12088 * bus/loop.c: (bus_loop_run):
12090 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12092 * bus/utils.c: (bus_wait_for_memory):
12094 New files with general utility functions.
12096 * dbus/dbus-internals.h:
12097 Remove _DBUS_HANDLE_OOM.
12099 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12101 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12102 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12103 * dbus/dbus-errors.h:
12104 Add DBusError structure.
12106 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12108 * test/data/valid-messages/standard-acquire-service.message:
12109 * test/data/valid-messages/standard-hello.message:
12110 * test/data/valid-messages/standard-list-services.message:
12111 * test/data/valid-messages/standard-service-exists.message:
12112 Add some standard messages.
12114 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12116 * bus/driver.c: (bus_driver_send_welcome_message),
12117 (bus_driver_handle_list_services),
12118 (bus_driver_handle_acquire_service),
12119 (bus_driver_handle_service_exists), (bus_driver_handle_message):
12120 Update for API changes in libdbus.
12122 * dbus/dbus-message.c: (dbus_message_new_reply):
12123 * dbus/dbus-message.h:
12124 Remove the name argument. The spec states that replies shouldn't
12127 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12129 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12130 (report_error), (bus_desktop_file_load), (lookup_section),
12131 (lookup_line), (bus_desktop_file_get_raw),
12132 (bus_desktop_file_get_string):
12133 * bus/desktop-file.h:
12134 Some fixes, and new functions for getting a key value from a section.
12136 2003-02-13 Havoc Pennington <hp@pobox.com>
12138 * test/data/auth/fail-after-n-attempts.auth-script: new test
12140 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12143 2003-02-13 Havoc Pennington <hp@pobox.com>
12145 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12146 dbus_credentials_match were backward
12148 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12149 NO_CREDENTIALS and ROOT_CREDENTIALS
12151 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12152 into here. Never process more commands after we've reached an
12153 end state; store further data as unused bytes.
12155 * test/data/auth/*: add more auth tests
12157 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12158 command to match exact string and EXPECT_UNUSED to match unused
12161 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12163 2003-02-12 Havoc Pennington <hp@pobox.com>
12165 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12166 \r off of popped lines
12168 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12171 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12174 2003-02-12 Havoc Pennington <hp@pobox.com>
12176 * dbus/Makefile.am: remove break-loader from the build, since it
12179 * configure.in: add --enable-gcov to turn on coverage profiling
12180 flags and disable optimization
12182 2003-02-10 Havoc Pennington <hp@pobox.com>
12184 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12185 initial cut at test framework for DBusAuth from laptop.
12186 Doesn't quite work yet but it compiles and I need to get
12187 it off the 266mhz laptop. ;-)
12189 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12190 fix a memleak in error case
12192 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12195 * bus/desktop-file.c:
12196 * bus/desktop-file.h:
12197 Add a desktop file parser.
12199 2003-02-11 Zack Rusin <zack@kde.org>
12201 * qt/message.[h|cpp]: sample implementation
12202 of the KDE wrapper for DBusMessage
12204 2003-02-09 Zack Rusin <zack@kde.org>
12206 * test/bus-test.c: make_it_compile
12207 * doc/dbus-specification.sgml: minimal semantic fix
12209 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12215 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12217 * dbus/Makefile.am:
12218 * dbus/dbus-break-loader.c:
12219 * test/Makefile.am:
12220 * test/break-loader.c:
12221 Move dbus-break-loader to test/ and rename it to break-loader.
12223 2003-02-02 Havoc Pennington <hp@pobox.com>
12225 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12226 for code to manage cookies in your home directory
12228 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12230 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12231 to authenticate, then disconnect the client.
12233 2003-02-03 Alexander Larsson <alexl@redhat.com>
12235 * dbus/dbus-message.c (dbus_message_append_fields):
12238 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12240 * doc/dbus-specification.sgml:
12241 Update address format section.
12243 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12245 * test/Makefile.am:
12246 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12247 (message_handler), (new_connection_callback), (loop_quit),
12248 (loop_run), (main):
12251 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12253 * bus/driver.c: (bus_driver_handle_service_exists):
12254 Simplify the code a bit.
12256 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12259 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12262 Add libdbus-daemon.la and link to it.
12264 2003-02-01 James Willcox <jwillcox@gnome.org>
12266 * bus/driver.c: (bus_driver_handle_own_service):
12267 Actually include the service reply code in the message.
12269 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12271 * bus/driver.c: (bus_driver_handle_service_exists):
12272 Don't unref the incoming message.
12274 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12276 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12278 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12280 * dbus/dbus-server.c: (dbus_server_listen):
12281 * dbus/dbus-transport.c: (_dbus_transport_open):
12282 ifdef out the calls to the debug transport and server.
12284 2003-02-02 Alexander Larsson <alexl@redhat.com>
12286 * dbus/dbus-watch.c (dbus_watch_get_flags):
12287 Add note in the docs that ERROR or HANGUP won't be returned
12288 and are assumed always on.
12290 * glib/dbus-gmain.c (add_watch):
12291 Always add IO_ERR | IO_HUP
12293 * dbus/dbus-message.h:
12294 Add semicolon after dbus_message_iter_get_string_array().
12295 Makes qt code build again
12297 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12299 * bus/driver.c: (create_unique_client_name),
12300 (bus_driver_handle_hello):
12301 Don't take a name, just use a numeric id to identify
12304 * dbus/Makefile.am:
12305 * dbus/dbus-bus.c: (dbus_bus_register_client),
12306 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12308 Add new convenience functions for communicating with the bus.
12310 * dbus/dbus-message.h:
12312 * dbus/dbus-protocol.h:
12315 2003-02-01 Alexander Larsson <alexl@redhat.com>
12317 * dbus/dbus-message.c (dbus_message_append_fields):
12318 Add some more doc comments.
12320 2003-02-01 Havoc Pennington <hp@pobox.com>
12322 * dbus/dbus-break-loader.c (randomly_modify_length): change
12323 a 4-byte value in the message as if it were a length
12325 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12326 execute bit on saved files
12328 2003-02-01 Havoc Pennington <hp@pobox.com>
12330 * dbus/dbus-break-loader.c (main): new program to find messages
12331 that break the loader.
12333 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12334 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12336 * dbus/dbus-string.c (_dbus_string_set_byte): new
12338 2003-01-31 Havoc Pennington <hp@pobox.com>
12340 * dbus/dbus-message.c: refactor the test code to be more general,
12341 in preparation for writing a "randomly permute test cases to
12342 try to break the loader" program.
12344 2003-01-31 Havoc Pennington <hp@pobox.com>
12346 * doc/dbus-specification.sgml: work on the specification
12348 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12349 the protocol version of the message.
12351 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12352 no longer specifies that.
12353 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12356 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12357 "break" for DBUS_TYPE_NIL, remove @todo
12359 2003-01-31 Havoc Pennington <hp@pobox.com>
12361 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12362 just set_is_error/get_is_error as this is a commonly-used
12363 function, and write docs.
12365 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12367 * dbus/dbus-address.c: (dbus_address_entry_free):
12368 Free key and value lists.
12370 * dbus/dbus-internals.c: (_dbus_type_to_string):
12371 Add the types we didn't have.
12373 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12374 (_dbus_marshal_validate_arg):
12377 * dbus/dbus-message.c: (dbus_message_set_sender):
12378 Remove todo about being able to set sender to NULL.
12380 (dbus_message_set_is_error_reply),
12381 (dbus_message_get_is_error_reply):
12382 * dbus/dbus-message.h:
12385 * dbus/dbus-protocol.h:
12386 Add error reply flag.
12388 * test/data/valid-messages/opposite-endian.message:
12389 Add NIL type to test.
12391 2003-01-31 Havoc Pennington <hp@pobox.com>
12393 * doc/dbus-specification.sgml: fully specify the header. Add
12394 flags and major protocol version, and change header/body len to
12397 * dbus/dbus-message-builder.c (append_saved_length): append length
12400 * dbus/dbus-message.c (dbus_message_create_header): change header
12401 length and body length to unsigned. Add the new fields from the
12403 (_dbus_message_loader_return_buffer): unsigned header/body len
12405 2003-01-30 Havoc Pennington <hp@pobox.com>
12407 * dbus/dbus-auth.c: rework to use only REJECTED, no
12410 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12411 use REJECTED, suggested by Mark McLoughlin
12413 2003-01-30 Havoc Pennington <hp@pobox.com>
12415 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12416 a better way to report errors here. e.g. "unix address lacks
12417 path" or something. also "no such file" when the path doesn't
12420 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12422 (dbus_parse_address): add @todo about documenting address format,
12423 and allowing , and ; to be escaped
12425 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12427 * dbus/Makefile.am:
12428 Add dbus-address.[ch]
12430 * dbus/dbus-address.c: (dbus_address_entry_free),
12431 (dbus_address_entries_free), (create_entry),
12432 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12433 (dbus_parse_address), (_dbus_address_test):
12434 * dbus/dbus-address.h:
12435 New files for dealing with address parsing.
12437 * dbus/dbus-connection.c:
12438 Document timeout functions.
12440 * dbus/dbus-message.c:
12441 Document dbus_message_new_from_message.
12443 * dbus/dbus-server-debug.c:
12446 * dbus/dbus-server.c: (dbus_server_listen):
12447 Parse address and use correct server implementation.
12449 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12450 * dbus/dbus-string.h:
12451 New function with test.
12453 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12454 * dbus/dbus-test.h:
12457 * dbus/dbus-transport-debug.c:
12460 * dbus/dbus-transport.c: (_dbus_transport_open):
12461 Parse address and use correct transport implementation.
12463 2003-01-30 Havoc Pennington <hp@pobox.com>
12465 * dbus/dbus-message.c: use message->byte_order instead of
12466 DBUS_COMPILER_BYTE_ORDER throughout.
12467 (dbus_message_create_header): pad header to align the
12468 start of the body of the message to 8-byte boundary
12470 * dbus/dbus-marshal.h: make all the demarshalers take const
12471 DBusString arguments.
12473 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12474 validate message args here, so we don't have to do slow validation
12475 later, and so we catch bad messages as they are incoming. Also add
12476 better checks on header_len and body_len. Also fill in
12477 message->byte_order
12479 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12480 implemented properly)
12481 (_dbus_string_validate_nul): new function to check all-nul
12483 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12484 get_arg_end_pos and remove all validation
12485 (_dbus_marshal_validate_arg): actually do validation here.
12487 2003-01-29 Havoc Pennington <hp@pobox.com>
12489 * dbus/dbus-message.c (check_message_handling): fix assertion
12490 failure on set_client_serial
12492 2003-01-28 Havoc Pennington <hp@pobox.com>
12494 * dbus/dbus-server-debug.c: Add doc section comments
12496 * dbus/dbus-transport-debug.c: add doc section comments
12498 2003-01-28 Havoc Pennington <hp@redhat.com>
12500 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12501 the reverse order from how I had it
12502 (_dbus_string_base64_encode): reverse encoding order. I was
12503 basically byteswapping everything during encoding.
12505 2003-01-28 Anders Carlsson <andersca@codefactory.se>
12507 * dbus/dbus-connection-internal.h:
12508 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12509 (_dbus_connection_remove_timeout):
12510 Add functions for adding and removing timeouts.
12512 * dbus/dbus-message.c: (dbus_message_new_from_message):
12513 Add new function that takes a message and creates an exact
12514 copy of it, but with the refcount set to 1.
12515 (check_message_handling):
12518 * dbus/dbus-server-protected.h:
12519 * dbus/dbus-server.c: (_dbus_server_init_base),
12520 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12521 (dbus_server_set_timeout_functions):
12522 (_dbus_server_remove_timeout):
12523 New functions so that a server can add and remove timeouts.
12525 (dbus_server_listen):
12526 Add commented out call to dbus_server_debug_new.
12528 * dbus/dbus-timeout.c: (_dbus_timeout_new):
12529 Actually set the handler, doh.
12531 * dbus/dbus-transport.c: (_dbus_transport_open):
12532 Add commented out call to dbus_transport_debug_client_new.
12534 * dbus/Makefile.am:
12535 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12537 2003-01-28 Havoc Pennington <hp@pobox.com>
12539 * dbus/dbus-message.c (check_message_handling): function to check
12540 on the loaded message, iterates over it etc.
12542 2003-01-28 Havoc Pennington <hp@pobox.com>
12544 * test/Makefile.am (dist-hook): fix make distdir
12546 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12548 2003-01-27 Havoc Pennington <hp@pobox.com>
12550 * dbus/dbus-mempool.c (time_for_size): replace printf with
12553 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12554 empty lines; fix the SAVE_LENGTH stuff to be
12555 START_LENGTH/END_LENGTH so it actually works; couple other
12558 * test/Makefile.am (dist-hook): add dist-hook for .message files
12560 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12561 can be constant or locked.
12562 (_dbus_string_free): allow freeing a const string as
12563 documented/intended
12565 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12567 * dbus/dbus-test-main.c (main): take an argument which is the
12568 directory containing test data
12570 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12571 argument to this and load all the messages in test/data/
12572 checking that they can be loaded or not loaded as appropriate.
12574 2003-01-27 Anders Carlsson <andersca@codefactory.se>
12576 * bus/dispatch.c: (bus_dispatch_message_handler):
12577 Dispatch messages sent to services.
12579 * bus/driver.c: (bus_driver_send_service_deleted),
12580 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12581 (bus_driver_send_service_acquired):
12582 Add helper functions for sending service related messages.
12584 (bus_driver_send_welcome_message):
12585 Send HELLO_REPLY instead of WELCOME.
12587 (bus_driver_handle_list_services):
12588 Send LIST_SERVICES_REPLY instead of SERVICES.
12590 (bus_driver_handle_own_service),
12591 (bus_driver_handle_service_exists):
12592 New message handlers.
12594 (bus_driver_handle_message):
12595 Invoke new message handlers.
12597 (bus_driver_remove_connection):
12598 Don't remove any services here since that's done automatically
12599 by bus_service_remove_owner now.
12602 New function signatures.
12604 * bus/services.c: (bus_service_add_owner):
12605 Send ServiceAcquired message if we're the only primary owner.
12607 (bus_service_remove_owner):
12608 Send ServiceAcquired/ServiceLost messages.
12610 (bus_service_set_prohibit_replacement),
12611 (bus_service_get_prohibit_replacement):
12612 Functions for setting prohibit replacement.
12614 (bus_service_has_owner):
12615 New function that checks if a connection is in the owner queue of
12619 Add new function signatures.
12621 * dbus/dbus-list.c: (_dbus_list_test):
12622 Add tests for _dbus_list_remove_last and traversing the list backwards.
12624 * dbus/dbus-list.h:
12625 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12626 go any further, so return NULL then.
12628 * dbus/dbus-protocol.h:
12629 Add new messages, service flags and service replies.
12631 2003-01-26 Havoc Pennington <hp@pobox.com>
12633 * dbus/dbus-message-builder.c: implement, completely untested.
12635 * test/data/*: add data to be used in testing.
12636 ".message" files are our simple loadable text format.
12637 ".message-raw" will be binary dumps of messages.
12639 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12641 2003-01-26 Havoc Pennington <hp@pobox.com>
12643 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12645 * dbus/dbus-errors.c (dbus_result_to_string): add
12648 * dbus/dbus-message-builder.c: new file, will contain code to load
12649 up messages from files. Not implemented yet.
12651 2003-01-26 Havoc Pennington <hp@pobox.com>
12653 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12654 the sender by setting to NULL
12656 2003-01-26 Havoc Pennington <hp@pobox.com>
12658 The unit tests pass, but otherwise untested. If it breaks, the
12659 tests should have been better. ;-)
12661 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12664 * dbus/dbus-message.c: redo everything so we maintain
12665 message->header as the only copy of the various fields.
12666 This avoids the possibility of out-of-memory in some cases,
12667 for example dbus_message_lock() can't run out of memory anymore,
12668 and avoids extra copying. Figured I may as well go ahead and do
12669 this since it was busted for dbus_message_lock to not return
12670 failure on OOM, and dbus_message_write_header was totally
12671 unchecked for OOM. Also fixed some random other bugs.
12673 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12674 that strings are nul-terminated. Also, end_pos can be equal
12675 to string length just not greater than, I think.
12676 (_dbus_marshal_set_int32): new function
12677 (_dbus_marshal_set_uint32): new function
12678 (_dbus_marshal_set_string): new function
12680 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12681 a warning, init timeout_list to NULL
12682 (dbus_connection_send_message): don't use uninitialized variable
12685 * dbus/dbus-string.c (_dbus_string_replace_len): new function
12687 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12689 * bus/driver.c: (bus_driver_handle_hello),
12690 (bus_driver_send_welcome_message):
12693 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12695 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12696 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12697 (dbus_connection_unref):
12698 * dbus/dbus-marshal.c: (_dbus_marshal_test):
12699 * dbus/dbus-message.c: (dbus_message_unref),
12702 (dbus_message_get_fields):
12703 Remove debugging printout.
12705 (_dbus_message_loader_return_buffer):
12706 Don't store the header string.
12708 (_dbus_message_test):
12711 2003-01-26 Richard Hult <rhult@codefactory.se>
12713 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12714 the file descriptor list, since it can change under us.
12716 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12718 * glib/dbus-gmain.c: (dbus_connection_prepare),
12719 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12720 (remove_watch), (dbus_connection_hookup_with_g_main):
12721 Rewrite the glib handling to use its own GSource instead of a
12722 GIOChannel so we can catch messages put in the queue while waiting
12725 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12728 * bus/connection.c: (connection_disconnect_handler),
12729 (connection_watch_callback), (bus_connection_setup):
12730 * bus/dispatch.c: (send_one_message),
12731 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12732 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12734 * bus/driver.c: (bus_driver_send_service_deleted),
12735 (bus_driver_send_service_created), (bus_driver_handle_hello),
12736 (bus_driver_send_welcome_message),
12737 (bus_driver_handle_list_services), (bus_driver_remove_connection),
12738 (bus_driver_handle_message):
12740 Refactor code, put the message dispatching in its own file. Use
12741 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12744 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12746 * dbus/dbus-internals.h:
12747 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12749 * dbus/dbus-message.c: (dbus_message_get_sender):
12750 * dbus/dbus-message.h:
12751 Implement dbus_message_get_sender.
12753 * dbus/dbus-protocol.h:
12754 Add message and service defines.
12756 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12758 * dbus/dbus-connection.c: (dbus_connection_send_message):
12759 * dbus/dbus-message-internal.h:
12760 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12761 (dbus_message_write_header):
12762 Remove _dbus_messag_unlock and don't set the client serial on a
12763 message if one already exists.
12765 2003-01-24 Havoc Pennington <hp@pobox.com>
12767 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12770 * bus/driver.c (bus_driver_handle_list_services): fix a leak
12773 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12775 * dbus/dbus-list.c: (alloc_link), (free_link):
12776 Use a memory pool for the links.
12778 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12780 * bus/connection.c: (bus_connection_foreach):
12781 * bus/connection.h:
12782 Add new bus_connection_foreach function.
12784 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12785 Add function that broadcasts a message to all clients.
12787 (bus_driver_send_service_created), (bus_driver_handle_hello),
12788 (bus_driver_send_welcome_message),
12789 (bus_driver_handle_list_services), (bus_driver_message_handler):
12790 Implement functions that take care of listing services, and notifying
12791 clients when new services are created.
12793 * bus/services.c: (bus_services_list):
12795 Add new function that returns an array of strings with the currently
12796 registered services.
12798 * glib/dbus-glib.h:
12799 * glib/dbus-gmain.c:
12800 Update copyright year.
12802 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12804 * dbus/dbus-connection.c: (dbus_connection_send_message):
12805 Unlock the message in case it was sent earlier.
12807 (dbus_connection_send_message_with_reply_and_block):
12808 Remove the reply message from the list.
12810 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12811 Set array_len and new_pos correctly.
12813 (_dbus_marshal_test):
12814 Remove debug output.
12816 * dbus/dbus-message-internal.h:
12817 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12818 New function that returns the reply serial.
12820 (_dbus_message_unlock):
12821 New function that unlocks a message and resets its header.
12823 (dbus_message_append_string_array),
12824 (dbus_message_get_fields_valist),
12825 (dbus_message_iter_get_field_type),
12826 (dbus_message_iter_get_string_array),
12827 (dbus_message_get_fields),
12828 (dbus_message_append_fields_valist):
12829 Handle string arrays.
12831 (dbus_message_set_sender):
12832 Make this function public since the bus daemon needs it.
12834 (decode_header_data):
12835 Set the reply serial to -1 initially.
12837 * dbus/dbus-message.h:
12838 Add dbus_message_set_sender.
12840 2003-01-24 Havoc Pennington <hp@pobox.com>
12842 * doc/dbus-specification.sgml: add some stuff
12844 2003-01-22 Havoc Pennington <hp@pobox.com>
12846 * doc/dbus-specification.sgml: Start to document the protocol.
12848 2003-01-22 Havoc Pennington <hp@pobox.com>
12850 * dbus/dbus-connection.c
12851 (dbus_connection_send_message_with_reply_and_block): add some @todo
12853 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12855 2003-01-21 Havoc Pennington <hp@pobox.com>
12857 (patch untested because can't compile)
12859 * bus/driver.c (create_unique_client_name): make this function
12860 never recycle client names. Also, caller should initialize
12863 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12865 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12867 * dbus/dbus-marshal.c: (_dbus_marshal_double),
12868 (_dbus_marshal_int32), (_dbus_marshal_uint32),
12869 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12870 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12871 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12872 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12873 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12874 * dbus/dbus-marshal.h:
12875 * dbus/dbus-protocol.h:
12876 Add support for marshalling and demarshalling integer, double
12879 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12884 * bus/connection.c: (connection_disconnect_handler):
12885 Remove the connection from the bus driver's list.
12887 (connection_watch_callback): Dispatch messages.
12889 (free_connection_data): Free connection name.
12891 (bus_connection_setup): Add connection to the bus driver's list.
12892 (bus_connection_remove_owned_service):
12893 (bus_connection_set_name), (bus_connection_get_name):
12894 Add functions for setting and getting the connection's name.
12896 * bus/connection.h:
12897 Add function headers.
12899 * bus/driver.c: (create_unique_client_name),
12900 (bus_driver_handle_hello_message),
12901 (bus_driver_send_welcome_message), (bus_driver_message_handler),
12902 (bus_driver_add_connection), (bus_driver_remove_connection):
12905 * bus/services.c: (bus_service_free):
12907 New file that handles communication and registreation with the bus
12910 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12912 * dbus/dbus-connection.c: (dbus_connection_send_message):
12913 Add a new client_serial parameter.
12915 (dbus_connection_send_message_with_reply):
12916 Remove a @todo since we've implemented the blocking function.
12918 (dbus_connection_send_message_with_reply_and_block):
12919 New function that sends a message and waits for a reply and
12920 then returns the reply.
12922 * dbus/dbus-connection.h:
12925 * dbus/dbus-errors.c: (dbus_result_to_string):
12926 * dbus/dbus-errors.h:
12927 Add new DBUS_RESULT.
12929 * dbus/dbus-message-internal.h:
12930 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12931 (_dbus_message_set_sender), (dbus_message_write_header),
12932 (dbus_message_new_reply), (decode_header_data),
12933 (_dbus_message_loader_return_buffer), (_dbus_message_test):
12934 * dbus/dbus-message.h:
12935 Add new functions that set the reply serial and sender.
12936 Also marshal and demarshal them correctly and add test.
12938 * dbus/dbus-protocol.h:
12939 Add new DBUS_MESSAGE_TYPE_SENDER.
12941 * glib/dbus-glib.h:
12942 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12943 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12944 (dbus_connection_hookup_with_g_main):
12945 * glib/test-dbus-glib.c: (main):
12946 Rewrite to use GIOChannel and remove the GSource crack.
12948 * test/echo-client.c: (main):
12949 * test/watch.c: (check_messages):
12950 Update for changed APIs
12952 2003-01-19 Anders Carlsson <andersca@codefactory.se>
12954 * dbus/Makefile.am: Add dbus-timeout.[cħ]
12956 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12957 Create a DBusTimeoutList.
12958 (dbus_connection_set_timeout_functions): Add new function to
12959 set timeout callbacks
12961 * dbus/dbus-connection.h: Add public DBusTimeout API.
12963 * dbus/dbus-message.c: (dbus_message_get_service):
12964 * dbus/dbus-message.h: New function.
12966 * dbus/dbus-server.c: Fix small doc typo.
12968 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12970 2003-01-19 Anders Carlsson <andersca@codefactory.se>
12972 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12973 of the string, just as long as specified.
12975 2003-01-19 Havoc Pennington <hp@pobox.com>
12977 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12980 * dbus/dbus-server.c (dbus_server_set_max_connections)
12981 (dbus_server_get_max_connections, dbus_server_get_n_connections):
12982 keep track of current number of connections, and add API for
12983 setting a max (but haven't implemented enforcing the max yet)
12985 2003-01-18 Havoc Pennington <hp@pobox.com>
12987 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12988 reading/writing if read_watch != NULL or write_watch != NULL.
12990 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12991 the message loader code to actually load message->header and
12992 message->body into the newly-created message.
12994 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12997 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12998 (dbus_connection_get_max_message_size)
12999 (dbus_connection_set_max_live_messages_size)
13000 (dbus_connection_get_max_live_messages_size): implement some
13001 resource limitation functions
13003 * dbus/dbus-resources.c: new file implementing some of the
13004 resource limits stuff
13006 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13007 missing docs, add @todo to handle OOM etc.
13009 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13012 2003-01-18 Havoc Pennington <hp@pobox.com>
13014 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13015 connection if it hasn't been already.
13017 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13018 replace with DisconnectFunction.
13020 2003-01-18 Havoc Pennington <hp@pobox.com>
13022 Building --disable-verbose-mode --disable-asserts --disable-tests
13023 cuts the library from 112K to 45K or so
13025 * configure.in: check for varargs macro support,
13026 add --enable-verbose-mode, --enable-asserts.
13028 * dbus/dbus-internals.h (_dbus_assert): support
13029 DBUS_DISABLE_ASSERT
13030 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13032 2003-01-18 Havoc Pennington <hp@pobox.com>
13034 * dbus/dbus-test.c: include config.h so that tests actually run
13036 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13037 so the failure mode when that assumption fails will be plenty
13040 2003-01-18 Havoc Pennington <hp@pobox.com>
13042 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13044 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13047 * test/Makefile.am: don't use special variable "TESTS" for echo-*
13048 since we don't want to use those in make check
13050 2003-01-15 Havoc Pennington <hp@redhat.com>
13056 2003-01-15 Havoc Pennington <hp@redhat.com>
13058 * test/Makefile.am: fix so that test source code ends up in the
13059 distribution on make distcheck
13061 2003-01-15 Havoc Pennington <hp@redhat.com>
13067 2003-01-15 Havoc Pennington <hp@redhat.com>
13069 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13070 fix build when --disable-tests
13072 * Makefile.am (EXTRA_DIST): put HACKING in here
13074 * HACKING: document procedure for making a tarball release.
13076 2003-01-14 Anders Carlsson <andersca@codefactory.se>
13078 * bus/connection.c: (connection_error_handler),
13079 (bus_connection_setup):
13080 * bus/main.c: (main):
13081 Make sure that the DBusConnectionData struct is NULLed
13082 out to prevent a segfault.
13084 * dbus/dbus-errors.c: (dbus_result_to_string):
13085 * dbus/dbus-errors.h:
13086 * dbus/dbus-message.c: (dbus_message_get_fields),
13087 (dbus_message_get_fields_valist), (_dbus_message_test):
13088 * dbus/dbus-message.h:
13089 Make dbus_message_get_fields return a result code so we can
13090 track invalid fields as well as oom.
13092 2003-01-11 Havoc Pennington <hp@pobox.com>
13094 * configure.in: change --enable-test/--enable-ansi action-if-given
13095 to enable_foo=$enableval instead of enable_foo=yes
13097 2003-01-08 Havoc Pennington <hp@pobox.com>
13099 * dbus/dbus-string.c (_dbus_string_align_length): new function
13101 * dbus/dbus-test-main.c: move main() for test app here
13103 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13104 symbol to run tests, because dbus-test isn't in the main
13107 Code review nitpicks.
13109 * dbus/dbus-message.c (dbus_message_write_header): add newlines
13110 for people with narrow emacs ;-). Assert client_serial was filled
13111 in. Assert message->name != NULL.
13112 (dbus_message_append_fields): have "first_field_type" arg separate
13113 from va list, needed for C++ binding that also uses varargs IIRC
13114 and helps with type safety
13115 (dbus_message_new): add @todo about using DBusString to store
13116 service/name internally
13117 (dbus_message_new): don't leak ->service and ->name on OOM later
13119 (dbus_message_unref): free the service name
13120 (dbus_message_get_fields): same change to varargs
13121 i.e. first_field_type
13122 (_dbus_message_loader_return_buffer): assert that the message data
13123 is aligned (if not it's a bug in our code). Put in verbose griping
13124 about why we set corrupted = TRUE.
13125 (decode_header_data): add FIXME that char* is evil. Was going to
13126 add FIXME about evil locale-specific string.h strncmp, but just
13127 switched to wacky string-as-uint32 optimization. Move check for
13128 "no room for field name" above get_const_data_len() to avoid
13129 assertion failure in get_const_data_len if we have trailing 2
13130 bytes or the like. Check for service and name fields being
13131 provided twice. Don't leak service/name on error. Require field
13132 names to be aligned to 4 bytes.
13134 * dbus/dbus-marshal.c: move byte swap stuff to header
13135 (_dbus_pack_int32): uscore-prefix
13136 (_dbus_unpack_int32): uscore-prefix
13137 (_dbus_unpack_uint32): export
13138 (_dbus_demarshal_string): add @todo complaining about use of
13140 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13141 handling allowing corrupt data to go unchecked
13143 2003-01-08 Havoc Pennington <hp@redhat.com>
13145 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13146 to the select() as needed for authentication. (should be using
13147 _dbus_poll() not select, but for another day)
13149 * dbus/dbus.h: include dbus/dbus-protocol.h
13151 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13153 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13156 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13158 * dbus/dbus-internals.c: (_dbus_type_to_string):
13159 New function that returns a string describing a type.
13161 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13162 * dbus/dbus-marshal.h:
13163 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13164 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13165 (dbus_message_iter_get_byte_array):
13166 * dbus/dbus-message.h:
13167 Add new convenience functions for appending and getting message fields.
13168 Also add demarshalling routines for byte arrays.
13170 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13172 * dbus/dbus-connection-internal.h:
13173 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13174 (_dbus_connection_get_next_client_serial),
13175 (dbus_connection_send_message):
13176 * dbus/dbus-internals.h:
13177 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13178 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13179 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13180 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13181 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13182 (_dbus_verbose_bytes), (_dbus_marshal_test):
13183 * dbus/dbus-marshal.h:
13184 * dbus/dbus-message-internal.h:
13185 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13186 (dbus_message_write_header), (_dbus_message_lock),
13187 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13188 (dbus_message_get_name), (dbus_message_append_int32),
13189 (dbus_message_append_uint32), (dbus_message_append_double),
13190 (dbus_message_append_string), (dbus_message_append_byte_array),
13191 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13192 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13193 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13194 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13195 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13196 (decode_header_data), (_dbus_message_loader_return_buffer),
13197 (message_iter_test), (_dbus_message_test):
13198 * dbus/dbus-message.h:
13199 * dbus/dbus-protocol.h:
13200 * dbus/dbus-test.c: (main):
13201 * dbus/dbus-test.h:
13202 * glib/test-dbus-glib.c: (message_handler), (main):
13203 * test/echo-client.c: (main):
13204 * test/watch.c: (check_messages):
13205 Make messages sendable and receivable for real.
13207 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13209 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13210 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13211 * dbus/dbus-message.c: (dbus_message_append_int32),
13212 (dbus_message_append_uint32), (dbus_message_append_double),
13213 (dbus_message_append_string), (dbus_message_append_byte_array):
13214 Handle OOM restoration.
13216 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13218 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13219 (_dbus_demarshal_string), (_dbus_marshal_test):
13220 * dbus/dbus-marshal.h:
13221 * dbus/dbus-message.c: (dbus_message_get_name),
13222 Document these functions.
13224 (dbus_message_append_int32), (dbus_message_append_uint32),
13225 (dbus_message_append_double), (dbus_message_append_string),
13226 (dbus_message_append_byte_array):
13227 * dbus/dbus-message.h:
13228 Add functions for adding message fields of different types.
13230 * dbus/dbus-protocol.h:
13231 Add the different types.
13233 2003-01-05 Havoc Pennington <hp@pobox.com>
13235 * bus/connection.c: implement routines for handling connections,
13236 first thing is keeping a list of owned services on each connection
13237 and setting up watches etc.
13239 * bus/services.c: implement a mapping from service names to lists
13242 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13244 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13245 to use static mutexes for global data
13247 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13248 collection of functions to set/get application-specific data
13249 on the DBusConnection.
13251 2003-01-04 Havoc Pennington <hp@pobox.com>
13253 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13254 (_dbus_poll): new function
13256 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13259 * bus/loop.c: initial code for the daemon main loop
13261 2003-01-04 Havoc Pennington <hp@pobox.com>
13263 * test/watch.c (error_handler): make it safe if the error handler
13264 is called multiple times (if we s/error handler/disconnect
13265 handler/ we should just guarantee it's called only once)
13267 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13268 error handler on disconnect (it's quite possible we should
13269 just change the error handler to a "disconnect handler," I'm
13270 not sure we have any other meaningful errors)
13272 * configure.in: check for getpwnam_r
13274 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13275 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13276 mechanism as in SASL spec, using socket credentials
13278 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13279 (_dbus_send_credentials_unix_socket): new function
13281 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13283 (_dbus_write): only check errno if <0 returned
13284 (_dbus_write_two): ditto
13286 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13288 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13289 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13290 (_dbus_marshal_test):
13291 * dbus/dbus-marshal.h:
13292 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13293 to _dbus_marshal_utf8_string. Also fix some tests.
13295 2002-12-28 Harri Porten <porten@kde.org>
13297 * configure.in: added check for C++ compiler and a very cheesy
13298 check for the Qt integration
13300 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13302 * qt/Makefile.am: added
13304 * qt/.cvsignore: added
13306 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13307 latter, added #ifdef QT_THREAD_SUPPORT guard.
13309 * dbus/Makefile.am: added missing headers for make dist
13311 2002-12-28 Kristian Rietveld <kris@gtk.org>
13313 * dbus/Makefile.am: fixup export-symbols-regex.
13315 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13317 * acinclude.m4: Add this file and put the
13318 PKG_CHECK_MODULE macro in it.
13320 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13322 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13323 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13324 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13325 (_dbus_marshal_test):
13326 Make the demarshalling routines align the pos argument.
13327 Add string marshalling tests and fix the obvious bugs
13330 2002-12-26 Havoc Pennington <hp@pobox.com>
13332 * dbus/dbus-auth.c: fixes fixes fixes
13334 * dbus/dbus-transport-unix.c: wire up support for
13335 encoding/decoding data on the wire
13337 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13338 (_dbus_auth_decode_data): append to target string
13339 instead of nuking it.
13341 2002-12-26 Havoc Pennington <hp@pobox.com>
13343 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13344 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13347 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13348 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13349 now). Main point is because I wanted unpack_uint32 to implement
13350 _dbus_verbose_bytes
13351 (_dbus_verbose_bytes): new function
13353 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13355 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13356 mechanism to handle a corrupt message stream
13357 (_dbus_message_loader_new): fix preallocation to only prealloc,
13360 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13361 (_dbus_string_test): enhance tests for copy/move and fix the
13364 * dbus/dbus-transport-unix.c: Hold references in more places to
13365 avoid reentrancy problems
13367 * dbus/dbus-transport.c: ditto
13369 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13370 leak reference count in no-message case
13372 * test/watch.c (do_mainloop): handle adding/removing watches
13373 during iteration over the watches. Also, ref the connection/server
13374 stored on a watch, so we don't try to mangle a destroyed one.
13376 * dbus/dbus-transport-unix.c (do_authentication): perform
13379 * dbus/dbus-auth.c (get_state): add a state
13380 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13381 (_dbus_auth_get_unused_bytes): append the unused bytes
13382 to the passed in string, rather than prepend
13384 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13385 the auth conversation DBusAuth
13387 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13388 (_dbus_transport_new_for_domain_socket): when creating a
13389 transport, pass in whether it's a client-side or server-side
13390 transport so we know which DBusAuth to create
13392 2002-12-03 Havoc Pennington <hp@pobox.com>
13394 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13395 _after_ finalizing the derived members
13396 (unix_connection_set): unref watch if we fail to add it
13398 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13399 transport first, so that the connection owned by the
13400 transport will be valid as the transport finalizes.
13402 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13403 if necessary, and remove watches from the connection.
13405 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13407 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13409 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13410 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13411 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13412 (_dbus_marshal_test):
13413 * dbus/dbus-marshal.h:
13414 Add string marshal functions and have the demarshal functions
13415 return the new position.
13417 2002-12-25 Havoc Pennington <hp@pobox.com>
13419 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13420 it is a simple protocol that just maps directly to SASL.
13422 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13423 initial implementation, not actually used yet.
13425 * dbus/dbus-string.c (_dbus_string_find): new function
13426 (_dbus_string_equal): new function
13427 (_dbus_string_base64_encode): new function
13428 (_dbus_string_base64_decode): new function
13430 2002-12-25 Anders Carlsson <andersca@codefactory.se>
13432 * dbus/Makefile.am:
13433 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13434 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13435 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13436 (_dbus_demarshal_uint32), (_dbus_marshal_test):
13437 * dbus/dbus-marshal.h:
13438 * dbus/dbus-protocol.h:
13439 * dbus/dbus-test.c: (main):
13440 * dbus/dbus-test.h:
13441 Add un-optimized marshalling/demarshalling routines.
13443 2002-12-25 Harri Porten <porten@kde.org>
13445 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13447 2002-12-24 Zack Rusin <zack@kde.org>
13449 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13450 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13453 2002-12-24 Havoc Pennington <hp@pobox.com>
13455 * glib/dbus-gthread.c: fix include
13457 * glib/dbus-glib.h: rename DBusMessageHandler for now.
13458 I think glib API needs to change, though, as you don't
13459 want to use DBusMessageFunction, you want to use the
13460 DBusMessageHandler object. Probably
13461 dbus_connection_open_with_g_main_loop()
13462 and dbus_connection_setup_g_main_loop() or something like that
13463 (but think of better names...) that just create a connection
13464 that has watch/timeout functions etc. already set up.
13466 * dbus/dbus-connection.c
13467 (dbus_connection_send_message_with_reply): new function just to
13468 show how the message handler helps us deal with replies.
13470 * dbus/dbus-list.c (_dbus_list_remove_last): new function
13472 * dbus/dbus-string.c (_dbus_string_test): free a string that
13475 * dbus/dbus-hash.c: use memory pools for the hash entries
13476 (rebuild_table): be more paranoid about overflow, and
13477 shrink table when we can
13478 (_dbus_hash_test): reduce number of sprintfs and write
13479 valid C89. Add tests for case where we grow and then
13480 shrink the hash table.
13482 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13484 * dbus/dbus-connection.c (dbus_connection_register_handler)
13485 (dbus_connection_unregister_handler): new functions
13487 * dbus/dbus-message.c (dbus_message_get_name): new
13489 * dbus/dbus-list.c: fix docs typo
13491 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13492 an object representing a handler for messages.
13494 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13496 * glib/dbus-glib.h:
13497 * glib/dbus-gthread.c: (dbus_gthread_init):
13498 Don't use the gdbus prefix for public functions.
13500 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13504 Add GLib checks and fixup .pc files
13506 * glib/Makefile.am:
13507 * glib/dbus-glib.h:
13508 * glib/dbus-gmain.c: (gdbus_connection_prepare),
13509 (gdbus_connection_check), (gdbus_connection_dispatch),
13510 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13511 (dbus_connection_gsource_new):
13512 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13513 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13514 * glib/test-dbus-glib.c: (message_handler), (main):
13517 2002-12-15 Harri Porten <porten@kde.org>
13519 * autogen.sh: check for libtoolize before attempting to use it
13521 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13524 * .cvsignore: ignore more stamp files
13526 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13528 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13529 without make install.
13531 2002-12-15 Havoc Pennington <hp@pobox.com>
13533 * dbus/dbus-threads.c: add thread stubs that a higher library
13534 layer can fill in. e.g. the GLib wrapper might fill them in with
13535 GThread stuff. We still need to use this thread API to
13536 thread-safe-ize the library.
13538 2002-12-12 Havoc Pennington <hp@pobox.com>
13540 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13541 below new interfaces and include fewer system headers.
13543 * dbus/dbus-sysdeps.c (_dbus_read): new function
13544 (_dbus_write): new function
13545 (_dbus_write_two): new function
13546 (_dbus_connect_unix_socket): new function
13547 (_dbus_listen_unix_socket): new function
13549 * dbus/dbus-message-internal.h: change interfaces to use
13552 2002-12-11 Havoc Pennington <hp@pobox.com>
13554 * dbus/dbus-types.h: add dbus_unichar
13556 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13558 * dbus/dbus-connection.c (dbus_connection_send_message): return
13561 * dbus/dbus-transport.c: include dbus-watch.h
13563 * dbus/dbus-connection.c: include dbus-message-internal.h
13565 * HACKING: add file with coding guidelines stuff.
13567 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13568 handling here, for security purposes (as in vsftpd). Not actually
13569 using this class yet.
13571 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13572 system/libc usage here, as in vsftpd, for ease of auditing (and
13573 should also simplify portability). Haven't actually moved all the
13574 system/libc usage into here yet.
13576 2002-11-25 Havoc Pennington <hp@pobox.com>
13578 * dbus/dbus-internals.c (_dbus_verbose): fix to not
13579 always print the first verbose message.
13581 2002-11-24 Havoc Pennington <hp@pobox.com>
13583 * test/echo-client.c, test/echo-server.c: cheesy test
13586 * configure.in (AC_CHECK_FUNCS): check for writev
13588 * dbus/dbus-message.c (_dbus_message_get_network_data): new
13591 * dbus/dbus-list.c (_dbus_list_foreach): new function
13593 * dbus/dbus-internals.c (_dbus_verbose): new function
13595 * dbus/dbus-server.c, dbus/dbus-server.h: public object
13596 representing a server that listens for connections.
13598 * dbus/.cvsignore: create
13600 * dbus/dbus-errors.h, dbus/dbus-errors.c:
13601 public API for reporting errors
13603 * dbus/dbus-connection.h, dbus/dbus-connection.c:
13604 public object representing a connection that
13605 sends/receives messages. (Same object used for
13606 both client and server.)
13608 * dbus/dbus-transport.h, dbus/dbus-transport.c:
13609 Basic abstraction for different kinds of stream
13610 that we might read/write messages from.
13612 2002-11-23 Havoc Pennington <hp@pobox.com>
13614 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13617 * dbus/dbus-test.c (main): add list test, and include
13618 dbus-test.h as intended
13620 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13621 (_dbus_hash_table_remove_int): return value indicates
13622 whether the entry existed to remove
13624 * dbus/dbus-list.c: add linked list utility class,
13625 with docs and tests
13627 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13630 2002-11-23 Havoc Pennington <hp@pobox.com>
13632 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13633 DBUS_END_DECLS to nothing, that should fix this once and for all
13635 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13637 * dbus/dbus-message.c, dbus/dbus-hash.c:
13638 add some missing @brief
13640 2002-11-23 Havoc Pennington <hp@pobox.com>
13642 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13643 to avoid confusing Doxygen
13645 * dbus/dbus-hash.c: @} not }@
13647 * dbus/dbus-message.c (struct DBusMessage): split out
13650 2002-11-23 Havoc Pennington <hp@pobox.com>
13652 * configure.in: pile on more warning flags if using gcc
13654 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13655 to document static functions
13657 * configure.in: add summary to end of configure so it
13658 looks nice and attractive
13660 * dbus/dbus-hash.c: finish implementation and write unit
13663 * configure.in: add --enable-tests to enable unit tests
13665 * dbus/dbus-test.c: test program to run unit tests
13666 for all files in dbus/*, initially runs a test for
13669 * dbus/dbus-internals.h: file to hold some internal utility stuff
13671 2002-11-22 Havoc Pennington <hp@redhat.com>
13673 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13674 "ported" away from Tcl
13676 * dbus/dbus-types.h: header for types such as dbus_bool_t
13678 2002-11-22 Havoc Pennington <hp@redhat.com>
13680 * dbus/dbus.h: fixups for doc warnings
13682 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13684 (QUIET): make it quiet so we can see warnings
13686 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13688 2002-11-22 Havoc Pennington <hp@redhat.com>
13690 * Makefile.am: include "Doxyfile" target in all-local
13692 * configure.in: generate the Doxyfile
13694 * Doxyfile.in: move Doxyfile here, so we can use
13695 configure to generate a Doxyfile with the right
13696 version number etc.
13698 2002-11-22 Havoc Pennington <hp@redhat.com>
13700 * dbus/dbus-message.c: move inline docs into .c file
13702 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13703 so all docs are under doc/
13704 (MAN_EXTENSION): generate man pages. Use extension
13705 ".3dbus" which matches ".3qt" on my system,
13706 I guess this is OK, I don't know really.
13707 (FILE_PATTERNS): look for .c files not .h, makes sense
13708 for plain C I think
13710 2002-11-22 Havoc Pennington <hp@pobox.com>
13712 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13713 because any app can be a server, and any app can be a client,
13714 the bus is a special kind of server.
13716 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
13718 * Doxyfile : adding. Still needs Makefile rules to be generated
13719 automatically (just run "doxygen" in the toplevel dir for now to
13722 * dbus/dbus-message.h : Adding sample docs (javadoc since
13723 resembles gtk-doc a little more)
13725 * dbus/dbus.h : Adding sample docs
13727 2002-11-21 Havoc Pennington <hp@redhat.com>
13729 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13730 so we can allow ourselves to include files directly,
13731 instead of having to use dbus.h
13733 * dbus/dbus.h: fill in
13735 * dbus/dbus-message.h: sketch out a sample header file.
13736 Include griping if you include it directly instead of
13739 * dbus/dbus-macros.h: new file with macros for extern "C",
13740 TRUE/FALSE, NULL, etc.
13742 * doc/file-boilerplate.c: put include guards in here
13744 2002-11-21 Havoc Pennington <hp@redhat.com>
13746 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13748 * COPYING: include the GPL as well, and license code
13749 under both AFL and GPL.
13751 2002-11-21 Havoc Pennington <hp@redhat.com>
13753 * acconfig.h: get rid of this
13755 * autogen.sh (run_configure): add --no-configure option
13757 * configure.in: remove AC_ARG_PROGRAM to make
13758 autoconf complain less. add AC_PREREQ.
13759 add AC_DEFINE third arg.
13761 2002-11-21 Anders Carlsson <andersca@codefactory.se>
13764 Fix references so we can distcheck.
13766 2002-11-21 Havoc Pennington <hp@redhat.com>
13768 * Initial module creation