1 2006-07-16 Havoc Pennington <hp@redhat.com>
3 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
4 Improve the error message on reply timeout
6 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
10 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
12 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
13 and set pending_reply out arg to NULL is connection is disconnected
14 (connection_timeout_and_complete_all_pending_calls_unlocked): New
15 static method for cleaning up pending calls on disconnect
16 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
17 calls queued timeouts on disconnect
19 * dbus/dbus-pending-call.ci (_dbus_pending_call_set_connection):
22 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
24 * bus/activation.[ch] (bus_activation_list_services): new function to
25 get the list of services that can be activated
27 * bus/dispatch.c: test coverage for the new bus method
30 * bus/driver.c: new bus method ListActivatableNames to get the list of
31 services that can be activated
33 * doc/dbus-specification.xml: ListActivatableNames method documentation
35 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
36 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
39 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
40 * dbus/dbus-message-factory.c:
41 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
43 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
44 * dbus/dbus-connection-internal.h:
45 * dbus/dbus-connection.c:
46 * file dbus/dbus-pending-call.c:
47 * dbus/dbus-pending-call.h:
48 Make DBusPendingCall an opaque type even to D-Bus internals
50 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
52 * dbus/dbus-connection.h: remove connection_disconnect and replace with
55 * dbus/dbus-connection.c: include dbus-bus.h
56 (_dbus_connection_read_write_dispatch): make static
58 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
60 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
62 (dbus_connection_dispatch): On disconnect unref any shared connections
64 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
65 for cleaning up shared connections on disconnect
66 (internal_bus_get): get a hard refrence to shared connections when
69 * doc/TODO: Remove items which are no longer relevent or have been fixed
70 Split 1.0 todo items with a 0.90 freeze todo list
72 2006-06-14 Ross Burton <ross@openedhand.com>
74 * glib/dbus-gobject.c:
75 Free a leaking GArray (surely not!) in dbus_g_method_return.
77 2006-06-14 Ross Burton <ross@openedhand.com>
80 * tools/dbus-monitor.c:
81 Don't use the GLib bindings in dbus-monitor (patch from Ralf
84 2006-06-14 Ross Burton <ross@openedhand.com>
86 * tools/dbus-print-message.c:
87 Also print the object path when outputting signals or method calls.
89 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
91 * qt/src/Makefile.am: install the qdbus.h header.
92 This allows people to actually use the installed code.
94 2006-06-12 Ross Burton <ross@openedhand.com>
97 Don't leak a GArray when firing signals (thank Rob Taylor for review).
99 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
103 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
105 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
106 break pedantic builds. Closes bug 6043 (patch approved by
107 Havoc back in February).
109 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
111 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
112 that took a QDBusMessage parameter.
113 * qt/src/qdbusbus.h: Add a default flag for RequestName.
114 * qt/tools/dbus.cpp: Don't use automatic call because we might
115 be calling an async method: request a reply.
117 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
119 * test/qt/*: Update the testcases, including testing the new
120 functionality of sending null QByteArray and QString over the
121 bus. Add new headertest test and restore the old
124 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
126 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
127 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
129 * qt/examples/Makefile.am:
130 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
133 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
134 QByteArray() (nulls) over the bus.
135 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
136 the one that has the signature suffix stripped.
137 * qt/src/qdbusreply.h: Make some methods const.
139 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
141 Patch from Timo Hoenig <thoenig@suse.de>.
143 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
144 required during build to EXTRA_DIST.
145 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
146 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
147 * configure.in: Fix "make dist", take care that the Makefile for
148 qt/dbus is being generated.
150 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
152 * bus/bus.c: Fix eavesdropping on method calls
154 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
157 * dbus/dbus-userdb-util.c:
158 Add Solaris console owner patch from Artem Kachitchkine
160 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
163 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
164 reorganisation. Thanks to Timo Hoenig for pointing this out.
166 2006-06-06 Robert McQueen <robot101@debian.org>
168 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
169 call to dbus_g_type_get_struct.
171 2006-06-06 Robert McQueen <robot101@debian.org>
173 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
174 pointers were put into a GPtrArray-based specialised collection, and
175 then freed along with the array. GValues which you add into
176 collections or maps which have the NOCOPY flag set are assumed to not
177 belong to the caller, so rather than the existing pointer-stealing
178 semantics, they are copied instead. Given that the main consumers of
179 this abstraction are the bindings themselves, I don't think this is
180 too bad, but others should watch their choice of take vs set_static.
182 2006-06-06 Robert McQueen <robot101@debian.org>
184 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
185 of g_slist_prepend not being used. Fixed copying of slist-based
186 specialised collections, then wrote a test case and found that it was
187 all broken. Went on to fix iterating and appending too. Good thing
188 nobody uses this code yet.
190 2006-06-06 Robert McQueen <robot101@debian.org>
192 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
193 the iterators use gvalue_take_ptrarray_value (the GValues themselves
194 are discarded without unsetting, so it makes no difference whether
195 we take or set_static). Remove cases for G_TYPE_POINTER because
196 there really is nothing useful we can do with them in our
197 specialised types - we *need* boxed copy/free functions at the very
200 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
202 * qt/dbus: Add directory. I had forgotten to add this
203 yesterday after the move...
205 * qt/examples/Makefile.am:
206 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
208 * qt/tools/Makefile.am:
209 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
210 Added feature to get and set properties.
211 Added validation of service, object path and interface names.
213 * qt/tools/dbusidl2cpp.cpp: Two new features:
214 1) Allow specifying both the header and the source file names,
215 by separating them with a colon.
216 2) Don't write an interface output if the -p switch wasn't
217 given, but the -a was.
219 * qt/src/*: Fix usage of Iterators and ConstIterators.
220 Fix shadowing of variables by other variables (-Wshadow).
221 Fix keyword-cleanliness in headers.
222 Fix ASCII-cast (QLatin1String, QLatin1Char).
223 Fix validation of member names.
224 Add extra checking of introspection data during XML parsing.
227 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
230 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
233 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
235 * configure.in: Make --disable-qt actually do
236 something. Patch inspired by Zack Rusin.
238 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
240 * qt/: Update to Subversion r548032.
241 This includes a big reorganisation of the files inside the
244 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
246 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
248 "Failed to connect to socket <host>:<port> <error>" instead of
249 "Failed to connect to socket <host>: <error>:<port>"
251 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
254 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
256 * qt/*: Update the QtDBus bindings up to revision 546310 in
258 This adds the dbuscpp2xml tool, that parses a C++ header and
259 outputs a D-BUS Introspection XML.
261 2006-05-21 Havoc Pennington <hp@redhat.com>
263 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
264 is not NULL when it shouldn't be. Also a couple of possible fixes
265 for #4637 though I don't understand why the bug happens, to be
266 honest... also the object constructor has an assert name != NULL
267 and the name is only currently NULL for peer-to-peer proxies that
268 I don't think anyone uses? So it should be asserting.
269 Anyway, for now at least see if we get an earlier assertion failure.
271 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
272 apparently broken code to be sure the tests fail and someone
275 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
277 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
278 and arrays when they had a single element: has_next returns
279 false, even before you read the element. So, instead, check
282 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
284 * qt/qdbusmessage.cpp:
285 * qt/qdbustypehelper_p.h:
286 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
287 the list is a const-reference
289 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
291 * Adding old doc patch that never got applied
293 * dbus/bus.c (dbus_bus_add_match): Add documentation
295 * doc/dbus-specification.xml: Add documentation for the match rules
296 and the AddMatch and RemoveMatch methods
298 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
300 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
303 * qt/dbusidl2cpp.cpp:
304 * qt/qdbusabstractadaptor.cpp:
305 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
306 sibling of the QDBusAbstractAdaptor objects instead of the
309 * qt/dbusidl2cpp.cpp:
310 * qt/qdbusabstractinterface.cpp:
311 * qt/qdbusabstractinterface.h:
312 * qt/qdbusabstractinterface_p.h:
313 * qt/qdbusinterface.cpp: Make properties in interfaces
314 actually work. The code that was generated would not compile,
315 due to moc calls to functions that did not exist. They now
318 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
322 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
323 Thanks to Brad Hards for providing the patch
325 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
327 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
330 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
332 * qt/examples/dbus.cpp: Enhance error messages and use
335 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
337 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
338 and disable the copy operators. (r533772, r534746)
340 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
342 * qt/qdbusabstractinterface.cpp:
343 * qt/qdbusabstractinterface.h: Change the default call mode to
344 not use the event loop. Add convenience call() methods that
345 take a CallMode parameter. (r534042)
347 * qt/qdbusconnection.h: Change the default call mode to not
348 use the event loop. (r534042)
350 * qt/qdbusinterface.cpp:
351 * qt/qdbusinterface.h: Add a method to tell us if the
352 interface is valid (since we don't return a null pointer
355 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
358 * qt/qdbusinternalfilters.cpp: Decouple the introspection
359 function in two so taht we get the chance to introspect
360 without having a QDBusMessage (r534102)
363 * qt/qdbusconnection.cpp:
364 * qt/qdbusconnection_p.h:
365 * qt/qdbusintegrator.cpp: Keep a list of our own names to
366 avoid a round-trip to the server when attempting to introspect
367 one of our own objects. Also make sure the filter functions
368 match the empty interface as well. (r534108)
369 Don't keep the connection names. Instead, trust the unique
370 connection name (r534111)
371 Remove event loop usage (r534112)
373 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
375 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
378 2006-04-28 Robert McQueen <robot101@debian.org>
380 * glib/dbus-gproxy.c: Fix properties so that they can be given in
381 any order, making it easier for people who inherit from this
384 2006-04-28 Robert McQueen <robot101@debian.org>
386 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
387 of memory from within pointer arrays and lists. Fixes bug #6300.
389 2006-04-28 Robert McQueen <robot101@debian.org>
391 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
392 generating struct signatures. Fixes bug #6083.
394 2006-04-28 Robert McQueen <robot101@debian.org>
396 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
397 to qdbusconnection_p.moc.
399 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
401 * README, INSTALL: Doc fixes
402 Patch from Brad Hards <bradh at frogmouth.net>
404 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
406 * qt/examples/dbus.cpp: Use the new merged-interface mode for
407 the dynamic meta object. No need to guess which interface to
410 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
412 * qt/qdbusconnection_p.h:
413 * qt/qdbusmetaobject.cpp:
414 * qt/qdbusmetaobject_p.h:
415 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
416 for the dynamic meta object. No need to guess which
418 * qt/qdbusabstractinterface_p.h:
419 * qt/qdbusconnection.cpp:
420 * qt/qdbusintegrator.cpp:
421 * qt/qdbusinterface.cpp:
422 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
423 Add a QDBusRef that looks and behaves like DCOPRef.
425 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
427 * dbus/dbus-connection.c: Interfaces are optional in method
428 calls, so don't give up if the interface parameter is NULL.
429 Patch reviewed by Havoc Pennington.
431 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
433 * qt/qdbusreply.h: Add default constructor and operator=
435 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
436 in public headers (r532952)
437 * qt/qdbusabstractinterface.cpp:
438 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
439 make it the default (r532951)
441 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
443 * dbus/dbus-connection.c: Fix asserts
444 Patch from Tim Moloney <t.moloney at verizon.net>
446 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
448 * mono/Connection.cs, mono/Message.cs: Check Target type
449 Patch from Aaron Bockover (abockover at novell.com)
451 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
453 * INSTALL: fine-tune the requirements for the Qt4 binding.
455 2006-04-16 Daniel P. Berrange <dan@berrange.com>
457 * tools/dbus-print-message.c: Added support for printing of all
458 remaining data types. Fixed logic for indentation of compound
461 2006-04-15 Daniel P. Berrange <dan@berrange.com>
463 * INSTALL: fill out content of file providing DBus specific
464 build installations, followed by generic Auto* INSTALL file
467 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
469 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
470 Patch by Stefan Eilers. (r529537)
472 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
474 * qt/qdbusinternalfilters.cpp: Don't show the parent's
477 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
479 * qt/Makefile.am: fix the dependency for
480 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
481 not in qdbusconnection.cpp.
482 Thanks to Jakub Stachowski <stachowski@hypair.net> for
485 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
487 * qt/examples/listnames.cpp:
488 * qt/examples/Makefile.am: Three ways to list the names on the
491 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
493 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
494 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
496 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
498 Merge from Subversion:
499 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
500 something that exists (r526315)
501 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
502 slots/signals (r526316)
503 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
504 also return an unknown-method error if the parameters don't
505 match for org.freedesktop.DBus.Properties. (r526842)
506 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
507 * qt/qdbusintegrator.cpp: Restore the proper order of
508 delivery: don't make method returns be delivered on priority
511 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
513 * configure.in qt/Makefile.am: add qt/examples
514 * qt/examples: Add QtDBus example programs:
515 - hello: Hello, World
516 - ping: Simple method-calling program
517 - pong: Simple object-exporting program (not using adaptors)
518 - complexping: Interactive method-calling program
519 (also gets and sets properties).
520 - complexpong: Sample program exporting methods, signals and
521 properties, using adaptors.
522 - dbus: Simple implementation of a generic method-calling
523 program, similar to 'dbus-send', but with semantics
525 - chat: Simplistic chat program, implemented using signals
526 and the system bus. Looks like IRC.
528 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
530 * configure.in: Detect QtGui (necessary for one of the
531 example programs). Note: this increases the minimum required
532 version of Qt to 4.1.3.
534 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
536 * test/qt/*: Sync with KDE Subversion revision 523647.
537 Update the testcases to the new API. Remove testcases for
538 classes that are no longer public or have been removed.
540 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
543 * dbus/qdbus.h: Sync with KDE Subversion revision
544 523647. Hopefully, this will be the last of the
545 source-incompatible changes. Documentation has been improved;
546 support for QList<basic-types> has been added; QDBusObject is
547 gone; QDBus(Abstract)Interface is now a QObject with
548 auto-generated meta-object; QDBusIntrospection is marked
549 private, since QMetaObject can be used now; lots of bugfixes.
551 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
553 Patch from Milosz Derezynski <internalerror at gmail.com>
556 Output the service directory in the configure summary
559 Add session_bus_services_dir
561 2006-03-10 Ross Burton <ross@openedhand.com>
563 * tools/dbus-print-message.c:
564 Add support for object paths and signatures.
566 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
568 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
570 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
572 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
573 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
574 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
575 * dbus/dbus-userdb.h: Add function to flush all user/group information
578 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
580 * qt/dbusidl2cpp.cpp:
581 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
582 for dcopidl2cpp, found in the KDE installations (or the more
583 modern kalyptus): generate Qt4 C++ code for the input XML
584 introspection. Currently no IDL parsing.
586 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
588 * test/qt/*: Update the self-tests.
590 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
593 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
594 represents the first feature-complete version of the Qt4
595 bindings since I took ove maintainership.
597 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
599 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
600 dir. This is C++, so we can't use the DBus ones.
602 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
604 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
605 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
607 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
609 * dbus/dbus-connection.c:
610 (_dbus_connection_block_pending_call):
611 Check to see if our data has already been read off the connection
612 by another blocking pending call before we block in poll.
613 (check_for_reply_and_update_dispatch_unlocked):
614 Code taken from _dbus_connection_block_pending_call - checks for
615 an already read reply and updates the dispatch if there is one.
617 * test/name-test/test-pending-call-dispatch.c:
618 New test for making sure we don't get stuck polling a
619 dbus connection which has no data on the socket when
620 blocking out of order on two or more pending calls.
622 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
624 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
625 make/automake don't detect that we're talking about the same
626 .lo file if I specify the full path to the source files.
628 2006-02-26 Havoc Pennington <hp@redhat.com>
630 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
632 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
633 session bus variable is unset, suggest "man dbus-launch" and "man
634 dbus-daemon" to figure out how to fix the problem
636 2006-02-25 Havoc Pennington <hp@redhat.com>
638 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
639 should make this thing use the new glib options parser
641 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
643 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
644 .lo files taking moc sources.
646 2006-02-25 Havoc Pennington <hp@redhat.com>
648 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
649 and install it as a public header
651 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
655 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
657 * proxies.py: Fix the callchain
659 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
661 * patch from Sjoerd Simons <sjoerd at debian.org>:
663 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
666 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
667 call _dbus_group_info_free_allocated which causes infinite loop,
668 correctly call _dbus_group_info_free
670 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
672 * qt/qdbusinterface_p.h:
673 * qt/qdbusinterface.cpp: Use the standard
674 org.freedesktop.DBus.Method.NoReply annotation for the "async"
675 calls instead of creating one for us.
677 * qt/qdbusconnection_p.h:
678 * qt/qdbusintegrator.cpp: Remove debugging code.
680 * qt/qdbusintegrator.cpp:
681 * qt/qdbusmessage.cpp:
682 * qt/qdbusmessage_p.h:
683 * qt/qdbusmessage.h: Change the behaviour of automatic
684 reply-sending: now a reply is always sent, unless the caller
685 didn't request one or if the user slot has already sent one.
687 2006-02-16 Robert McQueen <robot101@debian.org>
689 * configure.in: Patch from Debian packages by Sjoerd Simons
690 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
691 arguments so it's possible to build both bindings in the
694 * qt/Makefile.am: Fix truncated value so that make dist works.
696 2006-02-16 Robert McQueen <robot101@debian.org>
698 * acinclude.m4, configure.in: Patch from Brad Hards
699 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
700 improving quoting, re-ordering a few checks, and a few other
703 2006-02-16 Robert McQueen <robot101@debian.org>
705 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
706 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
707 assertion that the next element to read from the iter is fixed in
708 size. This is not the case when you are at the end of the iter,
709 because the next element type is INVALID.
711 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
712 a bogus assert which means that you may not initialise a 0-length
713 string unless you provide a non-NULL pointer. This prevented
714 you from marshalling messages containing zero-length arrays in
717 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
718 from Rob to correct bogus asserts when trying to demarshal an
719 array and get_fixed_array got you 0 elements. Append nothing to
720 the GArray in this case.
722 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
723 an empty array via the glib bindings. Without all of the above
724 patches, this new test fails.
726 2006-02-16 Robert McQueen <robot101@debian.org>
728 * glib/dbus-gmain.c: Make the previous commit compile.
730 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
731 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
732 specify sender_keyword="foo", path_keyword="bar" when adding
733 a signal listener, so that you can bind to signals generically
734 but still do something useful in your callback.
736 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
737 chars so that they're not cast to chars and made negative. Thanks
738 to Jakub Stachowski for reporting this and testing the fix.
740 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
744 (dbus_g_connection_open): new method for openning
745 a connection to an arbitrary address in the glib bindings
747 * ChangeLog: checkin last entry which doesn't seem to be commited
749 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
751 * tools/dbus-launch.c: Fixed sh syntax output
753 2006-02-13 Robert McQueen <robot101@debian.org>
755 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
756 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
757 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
758 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
759 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
760 missing piece of the glib bindings jigsaw puzzle. This modifies
761 the existing specialised types to have N type parameters (rather
762 than the current 1 or 2 for arrays and dictionaries respectively).
763 You can then use this to get a glib type to represent any arbitrary
764 D-Bus struct type using dbus_g_type_get_struct. The only
765 implementation of these types is with GValueArrays as before,
766 but it's now possible to store these in arrays, emit them in
769 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
771 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
772 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
773 <thiago.macieira at trolltech.com>
775 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
777 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
778 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
780 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
782 * bus/connection.c (bus_connections_expect_reply): Make
783 pending reply limit not common to all connections (Bug #5416)
784 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
786 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
788 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
790 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
792 * gcj/Makefile.am: point to correct jar command (Bug #4529)
793 patch from Doug Goldstein <cardoe at gentoo.org>
795 2006-02-09 Joe Shaw <joeshaw@novell.com>
797 * mono/Arguments.cs: Fix a magic number in the mono bindings
798 that doesn't work on 64 bit arches. Patch from Peter Johanson.
800 2006-01-27 Robert McQueen <robot101@debian.org>
802 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
803 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
804 when generating the client-side methods, instead of overloading
805 CSymbol which broke everything horribly. My apologies.
807 2006-01-27 Robert McQueen <robot101@debian.org>
809 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
810 by me and Rob Taylor to add a simple_free function to D-Bus map
811 and collection types, which allows those types which can be freed
812 with a GDestroyNotify (such as GHashTables and GArrays, but not
813 GPtrArrays) to be stored as the values in hashtables.
815 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
816 Patch by Rob Taylor to add nested dicts to the glib tests to check
817 the above code works, and appears not to leak when called repeatedly.
819 2006-01-27 Robert McQueen <robot101@debian.org>
821 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
822 to free a D-Bus allocated string with dbus_free () instead of
825 2006-01-27 Iain Holmes <iain@openedhand.com>
827 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
828 method from being called multiple times.
830 2006-01-19 Robert McQueen <robot101@debian.org>
832 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
833 <rob.taylor@collabora.co.uk> to add support for generating bindings
834 to arrays that are represented as GPtrArrays rather than GArrays (ie
835 size-variable things, such as strings, objects, structs, etc).
837 2006-01-05 Robert McQueen <robot101@debian.org>
839 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
840 <ricardo.kekki@movial.fi> to make it possible to inherit from
841 DBusGProxy, by splitting the DBusGProxy struct into a public part and
842 a private part, and moving the setting of the DBusGProxyManager into a
843 connection property, allowing proper GObject construction.
845 2006-01-05 Robert McQueen <robot101@debian.org>
847 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
848 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
849 annotations when generating glib client bindings.
851 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
853 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
855 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
857 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
859 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
861 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
863 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
865 2005-12-19 Ross Burton <ross@openedhand.com>
867 * doc/dbus-tutorial.xml:
868 Document the Glib client-side bindings, and list all possible annotations.
870 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
872 * dbus/bus.c (dbus_bus_release_name): Add documentation
874 2005-12-06 Robert McQueen <robot101@debian.org>
876 * python/service.py: s/sucessful/successful/ so we're allocating to
877 and reading from the same variable. Oops.
879 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
883 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
885 * test/qt/Makefile.am: build from srcdir
887 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
888 Note - this code is wrong and needs to be fixed by the Qt binding
889 developers. The flags should be treated as bitfields and not enums.
891 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
893 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
895 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
896 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
899 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
901 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
902 method for getting messages off the bus in the absence of a
903 mainloop. This method is much like
904 dbus_connection_read_write_dispatch except it does not dispatch
905 the messages to a registered filter function. Instead it
906 allows a developer to process messages by directly popping
909 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
911 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
912 the parser to continue instead of returning error
913 (bus_desktop_file_load): Do not free parser data when
914 parse_section_start or parse_key_value fails because it was
915 already freed by parser_free (patch from Carlos Garcia Campos
916 <carlosgc at gnome.org>)
918 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
920 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
921 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
922 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
923 test/test-segfault.c, test/test-utils.c,
924 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
925 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
926 Various cleanup of dead code and compiler warnings (patch from
927 Kjartan Maraas <kmaraas at gnome.org>)
929 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
931 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
932 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
934 2005-11-27 Robert McQueen <robot101@debian.org>
936 * python/dbus_bindings.pyx: Repair my previous commit which reverted
937 part of the preceding one. Oops. Merge patch by Johan Hedberg
938 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
939 on big-endian platforms.
941 * test/python/test-client.py: Add some 16-bit integers to the test
944 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
946 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
947 method return message for property getters
949 2005-11-27 Robert McQueen <robot101@debian.org>
951 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
952 with type v of an instance of dbus.Variant(foo, type='x') caused
953 it to be boxed twice before sending over the bus.
955 * python/dbus_bindings.pyx, python/service.py,
956 test/python/test-client.py: Update the constants for the new
957 request_name flags, and update comments/test cases now that queueing
958 is the default action.
960 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
963 - Change version to 0.60 for impending release
964 - upped the sonames because of ABI and API breakage
966 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
968 * configure.in: Add test/name-test/Makefile to the generated
971 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
972 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
973 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
974 not to queue an ower if it can't be the primary owner
976 * bus/bus.h: Add new internal BusOwner struct
978 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
979 to bus_registry_ensure and don't set the prohibit_replacement flag
980 since they are now set per BusOwner and not per name.
981 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
982 that returns the list of connections in a name's connection queue
984 * bus/services.c (struct BusService): remove prohibit_replacement field
985 (struct BusOwner): new struct for keeping track of queued connections
986 and their associated flags for the queue
987 (struct BusRegistry): add a BusOwner memory pool
988 (bus_registry_new): initialize the BusOwner memory pool
989 (bus_registry_unref): free the BusOwner memory pool
990 (_bus_service_find_owner_link): new internal method for
991 searching the queue for a specific connection
992 (bus_owner_set_flags): new method for adding setting the flags on a
994 (bus_owner_new): new method that creates a BusOwner object from the
995 pool and sets its flags
996 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
997 (bus_registry_ensure): Add the flags parameter
998 (bus_registry_acquire_service): Switch from using raw connections to
999 using the BusOwner struct
1000 Add new state machine for dealing with the new set of flags
1001 (bus_registry_set_service_context_table, struct OwnershipCancelData,
1002 cancel_ownership, free_ownership_cancel_data,
1003 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
1004 restore_ownership, free_ownership_restore_data,
1005 add_restore_ownership_to_transaction): Switch to using BusOwner
1006 instead of raw connections
1007 (bus_service_add_owner): Add flags parameter
1008 Switch to using BusOwner instead of raw connections
1009 Add state machine for dealing with the new set of flags
1010 (bus_service_swap_owner): Swaps the first and second owners in the
1011 queue. Used to make sure proper signals are sent when a service looses
1012 or gains primary ownership. We never insert an owner at the top of the
1013 queue. Instead we insert it in the second position and then swap.
1014 (bus_service_remove_owner): Remove the owner from the queue sending
1015 out the NameLost and NameOwnerChanged signals if the we were the
1017 (bus_service_get_primary_owners_connection): New method that extracts
1018 the connection from the primary owner
1019 (bus_service_get_primary_owner): Returns the BusOwner instead of the
1021 (bus_service_get_allow_replacement): Changed from the old
1022 bus_service_get_prohibit_replacement method. Checks the flags of the
1023 primary owner and returns if it can be replaced or not
1024 (bus_service_set_prohibit_replacement): removed
1025 (bus_service_has_owner): returns TRUE if and owner with
1026 the specified connection exists in the queue
1028 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1029 method that only compiles if tests are enabled. Allows us to get the
1030 unique name of a connection so we can check it against the queue when
1031 doing regression tests
1033 * bus/activation.c (bus_activation_send_pending_auto_activate),
1034 bus/dispatch.c (bus_dispatch),
1035 bus/driver.c (bus_driver_handle_get_service_owner,
1036 bus_driver_handle_get_connection_unix_user,
1037 bus_driver_handle_get_connection_unix_process_id,
1038 bus_driver_handle_get_connection_selinux_security_context),
1039 bus/signals.c (connection_is_primary_owner):
1040 use bus_service_get_primary_owners_connection instead of
1041 bus_service_get_primary_owner
1043 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
1044 _dbus_listen_unix_socket): Calculate the length of the socket
1045 path and use that instead of using a fixed length which was
1046 causing socket names to contain many trailing Nul bytes.
1048 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1049 (dbus_g_method_get_sender): New method for extracting the sender
1050 from a DBusGMethodInvocation
1051 (dbus_g_method_return_get_reply): changed name to
1052 dbus_g_method_get_reply
1053 (dbus_g_method_return_send_reply): changed name to
1054 dbus_g_method_send reply
1056 * doc/dbus-specification.xml: New docs that describe how the new
1057 queueing system works and talks about the changes to the how
1058 we specify socket names
1060 * glib/examples/example-service.c,
1061 glib/examples/example-signal-emitter.c,
1062 glib/examples/statemachine/statemachine-server.c:
1063 Changed the RequestName flags to the new system
1065 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1066 regression test suite for testing various states of the new
1069 2005-11-15 Robert McQueen <robot101@debian.org>
1071 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1072 Taylor to add two methods, dbus_g_method_return_get_reply and
1073 dbus_g_method_return_send_reply, to allow you to get the reply
1074 message from a DBusGMethodInvocation, append arbitrary stuff to it,
1075 and send it. The GLib bindings can't marshal a return value of
1076 something like a(s) if the array is empty - ultimately they should be
1077 made to heed the signature of the out arguments as the Python bindings
1078 now can, but this is a workable interim solution which might have
1081 2005-11-15 Robert McQueen <robot101@debian.org>
1083 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1084 method to org.freedesktop.DBus to release a bus name or give up
1085 waiting in the queue for it.
1087 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1088 dbus_bus_release_name method to send the ReleaseName method calls.
1089 Add constants for the return values to dbus/dbus-shared.h.
1091 * doc/dbus-specification.xml: Document the new ReleaseName method
1092 in the specification.
1094 * python/dbus_bindings.pyx: Add a low-level python binding for the
1095 release name method.
1097 * python/exceptions.py, python/service.py: Make freeing BusName
1098 objects release the name. Add a NameExistsException, and fix a
1099 bug with creating UnknownMethodException.
1101 * test/python/test-client.py: Add tests for freeing BusName
1102 objects causing names to be released.
1104 2005-11-14 Robert McQueen <robot101@debian.org>
1106 * python/service.py: Include the traceback in the error reply when we
1107 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1109 2005-11-14 David Zeuthen <davidz@redhat.com>
1111 Patch from Timo Hoenig <thoenig@suse.de>.
1113 * bus/bus.c: I've recently investigated why the automatic reload
1114 of configuration files does not work as expected.
1116 Currently, reloading configuration files does only work when
1117 running dbus-daemon with --nodaemon. If we are running as daemon
1118 we're hitting a dnotify bug once we fork the process.
1120 We're initializing the dnotify fds before calling fork(). Once
1121 the child process forked it does still have the fds (and they
1122 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1123 getting SIGIO as changes are made to the configuration files.
1125 The attached patch moves the initialization of the dnotify fds to
1126 process_config_postinit(). This is safe for all current code
1127 paths and solves the dnotify disfunction. If we're running
1128 dbus-daemon as daemon the fds for dnotify are now being
1129 initialized after fork() for the child process.
1131 * configure.in: The current configure.in check for dnotify probes
1132 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1133 match for 'xlinux', too. Additionally I have adapted the configure
1134 option's style to match with the others.
1136 2005-11-14 Robert McQueen <robot101@debian.org>
1138 * python/decorators.py, python/service.py: Add a new argument to the
1139 dbus.service.method decorator called sender_keyword, which if set,
1140 specifies the name of an argument which will be provided the bus
1141 name of the method caller.
1143 * test/python/test-client.py, test/python/test-service.py: Add a
1144 method and test to check the sender_keyword functionality.
1146 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1148 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1149 empty reply so blocking calls don't block forever (Patch from Sjoerd
1150 Simons <sjoerd at luon.net>)
1152 * AUTHORS: Add Robert McQueen for his work on the Python
1153 Bindings and other parts of D-Bus
1155 2005-11-07 Robert McQueen <robot101@debian.org>
1157 * python/decorators.py: Change emit_signal function to use the
1158 signature annotation of the signal when marhsalling the arguments from
1159 the service. Fix a bug where the code checking signature length
1160 against argument length referenced the wrong variable.
1162 * python/introspect_parser.py: Avoid adding the type signature of
1163 signal arguments to any methods which occur after them in the
1164 introspection data (!) by making the parser a little more careful
1165 about its current state.
1167 * python/service.py: Remove debug prints from last commit (again :D).
1169 * test/python/test-client.py, test/python/test-service.py: Add test
1170 signals with signature decorators to test the strict marshalling code
1171 gives errors at the right time. Could do with checking the signals
1172 actually get emitted too, given that the test does nothing with
1173 signals at the moment...
1175 2005-11-07 Robert McQueen <robot101@debian.org>
1177 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1178 instances to stop madness of creating new instances representing
1179 the same bus connection all the time, rendering any tracking of
1180 match rules and bus names quite meaningless. Caught a bug where
1181 the private argument to SessionBus() and friends was being passed
1182 in as use_default_mainloop by mistake. Still some problems with
1183 multiple dbus_binding.Connection instances representing the same
1184 low-level connection (eg when you use both SessionBus() and
1185 StarterBus() in same process), but it's a lot better now than it
1188 * python/dbus_bindings.pyx: Add constants with the return values
1189 for bus_request_name().
1191 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1192 and retrieve the same instances for the same name, so deletion can be
1193 done with refcounting. Also now throws some kind of error if you
1194 don't actually get the name you requested, unlike previously...
1196 * test/python/test-client.py: Add tests for instance caching of buses
1197 and bus name objects.
1199 2005-11-04 Robert McQueen <robot101@debian.org>
1201 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1202 marshalling of boolean values. Add some booleans to the values in
1205 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1206 argument to the dbus.service.method decorator, which allows you to
1207 name arguments to take two callback functions for replying with
1208 return values or an exception.
1210 * test/python/test-client.py, test/python/test-service.py: Add test
1211 case using asynchronous method reply functions, both return values and
1212 errors, and from within both the function itself and from a mainloop
1215 * python/decorators.py, python/service.py: Perform checking that the
1216 number of method/signal arguments matches the number of types in the
1217 signature at class loading time, not when you first introspect the
1220 * python/service.py: Remove debug print left by the last commit.
1222 2005-11-03 Robert McQueen <robot101@debian.org>
1224 * python/service.py: Heavy refactoring of method invocation, with
1225 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1226 in favour of a new _message_cb that uses seperate functions for
1227 looking up the method to call, marshalling the return values, and
1228 sending exceptions as errors, and is easier to follow as a
1229 consequence. Fixes some corner cases about returning things that
1230 don't match your declared out_signature, allows exceptions to define
1231 _dbus_error_name and have it be sent over the bus as the error name,
1232 and paves the way for cool stuff like heeding the message no reply
1233 flag, asynchronous method implementations, informing the method of the
1234 sender, and including backtraces in the error messages.
1236 * test/python/test-client.py: Catch and print exceptions thrown in the
1237 async callback tests, rather than passing them to the low-level
1238 bindings to be ignored in a noisy and frustrating manner.
1240 2005-11-03 Robert McQueen <robot101@debian.org>
1242 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1243 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1244 tweak others to be consistent.
1246 * test/python/test-client.py: Tweak output of testInheritance.
1248 2005-10-29 Robert McQueen <robot101@debian.org>
1250 * python/service.py: Major changes to allow multiple inheritance
1251 from classes that define D-Bus interfaces:
1253 1. Create a new Interface class which is the parent class of
1254 Object, and make the ObjectType metaclass into InterfaceType.
1256 2. Patch written with Rob Taylor to replace use of method_vtable
1257 with code that walks the class's __MRO__ (method resolution order)
1258 to behave like Python does when invoking methods and allow
1259 overriding as you'd expect. Code is quite tricky because
1260 we have to find two methods, the one to invoke which has the
1261 right name and isn't decorated with the /wrong/ interface,
1262 and the one to pick up the signatures from which is decorated
1263 with the right interface.
1265 The same caveats apply as to normal multiple inheritance -
1266 this has undefined behaviour if you try and inherit from two
1267 classes that define a method with the same name but are
1268 decorated with different interfaces. You should decorate
1269 your overriding method with the interface you want.
1271 3. Replace grungy introspection XML generation code in the metaclass
1272 with dictionaries that cope correctly with multiple inheritance
1273 and the overriding of methods. This also uses the signature
1274 decorations to provide correct introspection data, including
1275 the debut appearance of the types of your return values. :D
1277 * test/python/test-client.py, test/python/test-service.py: Add a test
1278 case to try invoking an method that overrides one inherited from a
1279 D-Bus interface class.
1281 2005-10-29 Robert McQueen <robot101@debian.org>
1283 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1284 Add checking for the end of struct character when marshalling a
1285 struct in MessageIter.append_strict.
1287 * python/examples/example-service.py,
1288 python/examples/gconf-proxy-service.py,
1289 python/examples/gconf-proxy-service2.py: Update to use gobject
1290 mainloop directly rather than appearing to depend on gtk.
1292 * python/test/test-client.py, python/test/test-server.py: Remove
1293 obsolete and broken test scripts for old bindings. We have up to date
1294 and working tests in test/python/.
1296 2005-10-29 Robert McQueen <robot101@debian.org>
1298 * python/decorators.py: Add optional arguments to the method and
1299 signal decorators to allow you to specify the signature of arguments
1300 and return values. Preserve the doc strings of signal functions in the
1301 decorated version, for pydoc and friends.
1303 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1304 parse_signature_block function with an iterable dbus.Signature()
1305 type. Fix a bug in MessageIter.append_strict where you could append
1306 anything by claiming it was a string.
1308 * python/service.py: Use the out_signature decoration on methods to
1309 marshal return values, meaning you no longer require dbus.Array()
1310 or dbus.Dictionary() to indicate the type when returning empty
1311 arrays or dictionaries. Fix a bug where exceptions which are defined
1312 in __main__ are not turned into error replies.
1314 * test/python/test-client.py, test/python/test-service.py: Add test
1315 for correct marshalling of return values according to out_signature.
1316 Fix a bug in the async call test where the error_handler is missing a
1319 2005-10-29 Robert McQueen <robot101@debian.org>
1321 * glib/Makefile.am, glib/examples/Makefile.am,
1322 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1323 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1325 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1327 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1328 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1331 2005-10-27 Ross Burton <ross@openedhand.com>
1333 * dbus/dbus-marshal-header.c:
1336 * glib/dbus-gobject.c:
1337 Stop compiler warning.
1339 2005-10-25 Ross Burton <ross@openedhand.com>
1342 * dbus/dbus-server-unix.c:
1343 * dbus/dbus-transport-unix.c:
1344 * glib/dbus-gmain.c:
1345 * glib/dbus-gobject.c:
1346 Add some const keywords.
1348 2005-10-25 Ross Burton <ross@openedhand.com>
1350 * doc/dbus-specification.xml:
1351 Document the NoReply annotation.
1353 * glib/dbus-binding-tool-glib.h:
1354 * glib/dbus-binding-tool-glib.c:
1355 Respect the NoReply annotation.
1357 2005-10-24 Robert McQueen <robot101@debian.org>
1359 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1360 derive from unicode instead of str, and encode/decode UTF-8 when
1361 marshalling/unmarshalling bus messages
1363 * python/introspect_parser.py: encode introspection data as UTF-8
1364 before passing the buffer into libxml2
1366 * test/python/test-client.py: add unicode test strings
1368 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1369 ignore generated python test files
1371 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1373 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1374 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1375 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1377 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1378 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1379 when constructing struct signatures
1381 * python/_dbus.py (Bus): handle private connections using the
1382 private keyword in the constructor. defaults to private=False
1383 (Bus::close): new method to close a connection to the bus
1385 * python/dbus_bindings.pyx (Connection::close): renamed method
1386 was previously called disconnect
1387 (bus_get): now supports getting a private connection
1389 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1390 keyword is set to True. if it is, execute the method without waiting
1392 (ProxyObject::_introspect_execute_queue): new method for executing
1393 all the pending methods that were waiting for the introspect to
1394 finish. this is called when introspect either succeeds or fails
1395 (ProxyObject::_introspect_error_handler): call queued methods
1397 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
1399 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1400 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1402 * python/service.py (Object::_message_cb): handle exceptions correctly
1403 by sending them over the wire to the calling app. This makes sure
1404 the client returns immediately instead of waiting the 15 seconds to
1407 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
1408 Add a test to benchmark how long it takes to introspect a service and
1409 call a method which returns a large element (pretty fast)
1411 * test/python/test-service.py (TestObject::GetComplexArray): new test
1412 method which pushes a lot of data
1414 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1416 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
1417 reclaim memory outside of the loop and use del istead of just setting
1420 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1422 * python/service.py (ObjectType::_reflect_on_signal): Always close
1423 signal tag even when there are no arguments
1425 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1427 * configure.in: Set mono, mono-docs and Qt3 to default
1428 to no instead of auto when building. These bindings do not
1429 have full time maintainers and will not be supported for the
1432 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
1434 patches from Michael Krivoruchko <misha at sun.com>:
1436 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1437 _dbus_connection_message_sent,
1438 _dbus_connection_send_preallocated_unlocked_no_update,
1439 _dbus_connection_pop_message_link_unlocked): handle the case when path
1440 is NULL when calling _dbus_verbose
1442 * configure.in: check for functions getpeerucred and getpeereid
1444 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
1445 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
1446 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
1447 Patch was only tested on Solaris 10 x86 so it might be issues
1448 with other platforms (i.e. BSDs and MacOSX)
1451 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
1453 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
1454 instead of marshal basic so we can handle recursive types in a variant
1456 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1459 * test/glib/test-service-glib.c, test-service-glib.xml
1460 (my_object_echo_variant [EchoVariant],
1461 my_object_process_variant_of_array_of_ints123
1462 [ProcessVariantOfArrayOfInts123]):
1463 Add two test methods
1465 * python/introspect_parser.py: New module for parsing introspect
1468 * python/dbus_bindings.pyx:
1469 (various places): when throwing errors fix to use errormsg instead
1470 of message local variable because Pyrex can get confused with other
1471 message variables (initial patch by Robert McQueen
1472 <robert.mcqueen at collabora.co.uk>)
1473 (MessageIter::parse_signature_block): new method for getting the next
1474 block in a signiture.
1475 (MessageIter::append_strict): new method for appending values strictly
1476 using the passed in signature instead of guessing at the type
1477 (MessageItter:: append_dict, append_struct, append_array): use
1478 signatures to marshal children if the signature is available
1480 * python/exceptions.py (IntrospectionParserException): new exception
1482 * python/proxies.py (ProxyMethod::__call__): Marshal args with
1483 introspected signatures if available, else we fall back to the
1484 old way of doing things.
1485 (ProxyObject::_introspect_reply_handler ): parse introspection data
1487 * python/service.py (ObjectType::_reflect_on_method): Properly
1488 terminate <method> if there are no args in the reflection data
1490 * test/python/test-client.py: add tests for talking with the GLib
1491 test server. This gives us better coverage for introspection since
1492 python to python will always generate arguments as variants. It also
1493 allows us to test the robustness of the GLib bindings and interlanguage
1497 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
1499 * bus/driver.c (bus_driver_handle_introspect): Add signals
1500 to the introspect data. (patch from Daniel P. Berrange
1501 <dan at berrange.com>)
1503 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1505 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1506 _dbus_connection_run_builtin_filters): Changed these to
1507 be unlock_no_update functions and call
1508 _dbus_connection_send_unlocked_no_update instead of
1509 dbus_connection_send to avoid locking errors.
1511 * doc/TODO: Removed the make Ping test TODO
1513 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1515 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1516 We now copy the message from a DBusError and then free
1517 the error object befor throwing the error
1519 * glib/dbus-glib-tool.c: removed extra comma at the end of the
1520 DBusBindingOutputMode enum which was causing a warning.
1521 #include <time.h> so using time_t is explicitly defined
1523 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1525 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1527 (internal_bus_get): new method that take over the heavy lifting
1528 of dbus_bus_get and adds the ability to get a private connection
1530 (dbus_bus_get): wrapper to internal_bus_get that provides the same
1531 interface as in previous versions
1532 (dbus_bus_get_private): new method that is a wrapper to
1533 internal_bus_get to get a private connection to the bus
1536 (dbus_bus_get_private): add as a public libdbus interface
1538 - dbus-1.pc.in: output system_bus_default_address and
1539 sysconfdir variables so apps can use them when compiling
1541 2005-09-23 Harald Fernengel <harry@kdevelop.org>
1542 * dbus/qt: New Qt bindings
1544 2005-09-12 Waldo Bastian <bastian@kde.org>
1546 * dbus/dbus-marshal-validate.c,
1547 doc/dbus-specification.xml, test/Makefile.am,
1548 test/test-names.c: allow hyphens in bus names.
1550 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1552 * test/data/auth/fallback.auth-script: we don't
1553 retry the EXTERNAL method when we know its going
1556 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1558 * dbus/dbus-connection-internal.h: rename
1559 (add|remove|toggle)_(watch|timeout) to unlocked()
1561 * dbus/dbus-connection.c: ditto.
1563 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1564 Update some callers for the renaming.
1566 2005-09-10 Mark McLoughlin <mark@skynet.ie>
1568 * dbus/dbus-auth.c: (record_mechanisms): don't
1569 retry the first auth mechanism because we know
1570 we're just going to get rejected again.
1572 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1573 Fix thinko ... and what a nasty little bugger to
1574 track down you were ...
1576 * dbus/dbus-connection.c:
1577 (_dbus_connection_add_watch),
1578 (_dbus_connection_remove_watch): add note about
1579 these needing the connection to be locked.
1580 (_dbus_connection_get_dispatch_status_unlocked):
1581 set status to DATA_REMAINS when we queue the
1582 disconnected message.
1585 (bus_dispatch): fix warning.
1586 (check_existent_service_no_auto_start):
1587 Expect ChildSignaled error too.
1588 (check_existent_hello_from_self): fix another
1591 2005-09-08 Joe Shaw <joeshaw@novell.com>
1593 Patches from James Willcox <snorp@snorp.net>
1595 * mono/Makefile.am: Add Int16.cs and UInt16.cs
1597 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1598 support array "out" parameters.
1600 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1601 for 16-bit int support.
1603 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
1607 * Patch from Steve Grubb:
1608 - bus/activation.c (bus_activation_service_reload_test): clean up
1610 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
1611 - dbus/dbus-message-factory.c (generate_special): fix a couple of
1612 buffer overflows in the test suite. This is non critical because
1613 it can not be exploited and this code is only run when doing a
1616 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1617 - configure.in: Don't check and link against kdecore, only qt headers
1618 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1619 - gcj/org/freedesktop/dbus/Makefile.am:
1620 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1621 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1622 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1623 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1624 - tools/Makefile.am: Add platform extentions to binaries
1625 (i.e. .exe on windows)
1628 - Make it so if no suitable version of python is found we only
1629 disable building python instead of exiting the configure script
1630 - Require version 2.4 of glib for glib bindings
1631 - Up version to 0.50
1633 * python/__init__.py: Sync version with libdbus to (0,50,0)
1635 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1637 * dbus/dbus-object-tree.c (find_subtree_recurse):
1638 a couple of optimizations (bug #710):
1639 - do a binary search in the tree
1640 - insert a new child at the right place directly, no need for
1642 - do the "double alloc" thing when allocating children
1644 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
1646 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1648 * python/dbus_bindings.pyx: Memory management foo
1649 (global): remove hacky _user_data_references global list
1650 (GIL_safe_cunregister_function_handler): userdata now stuffed into
1651 tuples. Unref user_data
1652 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1653 (Connection::__del__): Remove and replace with __dealloc__ method
1654 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
1655 to keep tuple from being deallocated instead of the global var hack
1656 (Connection::register_object_path): Stuff user_data into a tuple.
1657 Use Py_INCREF to keep tuple from being deallocated instead of the
1659 (Connection::register_fallback): Stuff user_data into a tuple.
1660 Use Py_INCREF to keep tuple from being deallocated instead of the
1662 (GIL_safe_pending_call_notification): Don't unref the message
1663 because it gets unreffed when going out of scope. Py_XDECREF
1665 (PendingCall::__del__): Remove and replace with __dealloc__ method
1666 (PendingCall::set_notify): ref the pending call because we will
1667 need it to stick around for when the notify callback gets called
1668 (Message::__del__): Remove and replace with __dealloc__ method
1670 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
1671 gthreads_init to match up with the dbus call
1673 * python/glib.py (init_threads): Changed to threads_init to match
1674 up with gobject.threads_init(). init_threads is kept for backwards
1675 compat but will most likely be deprecated in the future
1677 * test/python/test-client.py:
1678 - revamp to use Python's unittest functionality
1679 - add async call tests
1680 - setup threads in glib and dbus so we make sure locks are working
1682 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1684 * python/dbus_bindings.pyx
1685 (_pending_call_notification, cunregister_function_handler,
1686 cmessage_function_handler): All callback functions have been rearranged
1687 to workaround a bug in Pyrex when working with the GIL which is Python's
1688 global lock when dealing with threads. They have been split into
1689 a wrapper function (which assumes the name of the old function) and
1690 a _GIL_safe_<function name> function which contains the functionality
1691 of the old function. This ensures that Pyrex does not write code
1692 the lock is released.
1695 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1697 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1698 GIL global lock when calling back into Python
1700 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
1704 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1706 * bus/policy.c (bus_policy_allow_user): change default "user is
1707 allowed" to be "user has same uid as the bus itself"; any
1708 allow/deny rules will override.
1710 * bus/session.conf.in: don't allow all users, since now by default
1711 the user that ran the bus can connect.
1713 2005-08-26 Colin Walters <walters@verbum.org>
1715 * tools/dbus-print-message.c (print_message): Flush stdout
1716 after printing a message, so that redirecting to a file, then
1717 hitting Ctrl-C works.
1719 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
1721 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1722 (EmptyMessage): new class that subclasses Message. This is a workaround
1723 to a Pyrex bug that fails to call __del__ when the Message object goes out
1724 of scope. For some reason subclassing Message fixes this bug
1725 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1726 - s/Message(_create=0)/EmptyMessage everywhere else
1728 * test/python/test-{server|client}.py: add the python/.libs directory
1729 to the lookup path so dbus_bindings and dbus_glib_bindings don't
1730 get picked up from the system
1732 2005-08-25 Colin Walters <walters@verbum.org>
1734 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1735 to Ryan Lortie for the suggestion.
1737 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1739 * test/python: Add python regression test
1741 * configure.in: Add test/python/Makefile
1743 * test/Makefile.am: Add the python directory to SUBDIRS
1745 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1750 (Interface::connect_to_signal): propigate keywords for match on args
1751 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1753 * python/proxies.py (ProxyObject::connect_to_signal):
1754 propigate keywords for match on args
1756 * Makefile.am: point everything to pyexecdir since python borks
1759 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1763 2005-08-23 Colin Walters <walters@verbum.org>
1765 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1767 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1769 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1770 to fix some wranings. We now use dbus_bindings.DBusConnection instead
1771 of defining DBusConnection ourselves.
1773 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
1775 * python/dbus.pth: New path file to fix up problems when installing
1776 c libraries to lib64 and python files to lib.
1778 * python/Makefile.am: install dbus.pth in the correct spot
1780 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
1781 * ChangeLog: clean up my last entry a bit
1783 * doc/introspect.xsl: New stylesheet for converting introspection data
1784 into browser renderable xhtml. Contributed by Lennart Poettering.
1786 * doc/introspect.dtd: Fixups in the introspect format from Lennart
1789 * doc/dbus-tutorial.xml:
1790 - Add Colin Walter to the Authors section for authoring the GLib
1792 - Add descriptions of the new signature and type functionality
1793 in the Python complex type mapping section
1794 - Add a sidenote on the new args matching functionality in
1796 - Fixed up some of the examples to use the gobject.MainLoop
1800 (Bus::_create_args_dict): New. Converts a hash of arg matches
1801 to a more useable format
1802 (Bus::add_signal_receiver): add a **keywords parameter for catching
1803 arg match parameters
1804 (Bus::remove_signal_receiver): add a **keywords parameter for catching
1805 arg match parameters
1807 * python/matchrules.py:
1808 (MatchTree::exec_matches): Check for arg matches
1809 (SignalMatchRule::add_args_match): New method
1810 (SignalMatchRule::execute): Added args_list parameter as an optimization
1811 so we don't have to marshal the args more than once
1812 (SignalMatchRule::match_args_from_list): New method that checks to see
1813 if the rule's arg matches match an argument list. Only arguments
1814 set in the rule are checked.
1815 (SignalMatchRule::match_args_from_rule): New method that checks to see
1816 if the rule's arg matches match another rule's. All args have to match
1817 in order for this method to return true. If either rule has more args
1818 then it is not a match.
1819 (SignalMatchRule::is_match): Add args match
1820 (SignalMatchRule::repr): Add args to the final output if they exist
1822 2005-08-17 Ross Burton <ross@burtonini.com>
1824 * glib/dbus-gproxy.c:
1825 (dbus_g_proxy_call_no_reply): unref the message once sent.
1826 (dbus_g_proxy_call): protect against NULL proxy.
1828 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
1830 * python/__init__.py: Version updated (0, 43, 0)
1832 * python/dbus_bindings.pyx:
1833 - Fixed type objects to have self passed into __init__
1834 - Added the Variant type
1835 - Add the ability to specify types or signatures for Array, Variant
1837 (Connection::send_with_reply_handlers): return a PendingCall object
1838 (_pending_call_notification): handle the case when an error is returned
1839 without an error message in the body
1840 (MessageIter::get_boolean): return True or False instead of an integer
1841 (MessageIter::python_value_to_dbus_sig): add direct checking of types
1842 and add checks for objects with embeded signatures or types (Array,
1843 Variant and Dictionary)
1844 (MessageIter::append_byte): handle case when the value is a dbus.Byte
1845 (MessageIter::append_dict): handle embeded types or signatures
1846 (MessageIter::append_array): handle embeded types or signatures
1847 (MessageIter::append_variant): new method
1849 * python/proxies.py:
1850 (DeferedMethod): New. Dummy executable object used when queuing calls
1851 blocking on introspection data
1852 (ProxyMethod::__call__): add the timeout keyword for specifying longer
1853 or shorter timeouts for method calls
1854 (ProxyObject): Add first pass at an introspection state machine
1855 (ProxyObject::__init__): Add introspect keyword for turing off an on
1857 (ProxyObject::_Introspect): Internal Introspect call that bypasses
1858 the usual mechanisms for sending messages. This is to avoid a deadlock
1859 where the Intospect call would be queued waiting for the Introspect
1861 (ProxyObject::_introspect_reply_handler): New. This method is called
1862 when introspection returns with no error
1863 (ProxyObject::_introspect_error_handler): New. This method is called
1864 when introspection encounters an error
1865 (ProxyObject::__getattr__): Code to handle different introspection
1866 states. Queue async calls or block blocking calls if we are
1867 introspecting. Pass through as normal if we are not or are done with
1870 * python/service.py: Import signal and method from decorators.py
1872 * python/types.py: Add Variant type
1874 2005-08-16 Colin Walters <walters@verbum.org>
1876 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1877 DBusError message is NULL.
1879 2005-08-09 Havoc Pennington <hp@redhat.com>
1881 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1882 malloc'd copy of the name parameter
1884 2005-08-09 Havoc Pennington <hp@redhat.com>
1886 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1887 warning if the reply serial is set to 0
1889 2005-08-04 Colin Walters <walters@verbum.org>
1891 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1892 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1893 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1894 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1895 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1896 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1897 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1898 * glib/dbus-gvalue.h (dbus_g_value_types_init)
1899 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1900 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1902 Prefix name with _ to ensure they're not exported. All callers
1905 * glib/dbus-gvalue.c (typecode_to_gtype)
1906 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1907 (signature_iter_to_g_type_dict)
1908 (signature_iter_to_g_type_array)
1909 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1910 (dbus_gtypes_from_arg_signature):
1911 Move to dbus-gsignature.c.
1913 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1914 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1915 (dbus_binding_tool_output_glib_client): Ditto.
1917 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1918 and dbus-gsignature.h
1920 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1923 2005-08-03 Colin Walters <walters@verbum.org>
1925 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1926 catch any incompatible changes accidentally made.
1928 2005-08-03 Havoc Pennington <hp@redhat.com>
1930 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1931 typo, from Julien Puydt
1933 * bus/connection.c (bus_connection_disconnected): we were always
1934 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1936 2005-08-01 Colin Walters <walters@verbum.org>
1938 Patch from Joe Markus Clarke:
1940 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1943 2005-08-01 Colin Walters <walters@verbum.org>
1945 Patch from Joe Markus Clarke:
1947 * tools/dbus-send.c (main):
1949 Don't use C99 style initializers (bug #3933).
1951 2005-08-01 Colin Walters <walters@verbum.org>
1953 Patch from Joe Markus Clarke:
1955 * glib/dbus-gvalue.c (dbus_g_value_types_init):
1956 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
1957 * glib/dbus-gobject.c (write_interface):
1959 Don't use C99 style initializers (bug #3933).
1961 2005-07-31 Havoc Pennington <hp@redhat.com>
1963 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1964 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1966 2005-07-30 Havoc Pennington <hp@redhat.com>
1968 * fix a bunch of Doxygen warnings and mistakes
1970 2005-07-30 Havoc Pennington <hp@redhat.com>
1972 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1973 DBUS_BUILD_TESTS since it's now used in production code
1975 2005-07-29 Havoc Pennington <hp@redhat.com>
1977 * test/glib/test-profile.c (write_junk): initialize the junk
1978 buffer so valgrind doesn't have a breakdown
1980 2005-07-29 Havoc Pennington <hp@redhat.com>
1982 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1983 (match_rule_matches): remove unused arg
1984 (test_matching): add tests for match_rule_matches()
1986 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1987 do arg0='foo' arg5='bar' in the match rules
1988 (match_rule_matches): don't match if the arg0='foo' doesn't match.
1990 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1992 2005-07-29 Ross Burton <ross@openedhand.com>
1994 * dbus/dbus-connection.c:
1995 Don't create a DBusCondVar which is never used.
1997 2005-07-27 Ross Burton <ross@openedhand.com>
1999 * dbus/dbus-message.c:
2000 Reduce the size of the maximum cached message to 10K.
2002 2005-07-25 Ross Burton <ross@openedhand.com>
2004 * glib/dbus-gproxy.c:
2005 Remove matches when all proxies are unregistered.
2007 2005-07-24 Colin Walters <walters@verbum.org>
2009 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2010 typedata; recursive arrays won't have it.
2012 * test/glib/test-dbus-glib.c:
2013 * test/glib/test-service-glib.c:
2014 * test/glib/test-service-glib.xml: Add recursive arrays tests.
2016 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
2018 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2019 proxies.py, service.py: Cleanup of code after running it through the
2020 pyflakes code checker mostly dealing with undefined names.
2021 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2023 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2025 * NEWS: Update to 0.35.2
2027 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2029 * python/_dbus.py: Remove import of the dbus.services
2030 module as it no longer exists (patch from Dimitur Kirov)
2032 * python/service.py (Object::__init__): Fixed typo
2033 s/name/bus_name (patch from Dimitur Kirov)
2035 * python/examples/example-signal-emitter.py: import dbus.glib
2036 to get the main loop and use glib mainloop instead of gtk so
2037 X doesn't have to be running.
2039 * python/examples/example-signal-recipient.py: import dbus.glib
2040 to get the main loop and use glib mainloop instead of gtk so
2041 X doesn't have to be running. Import the decorators module
2044 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
2045 didn't pick up on but are needed to build
2047 * configure.in: upped version to 0.35.2
2049 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2050 added Colin Walters' SELinux API rename patch from head
2051 s/unix sercurity context/selinux security context/
2053 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
2055 * python/Makefile.am: dbus_binding.pxd.in should be included
2056 in EXTRA_DIST not dbus_binding.pxd
2057 fix up $(srcdir) hopefully for the last time
2059 * NEWS: Update to 0.35.1
2061 2005-07-16 Colin Walters <walters@verbum.org>
2063 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2064 from bus_driver_handle_get_connection_unix_security_context. Update for
2066 (message_handlers): Update for renames.
2068 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2069 _dbus_string_init failure correctly.
2070 (bus_selinux_append_context): Convert SID to context. Append it
2072 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2075 * bus/selinux.h: Update prototype.
2077 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2078 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2080 2005-07-15 Colin Walters <walters@verbum.org>
2082 * doc/TODO: Add note about convenience wrappers.
2084 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2086 * NEWS: Update to 0.35
2088 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2090 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2091 so distcheck doesn't fail
2093 * glib/examples/Makefile.am: Add example-service.xml and
2094 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2096 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2097 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2099 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2100 compiler looks in the right places during distcheck
2102 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2104 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2107 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2109 * python/examples/example-service.py,
2110 python/examples/example-signal-emitter.py: Fixed up examples
2113 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2115 * python/__init__.py: Upped to version (0,42,0) because of
2118 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2120 * ChangeLog: fix date in last entry
2122 * configure.in, bus/system.conf.in: add the ability to configure
2123 the system bus user at compiletime with the --with-dbus-user flag
2124 (patch from Kristof Vansant)
2126 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2128 * bus/dispatch.c, test/test-service.c: Add testcase
2129 for sending messages to oneself (TODO item).
2131 * python/service.py (class Object): Swap ordering of bus_name
2132 and object_path parameters to better support inheritance.
2134 * doc/dbus-tutorial.xml: change Python docs to reflect change
2135 in parameter ordering and fix the inheritance section.
2137 * doc/TODO: remove sending message to oneself TODO item
2139 2005-07-15 Ross Burton <ross@openedhand.com>
2141 * glib/dbus-gproxy.c:
2142 Fix a leak when calling methods via the proxy.
2144 2005-07-15 Colin Walters <walters@verbum.org>
2146 * bus/selinux.c (bus_selinux_append_context): Wrap in
2149 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2151 * python/_dbus.py (Bus::remove_signal_receiver):
2152 don't add a callback to the match if none has been passed in
2154 * python/matchrules.py (SignalMatchTree::remove): if the rule
2155 being matched does not have a callback treat it as a wildcard
2158 * doc/dbus-tutorial.xml: Add Python tutorial
2160 2005-07-14 Colin Walters <walters@verbum.org>
2163 (bus_driver_handle_get_connection_unix_security_context): New function.
2164 (message_handlers): Add.
2166 * bus/selinux.c (bus_selinux_append_context): New function; appends
2167 security context to message.
2169 * bus/selinux.h: Prototype.
2171 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2173 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2175 * bus/activation.c: clean up all tabs to be 8 spaces
2176 (bus_activation_activate_service): make sure we clean up
2179 * bus/dispatch.c: clean up all tabs to be 8 spaces
2180 (check_shell_fail_service_auto_start): New function
2181 tests to make sure we get fail properly when trying to auto start a service
2182 with a faulty command line
2183 (check_shell_service_success_auto_start): New function tests to make sure
2184 auto started services get the arguments on the command line
2186 * test/test-shell-service.c: Added service for testing auto-starting with
2187 command line arguments
2189 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2190 test/data/valid-service-files/debug-shell-echo-success.service.in:
2191 Added service files for testing auto-starting with command line arguments
2193 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2195 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2197 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2199 * dbus/Makefile.am: added new files to build.
2201 * bus/activation.c (bus_activation_activate_service): support
2202 activation commands with parameters.
2204 * test/shell-test.c: added test program for the shell parsing
2207 2005-07-13 David Zeuthen <davidz@redhat.com>
2209 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2210 64 bit signed and unsigned parameters
2212 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2214 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2216 * python/service.py (class Name): renamed BusName to make it clearer
2217 what the object is for (a name on the bus)
2219 * python/examples/example-service.py,
2220 python/examples/example-signal-emitter.py: change the Name object to
2223 2005-07-12 Colin Walters <walters@verbum.org>
2225 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2227 * tools/dbus-launch.c: Include sys/select.h.
2229 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2230 * python/dbus_bindings.pyx.in: removed
2232 * python/dbus_bindings.pyx: Added.
2233 - Fixed some memleaks (patch from
2234 Sean Meiners <sean.meiners@linspireinc.com>)
2235 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2236 own pxd file (Pyrex definition)
2237 - Broke out glib dependancies into its own pyx module
2239 * python/dbus_bindings.pdx: Added.
2240 - Defines C class Connection for exporting to other modules
2242 * python/dbus_glib_bindings.pyx: Added.
2243 - New module to handle lowlevel dbus-glib mainloop integration
2245 * python/glib.py: Added.
2246 - Registers the glib mainloop when you import this module
2248 * python/services.py: Removed (renamed to service.py)
2250 * python/service.py: Added.
2251 - (class Server): renamed Name
2253 * python/__init__.py: Bump ro version (0,41,0)
2254 -don't import the decorators or service module
2255 by default. These now reside in the dbus.service namespace
2257 * python/_dbus.py (Bus::__init__): Add code run the main loop
2258 setup function on creation
2260 * python/examples/example-service.py,
2261 python/examples/example-signal-emitter.py: update examples
2263 * python/examples/gconf-proxy-service.py,
2264 python/examples/gconf-proxy-service2.py: TODO fix these up
2266 * doc/TODO: Addition
2267 - Added a Python Bindings 1.0 section
2268 - added "Add match on args or match on details to match rules"
2271 2005-07-12 Colin Walters <walters@verbum.org>
2273 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2274 (statemachine-glue.h):
2275 * glib/examples/Makefile.am (example-service-glue.h)
2276 (example-signal-emitter-glue.h):
2277 * glib/Makefile.am (dbus-glib-error-switch.h):
2278 Add libtool --mode=execute so we use the built library instead
2279 of any installed one.
2281 2005-07-11 Colin Walters <walters@verbum.org>
2283 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2284 (dbus_g_value_types_init): Remove assertion.
2285 (dbus_g_value_get_g_type, dbus_g_value_open)
2286 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2287 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2288 functions related to DBusGValue. Now we marshal/demarshal
2289 structures as GValueArray.
2290 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2292 (signature_iter_to_g_type_array): Don't call
2293 signature_iter_to_g_type_struct.
2294 (signature_iter_to_g_type_struct): Delete.
2295 (dbus_gvalue_to_signature): Delete.
2296 (dbus_gvalue_to_signature): New function with same name as other
2297 one; we can convert structures to signatures.
2298 (demarshal_valuearray): New function.
2299 (get_type_demarshaller): Use it.
2300 (demarshal_recurse): Delete.
2301 (marshal_proxy): New function.
2302 (marshal_map): Warn if we can't determine signature from type.
2303 (marshal_collection_ptrarray): Ditto.
2304 (marshal_collection_array): Ditto.
2305 (get_type_marshaller): Use marshal_valuearray.
2306 (marshal_recurse): Delete.
2307 (_dbus_gvalue_test): Add some tests.
2309 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2310 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2311 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2312 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2313 (dbus_g_value_free): Remove prototypes.
2315 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2318 * glib/examples/example-service.c:
2319 * glib/examples/example-client.c: Implement GetTuple.
2321 * test/glib/test-dbus-glib.c:
2322 * test/glib/test-service-glib.c:
2323 * test/glib/test-service-glib.xml: Add structure tests.
2325 2005-07-10 Colin Walters <walters@verbum.org>
2327 * doc/TODO: Knock off some GLib items with this patch.
2329 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2330 (_dbus_gvalue_signals_error): New functions.
2332 * glib/dbus-gvalue-utils.h: Prototype them.
2334 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2335 and change to not output const/retval flags for input args. All
2337 (invoke_object_method): Refactor to handle return values. Add
2338 some more comments in various places. Remove debug g_print.
2340 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2342 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2344 (compute_gsignature): New function; refactored from code from
2345 compute_marshaller and compute_marshaller_name. Enhance to
2346 handle return values and async ops more cleanly. Update for
2347 async ops returning NONE instead of BOOLEAN.
2348 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2349 and output appropriate string.
2350 (generate_glue): Handle return value annotation. Also don't dump
2351 constness flag for input arguments.
2353 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2354 files shared between installed library and utilities.
2355 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2356 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2357 binding tool can access gtype utility functions.
2359 * test/glib/test-service-glib.c:
2360 * test/glib/test-service-glib.xml:
2361 * test/glib/test-dbus-glib.c: Add some tests for return values.
2363 2005-07-09 Colin Walters <walters@verbum.org>
2365 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2366 argument if available, not method.
2368 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2369 (invoke_object_method): First, remove some redundant
2370 GValues (object_value, error_value) in favor of working on
2371 array directly. Second, rework constness to be less buggy.
2372 Now we iterate directly over the argument metadata instead
2373 of parallel iterating over output signature and metadata.
2375 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2377 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2378 annotation on input args.
2380 2005-07-09 Colin Walters <walters@verbum.org>
2382 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2385 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2388 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2389 (method_dir_signature_from_object_info): Handle arg_iterate change.
2390 (write_interface): Ditto.
2391 (lookup_object_info): Don't barf if format_version is > 0.
2392 (invoke_object_method): Handle arg constness.
2394 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2395 (arg_info_new): Create.
2396 (arg_info_unref): Destroy.
2397 (arg_info_get_annotations, arg_info_get_annotation)
2398 (arg_info_add_annotation): New functions.
2400 * glib/dbus-gidl.h: Prototype them.
2402 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2403 args, disallow them in properties.
2404 (parse_annotation): Handle arg annotations.
2406 * test/glib/test-service-glib.xml:
2407 * test/glib/test-service-glib.c: Update to make some methods
2410 2005-07-08 Colin Walters <walters@verbum.org>
2412 * test/glib/test-service-glib.xml:
2413 * test/glib/test-service-glib.c:
2414 * test/glib/test-dbus-glib.c: Test a{sv}.
2416 * glib/examples/statemachine/statemachine.c:
2417 * glib/examples/statemachine/statemachine-server.c:
2418 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2419 add progress bar, etc.
2421 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2422 needed anymore due to generic array/map marshalling.
2423 (dbus_g_value_types_init): Don't register basic arrays or the
2425 (dbus_gtype_from_signature_iter): Don't try to recurse into
2427 (dbus_gtype_to_signature): Check collection/map before type
2429 (demarshal_garray_basic): Renamed to demarshal_collection_array.
2430 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2431 generic map creation/append functions instead of hash table
2433 (get_type_demarshaller): Handle maps.
2434 (demarshal_collection): Dispatch on collection type to either
2435 demarshal_collection_ptrarray or demarshal_collection_array.
2436 (get_type_marshaller): Handle maps.
2437 (marshal_collection): Dispatch collection type to either
2438 marshal_collection_ptrarray or marshal_collection_array.
2439 (_dbus_gvalue_test): New test.
2441 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2442 (hash_free_from_gtype): Use it to free GValues.
2443 (hashtable_append): New function.
2444 (ptrarray_append): Fix prototype.
2445 (slist_append): Ditto.
2446 (_dbus_gvalue_utils_test): Extend tests.
2448 * glib/dbus-gtype-specialized.c
2449 (dbus_g_type_specialized_init_append): Renamed from
2450 dbus_g_type_specialized_collection_init_append. Remove const from
2451 value, since we steal it.
2452 (dbus_g_type_specialized_map_append): New function.
2454 * glib/dbus-gtype-specialized.h: Update prototypes.
2455 Add DBusGTypeSpecializedMapAppendFunc.
2457 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2460 * glib/dbus-gtest.h: Prototype it.
2462 2005-07-08 Ross Burton <ross@openedhand.com>
2465 Add DBysGAsyncData for the async bindings.
2467 * glib/dbus-binding-tool-glib.c:
2468 Re-enable the async bindings.
2470 * test/glib/test-dbus-glib.c:
2471 Add a test for the generated async bindings.
2473 2005-07-08 Colin Walters <walters@verbum.org>
2475 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2478 2005-07-08 Colin Walters <walters@verbum.org>
2480 * tools/Makefile.am: Kill of print-introspect in favor of using
2481 dbus-send --print-reply=literal.
2483 * test/glib/test-service-glib.xml:
2484 * test/glib/test-service-glib.c (my_object_get_objs): New test
2487 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2488 (main): Test GetObjs.
2490 * glib/examples/statemachine/Makefile.am:
2491 * glib/examples/statemachine/sm-marshal.list:
2492 * glib/examples/statemachine/statemachine-client.c:
2493 * glib/examples/statemachine/statemachine-server.c:
2494 * glib/examples/statemachine/statemachine-server.xml:
2495 * glib/examples/statemachine/statemachine.c:
2496 * glib/examples/statemachine/statemachine.h:
2497 * glib/examples/statemachine/statemachine.xml:
2501 * glib/examples/example-service.c (main): Move invocation
2502 of dbus_g_object_type_install_info earlier, to emphasize it
2503 should only be done once.
2505 * glib/examples/example-signal-emitter.c (main): Ditto.
2507 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2509 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2510 (dbus_gvalue_marshal): Update prototypes.
2512 * glib/dbus-gvalue.c: Update all marshalling functions to take
2513 const GValue instead of GValue.
2514 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2516 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2518 (dbus_gtype_to_signature): Handle generic collecitons and maps.
2519 Return a newly-allocated string.
2520 (demarshal_proxy, demarshal_object_path, demarshal_object)
2521 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2522 we get the wrong types from message.
2523 (get_type_demarshaller): New function, extracted from
2524 dbus_gvalue_demarshal.
2525 (demarshal_collection): New function, demarshals generic
2527 (dbus_gvalue_demarshal): Just invoke result of
2528 get_type_demarshaller. Throw error if we don't have one.
2529 (marshal_garray_basic): Abort on OOM.
2530 (get_type_marshaller): New function, extracted from
2531 dbus_gvalue_marshal.
2532 (collection_marshal_iterator, marshal_collection): New functions;
2533 implements generic marshalling for an iteratable specialized
2535 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2537 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2539 (ptrarray_value_from_gvalue): Ditto.
2540 (ptrarray_append, ptrarray_free): New functions.
2541 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
2542 (slist_append, slist_end_append, slist_free): New functions.
2543 (dbus_g_type_specialized_builtins_init): Add append fuctions
2544 for GPtrArray and GSList. Register GSList.
2545 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2547 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2549 (dbus_g_type_specialized_collection_init_append)
2550 (dbus_g_type_specialized_collection_append)
2551 (dbus_g_type_specialized_collection_end_append): Prototype.
2552 (DBusGTypeSpecializedCollectionVtable): Add append_func and
2555 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
2556 (dbus_g_type_specialized_collection_append)
2557 (dbus_g_type_specialized_collection_end_append): New functions.
2558 (dbus_g_type_map_value_iterate): Take const GValue.
2559 (dbus_g_type_collection_value_iterate): Ditto.
2561 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2562 _dbus_gvalue_utils_test.
2564 * glib/dbus-gtest.h: Prototype it.
2566 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2567 using uninitialized owner_list.
2568 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2570 (dbus_g_proxy_end_call_internal): Update to use error set
2571 from dbus_gvalue_demarshal instead of setting it here.
2572 (dbus_g_proxy_begin_call): Move return_if_fail here.
2574 * glib/dbus-gobject.c (write_interface): Update for
2575 dbus_gtype_to_signature returning new string.
2577 * configure.in: Add glib/examples/statemachine.
2579 2005-07-08 Joe Shaw <joeshaw@novell.com>
2581 * configure.in: Add a configure option, --with-console-auth-dir
2583 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2584 new setting. Patch from Kay Sievers.
2586 2005-07-06 Colin Walters <walters@verbum.org>
2588 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2589 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2590 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2591 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2592 Delete in favor of dbus_g_proxy_begin_call and
2593 dbus_g_proxy_cancel_call.
2594 (DBusGProxyCall, DBusGProxyCallNotify): New.
2595 (dbus_g_proxy_begin_call): Change prototype to take callback, user
2596 data, and destroy function. This replaces
2597 dbus_g_pending_call_set_notify.
2598 (dbus_g_proxy_cancel_call): Prototype.
2599 (DBusGAsyncData): Delete, shouldn't be needed anymore.
2601 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2603 (struct _DBusGProxyManager): Add bus_proxy member, which is an
2604 internal proxy for calls to the bus. Remove
2605 pending_nameowner_calls, now the internal proxy keeps track.
2606 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2607 pending_nameowner_calls.
2608 (got_name_owner_cb): Update prototype, and use
2609 dbus_g_proxy_end_call.
2610 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2611 (dbus_g_proxy_manager_register): Delete directly libdbus code in
2612 favor of using internal proxy.
2613 (dbus_g_proxy_manager_unregister): Update to use
2614 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2615 (dbus_g_proxy_init): Initialize pending calls map.
2616 (dbus_g_proxy_constructor): New.
2617 (dbus_g_proxy_class_init): Add get/set property functions,
2618 constructor, and add NAME, PATH, and INTERFACE properties.
2619 (cancel_pending_call): New function.
2620 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2622 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2623 (GPendingNotifyClosure): New structure.
2624 (d_pending_call_notify, d_pending_call_free): Moved here from
2626 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2628 (manager_begin_bus_call): New internal function for talking to
2630 (dbus_g_proxy_new): Construct object using GObjet properties.
2631 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2632 Create closure of same, and insert call into map of pending calls.
2633 (dbus_g_proxy_end_call_internal): Take call id instead of pending
2634 call. Look up pending call in current set. Remove it when we've
2636 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2637 (dbus_g_proxy_begin_call): Change API to take callback, user data,
2638 and destroy function directly.
2639 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2640 (dbus_g_proxy_call): Invoke with NULL callback.
2641 (dbus_g_proxy_cancel_call): New function, replaces
2642 dbus_g_pending_call_cancel.
2644 * glib/dbus-gparser.c (validate_signature): Fix call to
2647 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2648 New quark for attaching metadata to GType.
2649 (info_hash): Delete.
2650 (lookup_object_info): Look up using quark.
2651 (dbus_g_object_type_install_info): Check that a type is classed,
2652 not that it's an object. Also just install type data using quark
2653 instead of using global hash.
2655 * glib/dbus-glib.c (dbus_g_pending_call_ref)
2656 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2657 (GPendingNotifyClosure): Delete.
2658 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2659 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2661 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2662 client method generation until we can fix it...
2664 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2665 (load_from_service_thread_func): Ditto.
2667 * tools/dbus-names-model.c (struct NamesModel): Hold
2669 (have_names_notify): Update prototype, use
2670 dbus_g_proxy_cancel_call.
2671 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2673 * tools/dbus-monitor.c (filter_func): Update for print_message
2676 * test/glib/test-dbus-glib.c: Add more tests for async
2677 invocations. Update many begin_call/end_call pairs to just use
2680 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
2681 allows us to dump print-introspect.c.
2683 * tools/dbus-print-message.h (print_message): Add literal argument
2684 to print_message which is intended to allow printing arguments without
2685 metadata like "string=".
2687 * tools/dbus-print-message.c (print_iter): Add literal argument.
2688 (print_message): Allow printing string messages literally.
2690 2005-07-05 Colin Walters <walters@verbum.org>
2692 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2693 Remove value refcount leak, original patch from Jorn Baayen
2694 <jorn@openedhand.com>. Also remove useless extra value in favor
2695 of prepending to value array directly.
2697 2005-07-02 Colin Walters <walters@verbum.org>
2699 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2701 2005-07-01 Colin Walters <walters@verbum.org>
2703 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2705 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2706 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2707 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2708 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2710 2005-06-30 Colin Walters <walters@verbum.org>
2712 * test/glib/test-dbus-glib.c:
2713 * test/glib/test-service-glib.c:
2714 * test/glib/test-service-glib.xml: Update tests for new error
2715 setting bits, also add async tests (patch from Ross Burton).
2717 * test/glib/Makefile.am (test_service_glib_LDADD): Add
2718 DBUS_GLIB_THREADS_LIBS.
2720 * glib/dbus-gproxy.c (get_name_owner)
2721 (dbus_g_pending_call_end_valist): Ditto.
2723 * glib/dbus-gobject.c (error_metadata): New mapping from GError
2724 domain (GQuark) to DBusGErrorInfo.
2725 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2726 quark in error_metadata. Take message interface as default
2727 error message interface.
2728 (gerror_to_dbus_error_message): Pass message interface.
2729 (dbus_set_g_error): Resurrected.
2730 (dbus_g_error_info_free): New function.
2731 (dbus_g_object_type_install_info): Use g_type_class_ref instead
2732 of _peek to actually create the object class if it hasn't been
2734 (dbus_g_error_domain_register): New function.
2736 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2738 * glib/dbus-gparser.c (validate_signature): Ditto.
2740 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2741 (dbus_g_error_domain_register): Prototype.
2743 * glib/dbus-glib.c (dbus_g_error_set): Delete.
2746 2005-06-29 Colin Walters <walters@verbum.org>
2748 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
2749 DBUS_TYPE_G_OBJECT_PATH.
2751 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2752 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2753 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
2754 (dbus_g_object_path_get_g_type): New function.
2755 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2756 to DBUS_TYPE_G_OBJECT_PATH by default.
2757 (demarshal_proxy): Remove unused name variable.
2758 (demarshal_object_path, marshal_object_path): New functions.
2759 (demarshal_proxy_array, marshal_proxy_array): Delete.
2761 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2762 DBUS_TYPE_G_OBJECT_PATH to char *.
2763 (dbus_g_type_get_lookup_function): Map builtin
2764 DBUS_TYPE_G_OBJECT_PATH.
2766 * test/glib/test-dbus-glib.c
2767 * test/glib/test-service-glib.c (my_object_objpath):
2768 Adapt tests to new object path marshalling.
2770 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
2772 * configure.in: force check for Python >= 2.4
2774 2005-06-29 Colin Walters <walters@verbum.org>
2776 Patch from Ross Burton <ross@openedhand.com>
2778 * glib/dbus-gobject.c (invoke_object_method): Unset object
2779 value in all cases, not only in async case.
2781 2005-06-29 Colin Walters <walters@verbum.org>
2783 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2784 name_call for keeping track of any outgoing GetNameOwner call.
2785 Also add for_owner and associated.
2786 (struct _DBusGProxyManager): Add owner_names, which is hash table
2787 that maps a base name to a list of names it owns (that we're
2788 interested in). Add pending_nameowner_calls which is a list of
2789 all outstanding GetNameOwner; avoids us having to iterate over
2790 every proxy. Add unassociated_proxies which keeps track of name
2791 proxies with no associated name owner.
2792 (dbus_g_proxy_manager_unref): Destroy owner_names.
2793 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2795 (find_name_in_info, name_owner_foreach)
2796 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2797 (dbus_g_proxy_manager_monitor_name_owner)
2798 (dbus_g_proxy_manager_unmonitor_name_owner)
2799 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2800 New functions; they manipulate the owner_names mapping.
2801 (got_name_owner_cb): New function.
2802 (get_name_owner): New function, extracted from
2803 dbus_g_proxy_new_for_name_owner.
2804 (dbus_g_proxy_manager_register): For now we need to keep track of
2805 all NameOwnerChanged. Also if the proxy is for a name, if we
2806 don't already know the name owner, queue a new GetNameOwner
2807 request and add it to our list of unassociated proxies. Otherwise
2809 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2810 cancel any pending GetNameOwner call, etc.
2811 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
2812 the owner_names mapping to look up the current names for the
2813 signal source, and dispatch to any proxies for that name.
2814 (dbus_g_proxy_new): Initialize new members.
2815 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2816 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2817 (dbus_g_pending_call_end_valist): New function, extracted from
2818 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
2819 but want to use the GLib infrastructure. Also note how many
2820 arguments in reply were over.
2821 (dbus_g_pending_call_end): New function, just call
2822 dbus_g_pending_call_end_valist.
2823 (dbus_g_proxy_end_call_internal): Just call
2824 dbus_g_pending_call_end_valist.
2826 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2827 of builtin marshaller for STRING_STRING_STRING.
2829 * test/glib/test-dbus-glib.c:
2830 * test/glib/test-service-glib.c:
2831 * test/glib/test-service-glib.xml:
2832 Extend tests to cover name proxies, destruction of owner proxies,
2835 * glib/examples/example-signal-recipient.c
2836 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2838 * tools/dbus-send.c (main): Print D-BUS error name in addition
2841 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
2843 * python/dbus_bindings.pyx.in (cunregister_function_handler,
2844 cmessage_function_handler): Patch from
2845 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2846 by using the Py_GILState_Ensure/Release to synchronize with the
2849 2005-06-28 Ray Strode <rstrode@redhat.com>
2851 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2852 babysitter helper process on last unref, bug #2813.
2854 2005-06-27 Colin Walters <walters@verbum.org>
2856 * test/glib/test-dbus-glib.c:
2857 * test/glib/test-service-glib.c:
2858 * test/glib/test-service-glib.xml:
2859 Test hash table signal emitting.
2861 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2862 types to their fundamental basis types, since this is what
2863 marshallers operate on. Also add an entry for VOID__BOXED.
2864 (dbus_g_object_register_marshaller_array): Convert to fundamental.
2866 2005-06-26 Havoc Pennington <hp@redhat.com>
2868 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2871 2005-06-26 Colin Walters <walters@verbum.org>
2873 * glib/dbus-glib.c (dbus_set_g_error): Delete.
2874 (dbus_g_error_set): New public function from its ashes; used by
2875 both service-side method implementation and GLib bindings
2877 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2878 (_dbus_glib_test): Add some tests.
2880 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2882 * test/glib/test-service-glib.c (my_object_throw_error): Use
2885 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2886 errors thrown by dbus_g_error_set.
2888 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2890 * glib/dbus-gparser.c (validate_signature): Ditto.
2892 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
2893 (dbus_g_proxy_end_call_internal): Ditto.
2895 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2896 converts DBUS_ERROR_x to DBUS_GERROR_x.
2897 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2899 * doc/TODO: Remove error TODO.
2901 * doc/dbus-tutorial.xml: Update with documentation about error
2904 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2905 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2906 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
2908 2005-06-22 Colin Walters <walters@verbum.org>
2910 Patch from Ross Burton <ross@openedhand.com>
2912 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2914 2005-06-20 Colin Walters <walters@verbum.org>
2916 * configure.in: Add glib/examples.
2918 * glib/Makefile.am: Add examples/
2920 * glib/examples/.cvsignore
2921 * glib/examples/Makefile.am
2922 * glib/examples/example-client.c
2923 * glib/examples/example-service.c
2924 * glib/examples/example-service.xml
2925 * glib/examples/example-signal-emitter.c
2926 * glib/examples/example-signal-emitter.xml
2927 * glib/examples/example-signal-recipient.c:
2928 New files; GLib binding examples, ported from
2931 2005-06-20 Colin Walters <walters@verbum.org>
2934 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2937 * glib/dbus-binding-tool-glib.c:
2938 * doc/dbus-tutorial.xml:
2939 * test/glib/test-dbus-glib.c: Update for rename.
2941 2005-06-20 Colin Walters <walters@verbum.org>
2943 Patch suggested by Ross Burton <ross@openedhand.com>
2945 * glib/dbus-gobject.c (export_signals): Free signal name.
2946 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2947 memory leak. Add a bit of documentation.
2948 (dbus_g_method_return_error): Free context, and note we do
2951 2005-06-18 Murray Cumming <murrayc@murrayc.com>
2954 * glib/dbus-gobject.c:
2955 * glib/dbus-gproxy.c:
2956 * glib/dbus-gvalue.c: Predeclare structs as
2957 typedef struct _Something Something instead of
2958 typedef struct Something Something, so we can
2959 redeclare the prototypes. Other GNOME libraries
2962 2005-06-17 Colin Walters <walters@verbum.org>
2964 * tools/dbus-names-model.c (have_names_notify): Fix call
2965 to dbus_g_proxy_end_call.
2967 2005-06-17 Colin Walters <walters@verbum.org>
2969 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2970 spew warnings if we get malformed remote signals.
2972 * glib/dbus-gobject.c (propsig_iterate): New function.
2973 (lookup_object_info): New function, extracted from
2974 lookup_object_and_method.
2975 (introspect_properties, introspect_signals): Delete; these
2976 are merged into write_interface.
2977 (write_interface): Write out signals and properties here;
2978 dump the org.gtk.object stuff and use the interface given
2979 in the introspection data blob. Also fix up property XML.
2980 (lookup_values): New function.
2981 (introspect_interfaces): Gather a mapping from interface to a
2982 list of its methods, signals, and properties, then write out
2984 (lookup_object_and_method): Use lookup_object_info.
2985 (struct DBusGSignalClosure): Add interface.
2986 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2987 we can just use the constant data.
2988 (dbus_g_signal_closure_finalize): Don't free signal name.
2989 (signal_emitter_marshaller): Use interface from signal closure.
2990 (export_signals): Only export signals mentioned in introspection
2992 (dbus_g_connection_register_g_object): Warn if we have no
2993 introspection data for an object.
2994 (funcsig_equal): Remove unused variable.
2995 (dbus_g_object_register_marshaller): Take varargs instead of
2997 (dbus_g_object_register_marshaller_array): New function,
2998 extracted from old dbus_g_object_register_marshaller.
3000 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3001 signals and property data.
3002 (write_quoted_string): New function, extracted from generate_glue.
3003 (generate_glue): Write signals and properties to introspection
3006 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3007 exported_signals and exported_properties.
3008 (dbus_g_object_register_marshaller): Update prototype.
3009 (dbus_g_object_register_marshaller_array): Prototype.
3011 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3013 * test/glib/test-service-glib.c: Add new test signals and method
3016 * test/glib/test-service-glib.xml: Add some test signals.
3018 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3019 and my-object-marshal.h
3020 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3021 my-object-marshal.c.
3022 (my-object-marshal.c, my-object-marshal.h): Implement.
3024 * test/glib/.cvsignore: Update.
3026 * doc/TODO: Remove two GLib TODO items fixed by this
3029 2005-06-16 Colin Walters <walters@verbum.org>
3031 * doc/TODO: Update for GLib bindings.
3033 2005-06-16 Colin Walters <walters@verbum.org>
3035 * glib/dbus-binding-tool-glib.c:
3036 * glib/dbus-gobject.c:
3037 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
3038 from Ross Burton, for his GLib bindings work.
3040 2005-06-16 Colin Walters <walters@verbum.org>
3042 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3043 to iterate instead of walking to G_TYPE_INVALID.
3045 Patch based on a patch from Ryan Gammon.
3047 2005-06-16 Colin Walters <walters@verbum.org>
3049 * bus/bus.c (bus_context_new): Set parser to NULL
3050 after we unref it (Patch from Chris Boscolo, #2174).
3052 2005-06-16 Colin Walters <walters@verbum.org>
3054 * python/dbus_bindings.pyx.in: Import size_t,
3055 __int64_t, __uint64_t, and __signed.
3057 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3058 Define cmsg struct, output it.
3059 (_dbus_read_credentials_unix_socket):
3062 Patch from Joe Markus Clarke for FreeBSD support.
3064 2005-06-16 Colin Walters <walters@verbum.org>
3066 * tools/dbus-send.c (append_array): Use strtok.
3067 (append_dict): New function.
3068 (type_from_name): New function, extracted from main.
3069 (main): Handle sending dicts.
3071 * tools/dbus-print-message.c (print_iter): Print dict
3074 2005-06-16 Colin Walters <walters@verbum.org>
3076 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3077 values as the empty string (#2948).
3079 2005-06-16 Colin Walters <walters@verbum.org>
3082 * mono/doc/Makefile.am:
3083 * test/glib/Makefile.am:
3085 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3087 2005-06-16 Colin Walters <walters@verbum.org>
3089 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3090 header byte order from expected byte order (Patch from Chris Wilson, #3475).
3092 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
3093 Increment pointer after swapping fixed array. Add assertion
3096 2005-06-15 Colin Walters <walters@verbum.org>
3098 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3099 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3101 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3103 * NEWS: Update to 0.34
3105 2005-06-15 David Zeuthen <davidz@redhat.com>
3107 * configure.in (LT_CURRENT): Revert back to 1 as the library
3108 hasn't changed and we've certainly not committed to protocol
3109 stability yet. All this does is to break ABI. See commit note
3110 from hp@redhat.com 2005-05-05 for details.
3112 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3114 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3115 (_dbus_connection_run_builtin_filters): New method
3116 (dbus_connection_dispatch): Run the builtin filters which in turn
3117 runs the peer filter which handles Ping messages.
3120 - Ping isn't handled: This patch fixes it
3122 - Add a test case for the Ping message: added TODO item
3124 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3126 * dbus/dbus-message.c:
3127 (dbus_message_has_path): New method
3128 (dbus_message_has_interface): New method
3129 (dbus_message_has_member): New method
3131 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3134 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3135 the keyring directory is private to the user
3138 - The convenience functions in dbus-bus.h should perhaps have
3139 the signatures that they would have if they were autogenerated
3140 stubs. e.g. the acquire service function. We should also evaluate
3141 which of these functions to include, in light of the fact that
3142 GLib/Qt native stubs will probably also exist.: Punted
3144 - add dbus_message_has_path(), maybe has_member/interface:
3147 - in dbus-keyring.c, enforce that the keyring dir is not
3148 world readable/writable: Fixed in this patch
3150 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3152 * dbus/dbus-marshal-validate.h: Added a new validation
3153 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3154 out of memory errors when validating signitures
3156 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3157 in places where we previously used DBUS_VALID and a FALSE return
3158 value to indicate OOM
3160 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3161 Use a stack to track the number of elements inside containers. The
3162 stack values are then used to validate that dict entries have only two
3163 elements within them.
3164 (validate_body_helper): check the reason for failure when validating
3167 * dbus/dbus-message.c (load_message): use
3168 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3169 DBUS_VALID and a FALSE return value to indicate OOM
3171 * doc/TODO: remove "- validate dict entry number of fields" as this
3174 2005-06-14 David Zeuthen <davidz@redhat.com>
3176 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3177 watches (if applicable) and add new watches
3179 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3180 (main): Setup SIGIO signal handler if using D_NOTIFY
3182 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3184 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3185 (merge_included): Also merge conf_dirs list
3186 (bus_config_parser_unref): Clear conf_dirs list
3187 (include_dir): Add directory to conf_dirs list
3188 (bus_config_parser_get_conf_dirs): New function
3190 * bus/dir-watch.[ch]: New files
3192 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3194 * configure.in: Add checks for D_NOTIFY on Linux
3196 2005-06-14 Colin Walters <walters@verbum.org>
3198 * glib/dbus-binding-tool-glib.c:
3199 * glib/dbus-gobject.c:
3200 * glib/dbus-gvalue.c: Fix indentation and brace style.
3202 2005-06-14 Ross Burton <ross@openedhand.com>.
3204 * glib/dbus-glib.h: Make DBusGMethodInvocation
3205 a private structure. Rearrange prototypes a bit.
3207 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3208 documentation for first_arg_type.
3210 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3211 here, add documentation. Move dbus_g_method_return
3212 and dbus_g_method_return_error into public API
3215 2005-06-14 Colin Walters <walters@verbum.org>
3217 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3218 Add missing return statements, noticed by Ross Burton.
3220 2005-06-13 Ross Burton <ross@openedhand.com>.
3222 * glib/dbus-gobject.c: Handle errors on message
3223 demarshalling by sending error message back.
3224 * glib/dbus-gvalue.c: Initialize return variables.
3226 2005-06-13 Colin Walters <walters@verbum.org>
3228 * glib/Makefile.am: Fix thinko in last patch.
3230 2005-06-13 Colin Walters <walters@verbum.org>
3232 * glib/Makefile.am: Move dbus-gtype-specialized.c
3233 and dbus-gtype-specialized.h into a _HEADERS variable,
3236 2005-06-12 Colin Walters <walters@verbum.org>
3238 Async signals and various bugfixes and testing by
3239 Ross Burton <ross@openedhand.com>.
3241 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3242 (dbus_gvalue_genmarshal_name_from_type)
3243 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3244 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3245 (dbus_g_value_types_init, dbus_gtype_from_signature)
3246 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3247 (dbus_gtypes_from_arg_signature): New function prototypes.
3248 (dbus_gvalue_demarshal): Take context and error arguments.
3249 (dbus_gvalue_demarshal_variant): New function.
3250 (dbus_gvalue_demarshal_message): New function.
3251 (dbus_gvalue_store): Delete.
3253 * glib/dbus-gvalue.c:
3255 File has been almost entirely rewritten; now we special-case
3256 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3257 hash tables correctly, etc. Full support for recursive values
3258 is not yet complete.
3260 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3261 argument of signal to G_TYPE_POINTER since we now pass a
3263 (lookup_g_marshaller): Delete in favor of
3264 _dbus_gobject_lookup_marshaller.
3265 (marshal_dbus_message_to_g_marshaller): Use
3266 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3267 to handle remote signal callbacks.
3268 (dbus_g_proxy_new_from_proxy): New function; creates a new
3269 DBusGProxy by copying an existing one.
3270 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3271 (dbus_g_proxy_get_path): New functions.
3272 (dbus_g_proxy_marshal_args_to_message): New function;
3273 factored out of existing code.
3274 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3275 from a varargs array.
3276 (dbus_g_proxy_begin_call_internal): New function.
3277 (dbus_g_proxy_end_call_internal): New function.
3278 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3279 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3280 after collecting args into value array.
3281 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3282 invoke dbus_g_proxy_end_call_internal.
3283 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3285 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3287 (array_free_all): New function.
3288 (dbus_g_proxy_add_signal): Take GTypes.
3290 * glib/dbus-gobject.h:
3291 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3292 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3295 * glib/dbus-gobject.c: Add a global marshal_table hash which
3296 stores mappings from type signatures to marshallers. Change lots
3297 of invocations of dbus_gtype_to_dbus_type to
3298 dbus_gtype_to_signature.
3299 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3300 (introspect_signals): Fix test for query.return_type.
3301 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3302 (invoke_object_method): Many changes. Handle asynchronous
3303 invocations. Convert arguments with
3304 dbus_gvalue_demarshal_message. Handle errors. Use
3305 DBusSignatureIter instead of strlen on args. Handle all arguments
3306 generically. Special-case variants.
3307 (dbus_g_method_return, dbus_g_method_return_error): New function.
3308 (DBusGSignalClosure): New structure, closes over signal
3310 (dbus_g_signal_closure_new): New function.
3311 (dbus_g_signal_closure_finalize): New function.
3312 (signal_emitter_marshaller): New function; is special marshaller
3313 which emits signals on bus.
3314 (export_signals): New function; introspects object signals and
3316 (dbus_g_object_type_install_info): Take GType instead of
3318 (dbus_g_connection_register_g_object): Invoke export_signals.
3319 (dbus_g_connection_lookup_g_object): New function.
3320 (DBusGFuncSignature) New structure; used for mapping type
3321 signatures to marshallers.
3322 (funcsig_hash): New function; hashes DBusGFuncSignature.
3323 (funcsig_equal): New function; compares DBusGFuncSignature.
3324 (_dbus_gobject_lookup_marshaller): New function.
3325 (dbus_g_object_register_marshaller): New function; used to
3326 register a marshaller at runtime for a particular signature.
3328 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3330 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3331 which notes a server method implementation should be
3334 * glib/dbus-binding-tool-glib.c
3335 (dbus_binding_tool_output_glib_server): Call
3336 dbus_g_value_types_init.
3337 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3339 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3340 of a lookup function.
3341 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3342 (write_untyped_out_args): New method; write output arguments.
3343 (write_formal_declarations_for_direction): Function for
3345 (write_formal_parameters_for_direction): Function for
3346 writing implementations.
3347 (write_typed_args_for_direction): Function for writing
3348 arguments prefixed with GTypes.
3349 (write_async_method_client): Write out async version
3352 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3353 (dbus_g_type_get_marshal_name): Move mapping from GType
3354 to marshal name into here.
3355 (dbus_g_type_get_c_name): Move into here.
3356 (compute_marshaller): Convert signature to type with
3357 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3358 (compute_marshaller_name): Ditto.
3359 (compute_marshaller): Handle async signal annotations.
3360 (gather_marshallers): Return if we don't have a known
3362 (generate_glue): Collect introspection blob here, and
3363 write all of the blob at the end. This allows an object
3364 with multiple interfaces to work.
3365 Mark async methods in introspection blob.
3367 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3368 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3369 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3371 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3372 avoids people accidentally using DBUS_TYPE_* which should
3373 not be necessary anymore.
3374 Do include dbus-gtype-specialized.h, which are utilities
3375 for GLib container types.
3376 Add various #defines for types such as
3377 DBUS_TYPE_G_BOOLEAN_ARRAY.
3378 (DBusGValueIterator, DBusGValue): Define, not fully used
3380 (dbus_g_value_get_g_type): Type for recursive value.
3381 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3382 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3383 (dbus_g_value_free): Prototypes.
3384 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3385 (dbus_g_proxy_set_interface): Prototype.
3386 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3387 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3389 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3391 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3392 doing async invocations.
3393 (dbus_g_method_return, dbus_g_method_return_error):
3395 * doc/dbus-tutorial.xml: Update GLib section.
3397 * tools/dbus-viewer.c (load_child_nodes): Update
3398 for new invocation type of dbus_g_proxy_end_call.
3399 (load_from_service_thread_func): Ditto.
3401 * tools/print-introspect.c (main): Ditto.
3403 * tools/dbus-names-model.c (have_names_notify)
3404 (names_model_reload, names_model_set_connection)
3407 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3408 needed since Python bindings use GLib bindings.
3410 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3411 Add --prefix argument.
3413 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
3414 unneeded --ignore-unsupported arg.
3416 * test/glib/test-service-glib.c:
3417 * test/glib/test-service-glib.xml:
3418 * test/glib/test-dbus-glib.c: Add many more tests.
3420 2005-06-06 David Zeuthen <davidz@redhat.com>
3422 * doc/TODO: Add item about need to remove deprecated functions.
3424 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3426 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3427 to repair the ABI which was broken with the last commit.
3429 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
3431 * dbus/dbus-connection.c, dbus/dbus-connection.h
3432 (dbus_connection_disconnect): renamed to dbus_connection_close
3433 for API symmetry with dbus_connection_open
3434 (_dbus_connection_open_internal):
3435 s/dbus_connection_disconnect/dbus_connection_close
3437 * dbus/dbus-bus.c (dbus_bus_get):
3438 s/dbus_connection_disconnect/dbus_connection_close
3440 * bus/connection.c (bus_connections_unref,
3441 bus_connections_setup_connection, bus_connections_expire_incomplete):
3442 s/dbus_connection_disconnect/dbus_connection_close
3444 * bus/dispatch.c (bus_dispatch, kill_client_connection,
3445 kill_client_connection_unchecked, check_hello_connection):
3446 s/dbus_connection_disconnect/dbus_connection_close
3448 * bus/bus.c (new_connection_callback):
3449 s/dbus_connection_disconnect/dbus_connection_close
3451 * tools/dbus-send.c (main):
3452 s/dbus_connection_disconnect/dbus_connection_close
3454 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3455 s/dbus_connection_disconnect/dbus_connection_close
3457 * test/test-service.c (path_message_func, filter_func):
3458 s/dbus_connection_disconnect/dbus_connection_close
3460 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
3462 2005-05-25 Colin Walters <walters@verbum.org>
3464 * dbus/dbus-protocol.h: Move various bus service #defines such
3465 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3467 * dbus/dbus-shared.h: Various defines moved here.
3468 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3470 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
3472 * python/__init__.py: Python bindings deserve a minor version
3473 update. Upped to (0, 40, 2)
3475 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
3477 * python/decorators.py: add explicitly_pass_message decorator
3478 for passing in the dbus message as keyword for edge case signal
3481 * python/matchrules.py (SignalMatchRule.__repr__): fix output
3482 to conform with what dbus expects for match rules
3483 (SignalMatchRule.execute): add the dbus message as a keyword
3484 if the signal handler has requested it
3486 * python/examples/example/signal-recipient.py: added some more
3487 examples on how to hook up to signals
3489 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
3491 * python/decorators.py: import dbus_bindings
3493 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
3494 SignalMatchNode): new classes that implement wildcard signal
3495 callback matching using a tree lookup. Heavily modified from a
3496 patch sent by Celso Pinto (fd.o bug #3241)
3498 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3499 use new match classes to handle signals.
3501 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
3503 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3505 2005-05-18 Havoc Pennington <hp@redhat.com>
3507 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3508 gettext. Not really worth requiring yet perhaps, but any
3509 production quality 1.0 would require it so we should go ahead and
3510 get things set up. We do have a couple token calls to
3511 bindtextdomain in the code already.
3513 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
3515 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3516 when using recursive g_main_loops
3518 * python/_dbus.py (class Bus): add the ProxyObjectClass
3519 alias for ProxyObject to make it easier for the Twisted
3520 networking framework to integrate dbus.
3522 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3523 alias for ProxyMethod to make it easier for the Twisted
3524 networking framework to integrate dbus.
3526 2005-05-11 Ross Burton <ross@openedhand.com>
3528 * glib/dbus-glib-tool.c: Add --prefix argument.
3529 * glib/dbus-binding-tool-glib.h: Add prefix argument.
3530 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3531 Add prefix argument.
3532 (generate_glue): Pass prefix argument down.
3533 (dbus_binding_tool_output_glib_server): Pass prefix to
3536 2005-05-11 Colin Walters <walters@verbum.org>
3538 * tools/dbus-send.c (append_array): New function.
3539 (append_arg): Broken out from main.
3540 (main): Add cheesy hack to send arrays and variants.
3542 * tools/dbus-print-message.c (print_iter): Broken out
3545 2005-05-11 Colin Walters <walters@verbum.org>
3547 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3548 New function, returns signature string for signature iter.
3549 * dbus/dbus-signature.h: Prototype it.
3550 * dbus/dbus-message.c (dbus_message_iter_get_signature):
3551 New function, returns signature string for message iter.
3552 (dbus_message_iter_get_array_len): New function, returns
3554 (dbus_message_iter_get_fixed_array): Fix assertion; this
3555 function should be used when the iter is pointing to the
3556 contents of an array
3557 * dbus/dbus-message.h: Prototypes.
3558 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3559 New function; returns length of an array.
3560 * dbus/dbus-marshal-recursive.h: Prototype it.
3562 2005-05-11 Colin Walters <walters@verbum.org>
3564 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3567 2005-05-08 Havoc Pennington <hp@redhat.com>
3569 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3570 daemon's pid, not the parent's pid, to the file descriptor.
3571 Reported by Taj Morton.
3573 2005-05-05 Havoc Pennington <hp@redhat.com>
3575 * configure.in (LT_*): add notes on how the libtool versioning
3576 works to save thinking. Increment soname to indicate protocol
3577 breakage (though really the library interface hasn't changed I
3580 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3581 verify the GUID received from server matches what we were
3582 expecting, if we had an expectation
3584 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3585 (_dbus_auth_get_guid_from_server): new function
3586 (send_begin): parse the OK args
3588 * doc/dbus-specification.xml: add GUID to the auth protocol
3590 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
3592 * Fix my name in previous changelog ;)
3594 * python/proxies.py (ProxyObject.__getattr__): add further patch
3595 from Anthony Baxter to throw an AttributeError when python
3596 __special__ functions are called instead of marshling them over
3597 the bus (Bug#1685 comment 3).
3599 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
3601 * python/Makefile.am: changed to use pyexecdir for the binding
3602 shared libraries (Bug#2494)
3604 * python/exceptions.py: bring exceptions over from the bindings
3605 so they can be used in applications (Bug#2036)
3606 Make all exceptions derive from DBusException
3608 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3609 of classes so that print obj doesn't throw an exception (Bug #1685)
3611 2005-05-03 Ross Burton <ross@openedhand.com>
3613 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3614 Return if we get an error during registration. Set up a
3615 weak reference on object to unregister if object is destroyed.
3616 (unregister_gobject): New function.
3618 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
3620 * python/dbus_bindings.pyx.in:
3621 - added new type classes for hinting to the marashaler what type
3622 to send over the wire
3623 - added int16 and uint16 marshalers
3624 - Fixed a bug in the type constants that caused int32 to go out
3625 as uint16 over the wire
3626 * python/dbus.py: split up into different files and renamed _dbus.py
3627 * python/__init__.py, python/_util.py, python/decorators.py,
3628 python/exceptions.py, python/proxies.py, python/services.py,
3629 python/types.py: new files split off from dbus.py
3630 * python/Makefile.am: Add new files, remove dbus.py and
3631 install all python files to <python module dir>/dbus
3632 * python/examples/*: Added #!/usr/bin/env python to the top of
3633 every example. Patch provided by Tatavarty Kalyan
3635 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3637 * NEWS: Update to 0.33
3639 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3641 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3642 method for doing async calls
3643 (_pending_call_notification): New C function for handling pendning call
3645 (set_notify): New method for setting pending call notification
3647 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3648 Async capabilities added to remote method calls
3649 (Sender): class removed
3650 (RemoteService): class removed
3651 (ObjectTree): class removed for now
3652 (RemoteObject): Renamed to ProxyObject
3653 (RemoteMethod): Renamed to ProxyMethod
3654 (method): Decorator added for decorating python methods as dbus methods
3655 (signal): Decorator added for decorating python methods as signal emitters
3656 (ObjectType): Metaclass added for generating introspection data and the
3657 method callback vtable
3658 (Interface): Wrapper class added to wrap objects in a dbus interface
3659 (Object): Uses ObjectType as its metaclass and exports Introspect
3660 of the org.freedesktop.DBus.Introspectable interface
3661 (ValidationException, UnknownMethodException): new exceptions
3663 * python/examples/*: Modified to fit with the new bindings
3665 2005-04-23 Havoc Pennington <hp@redhat.com>
3667 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3668 reported by Tony Houghton
3670 * test/test-service.c (main): test
3671 dbus_connection_get_object_path_data()
3673 * dbus/dbus-object-tree.c (find_handler): be sure we always init
3675 (_dbus_object_tree_get_user_data_unlocked): new function used by
3676 dbus_connection_get_object_path_data()
3677 (do_register): add assertion test for get_user_data_unlocked
3678 (object_tree_test_iteration): more tests
3680 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3681 new function from Dan Reed to let you get the user data from
3682 dbus_connection_register_object_path()
3684 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
3686 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3687 in numerous places that did not account for the NULL terminator
3688 (signature_from_seed): changed the manual string copy loop to
3689 just use strcpy instead
3690 make check should now pass
3692 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
3694 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3695 so that it allows messages that are not signals to pass in
3696 NULL as the interface.
3698 2005-04-18 David Zeuthen <davidz@redhat.com>
3700 * glib/dbus-gmain.c (io_handler_destroy_source):
3701 (timeout_handler_destroy_source, connection_setup_free):
3702 Also unref the source to avoid memory leaks.
3704 2005-04-13 David Zeuthen <davidz@redhat.com>
3706 * bus/config-parser.c (bus_config_parser_new): Bump this to a
3707 more reasonable, yet still totally arbitrary, value :-).
3709 2005-04-13 David Zeuthen <davidz@redhat.com>
3711 * doc/TODO: Added an "important for 1.0" item about selinux
3714 2005-04-13 David Zeuthen <davidz@redhat.com>
3716 * bus/selinux.c: Add c-file-style to top of file
3717 (log_audit_callback): Don't free the data here anymore
3718 (bus_selinux_check): Don't take spid and tpid since appending
3719 that to auxdata may OOM.
3720 (bus_selinux_allows_acquire_service): Handle OOM and signal back
3721 to the caller if we are OOM by taking an error object.
3722 (bus_selinux_allows_send): -do-
3724 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3725 and bus_selinux_allows_send
3727 * bus/bus.c (bus_context_check_security_policy): Pass error and
3728 pass on OOM thrown by bus_selinux_allows_send()
3730 * bus/services.c (bus_registry_acquire_service): Pass error and
3731 pass on OOM thrown by bus_selinux_allows_acquire_service()
3733 2005-04-13 Havoc Pennington <hp@redhat.com>
3735 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3736 message at a time to avoid monopolizing the main loop, bug
3737 #2953 from Benjamin Otte
3739 2005-04-09 Havoc Pennington <hp@redhat.com>
3741 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3742 possible overlap, fix from Daniel Reed
3743 (fixup_alignment): fix signedness warnings
3744 (_dbus_string_append_unichar): ditto
3746 2005-04-09 Havoc Pennington <hp@redhat.com>
3748 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3750 * glib/dbus-glib-tool.c (main): fix warning
3752 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3754 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3755 add a new function that can be used in simple applications that
3756 don't have a main loop and are willing to block
3758 2005-04-05 David Zeuthen <davidz@redhat.com>
3760 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3762 * glib/dbus-gmain.c:
3763 (io_handler_destroy_source): Remove from list of IO handlers
3764 of the ConnectionSetup object
3765 (timeout_handler_destroy_source): -do- for timeout handlers
3766 (io_handler_source_finalized): Don't remove from list since
3767 we now do that in io_handler_destroy_source(). Renamed from
3768 io_handler_source_destroyed
3769 (timeout_handler_source_destroyed): -do- for timeout handlers
3770 (connection_setup_free): It is now safe to iterate over all
3771 IO and timeout handlers as the _destroy_source removes them
3772 from the list synchronously
3774 2005-03-30 Havoc Pennington <hp@redhat.com>
3776 * configure.in: change check to gtk 2.4
3778 * tools/dbus-viewer.c (name_combo_changed_callback): remove
3779 gtk_combo_box_get_active_text() usage to decrement GTK requirement
3782 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3786 * HACKING: Fixed realease instructions. configure.in should be updated to
3787 the next release by the person who made the last release.
3789 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3791 * python/lvalue_cast_post_process.py - removed. Patch has been
3792 submitted to Pyrex maintainers that fixes gcc4.0 errors
3794 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3796 2005-03-24 Daniel Reed <n@ml.org>
3798 * tools/Makefile.am: Make print-introspect and
3799 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3801 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
3803 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3805 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
3806 had in Red Hat packages for a while but for some reason never
3808 (_dbus_is_a_number): New checks if a string
3809 can be converted to a number and does the conversion if it can
3810 (_dbus_user_database_lookup): Add check to see if the given username
3811 is a udi. This allows udi's to be used instead of usernames in the
3813 (_dbus_user_database_lookup_group): Add check to see if the given groupname
3814 is a gdi. This allows gdi's to be used instead of groupnames in the
3817 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
3819 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3820 code so that it compiles with gcc4.0
3822 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3823 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3824 results back to dbus_binding.c
3826 2005-03-20 Colin Walters <walters@verbum.org>
3828 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3830 * configure.in: Require GTK+ 2.6.
3832 2005-03-20 Colin Walters <walters@verbum.org>
3834 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3836 2005-03-17 Tom Parker <palfrey@tevp.net>
3838 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3839 print DBUS_UID_UNSET; instead print passed username. Also
3840 be sure to actually use gid looked up in cache.
3842 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3843 for DBUS_GID_UNSET and groupname.
3845 2005-03-17 Colin Walters <walters@verbum.org>
3847 * bus/print-introspect.c: Move to tools/.
3848 * bus/run-with-tmp-session-bus.sh: Ditto.
3850 * glib/Makefile.am (dbus-glib-bindings.h): Move
3851 generation to tools/Makefile.am.
3853 * test/glib/run-test.sh: Update to handle move
3854 of run-with-tmp-session-bus.sh.
3856 * test/glib/test-service-glib.c: Update to handle
3857 move of dbus-glib-bindings.h.
3859 * tools/print-introspect.c: Moved here
3860 from bus/, and ported to GLib bindings.
3862 * tools/run-with-tmp-session-bus.sh: Moved here
3865 * tools/Makefile.am: Generate dbus-glib-bindings.h
3866 and dbus-bus-introspect.xml here.
3868 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3871 2005-03-17 Colin Walters <walters@verbum.org>
3873 * bus/driver.c (write_args_for_direction): Use
3874 _dbus_string_get_const_data to retrieve string;
3875 _dbus_string_get_const_data_len doesn't actually return
3876 a NULL-terminated substring.
3878 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3879 (main): Change to use org_freedesktop_DBus_request_name
3880 instead of using g_proxy_begin_call/end_call.
3882 2005-03-15 Joe Shaw <joeshaw@novell.com>
3884 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3885 generating the finalizer. Fixes from Ben Maurer.
3887 2005-03-12 Joe Shaw <joeshaw@novell.com>
3889 * mono/BusDriver.cs: Update method names: ListServices
3890 becomes ListNames; GetOwner becomes GetNameOwner.
3892 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3893 onto the eval stack when removing the delegate.
3895 2005-03-12 Joe Shaw <joeshaw@novell.com>
3897 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3898 LT_CURRENT. Set it to the autoconf variable.
3900 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3901 classes that disconnects the signal handler delegate from the
3902 service object. Fixes a big leak of proxy objects on the
3903 client side of things. Patch from Ben Maurer
3904 <bmaurer@ximian.com>
3906 2005-03-12 Colin Walters <walters@verbum.org>
3908 * bus/driver.c (write_args_for_direction): New function,
3909 parses a type signature into arguments and outputs to
3911 (bus_driver_handle_introspect): Use it instead of
3912 hardcoding XML for certain signatures.
3914 * bus/Makefile.am (dbus-bus-introspect.xml): Add
3915 dependency on dbus-daemon.
3917 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3918 argument, pass it to dbus_binding_tool_output_glib_client.
3920 * glib/dbus-binding-tool-glib.c
3921 (generate_client_glue): Protect against multiple inclusion.
3922 (dbus_binding_tool_output_glib_client): Add
3923 G_BEGIN_DECLS/G_END_DECLS.
3925 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3926 Change to just take iface prefix directly.
3927 (write_formal_parameters): Clarify error message.
3928 (check_supported_parameters): New function; checks to see type
3929 signatures of method parameters are supported.
3930 (generate_client_glue): Handle ignore_unsupported flag.
3931 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3934 * glib/Makefile.am (dbus-glib-bindings.h): Pass
3935 --ignore-unsupported by default until glib bindings
3938 2005-03-11 Colin Walters <walters@verbum.org>
3940 * glib/Makefile.am: Generate dbus-glib-bindings.h and
3943 * bus/print-introspect.c: New file; prints introspection
3944 data for a given name and object path.
3946 * bus/run-with-tmp-session-bus.sh: New file, refactored
3947 from test/glib/run-test.sh. Creates a temporary session
3948 bus and runs another program.
3950 * test/glib/run-test.sh: Refactor to invoke
3951 run-with-tmp-session-bus.sh.
3953 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3954 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
3955 macros instead of hardcoding.
3957 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3959 2005-03-11 Joe Shaw <joeshaw@novell.com>
3961 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3962 this unref; it doesn't match up evenly in some codepaths.
3963 (_dbus_connection_block_pending_call): Unref at every exitpoint;
3964 this evenly matches with the ref near the top of this function.
3966 2005-03-09 Joe Shaw <joeshaw@novell.com>
3968 * dbus/dbus-object-tree.c
3969 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3970 and we try to unregister a path that's not registered, still go
3971 through the process of unlocking and don't just return.
3973 2005-03-09 Colin Walters <walters@verbum.org>
3975 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3976 to this are generated for client-side wrappers. Invokes a
3977 D-BUS method and returns reply values.
3979 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3980 function; writes signature string for argument direction.
3981 (write_args_for_direction): Change to pass input values directly
3982 instead of via address, and fix indentation.
3983 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
3984 make generated wrappers inlineable.
3986 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3987 note about using dbus_type_is_fixed.
3989 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3990 dbus/dbus-signature.c as dbus_type_is_fixed.
3992 All callers updated.
3994 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3995 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3997 * dbus/dbus-signature.h: Prototype.
3999 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4002 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4003 appropriate instead of just freeing it.
4004 (main): Free returned strings using g_free.
4006 * test/glib/Makefile.am (test-service-glib-glue.h)
4007 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4009 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4010 simply maps a simple D-BUS type to GType.
4011 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4013 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4014 initialize the value with it.
4015 (dbus_gvalue_binding_type_from_type): Unused, delete.
4016 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4017 various types instead of unmarshalling to value data directly.
4018 Remove can_convert boolean.
4019 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4020 returning directly instead of using can_convert boolean.
4021 (dbus_gvalue_store): New function; not related to D-BUS per-se.
4022 Stores a GValue in a pointer to a value of its corresponding C
4025 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4026 add dbus_gvalue_store.
4028 2005-03-08 Joe Shaw <joeshaw@novell.com>
4030 Fix a bunch of lifecycle and memory management problems
4031 in the mono bindings.
4033 * mono/Arguments.cs (Arguments): Implement IDisposable
4035 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
4036 strictly a static class.
4038 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4039 delegates into this file.
4040 (Connection): Implement IDisposable.
4041 (Dispose): Disconnect the connection and set the raw connection
4042 pointer to IntPtr.Zero.
4043 (~Connection): Call Dispose().
4044 (RegisterObjectPath): Added. Manages the registration of object
4045 paths so we can cleanly disconnect them at dispose/finalize time.
4046 (UnregisterObjectPath): Ditto.
4047 (set_RawConnection): Unregister all of the object paths when
4048 changing the underlying DBusConnection. Add them back onto the
4049 new connection, if any.
4051 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4052 more unmanaged resources anymore, so it's not necessary. Move all
4053 the DBusObjectPathVTable stuff out of here.
4054 (Handler): Save references to our delegates so that they don't get
4055 finalized. Call Connection.RegisterObjectPath() instead of
4056 dbus_connection_register_object_path() directly.
4057 (Message_Called): Dispose the message after we're finished with
4060 * mono/Message.cs (Message): Implement IDisposable.
4061 (Dispose): Dispose the Arguments, and set the RawMessage to
4063 (SendWithReplyAndBlock): We own the ref to the reply that comes
4064 back from dbus_connection_send_with_reply_and_block() so add a
4065 comment about that and unref it after we've constructed a managed
4066 MethodReturn class around it. Fixes a big, big leak.
4068 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4070 (BuildSignalHandler): After we've sent the Signal message, dispose
4072 (BuildMethod): Dispose of the method call and reply messages after
4073 we've sent the message and extracted the data we want from the
4076 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4078 (Service_FilterCalled): Dispose of the message after we're
4081 2005-03-08 Joe Shaw <joeshaw@novell.com>
4083 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4084 After we attach our pending call to the connection, unref
4087 * mono/Connection.cs (set_RawConnection): Disconnect our
4088 filter and match callbacks from the old connection and
4089 reconnect them to the new connection, if any.
4091 * mono/DBusType/Array.cs: "Code" is a static member, so
4092 don't use "this" to refer to it. Fix for stricter checking
4095 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4096 object path that we pass into unmanaged code.
4098 * mono/DBusType/String.cs (Append): Don't leak the string
4099 that we pass into unmanged code.
4101 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4102 * NEWS: Update for 0.31
4104 * configure.in: Release 0.31
4105 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4107 * qt/Makefile.am: fixed build
4109 * dbus/Makefile.am: soname bump for libdbus
4111 * glib/Makefile.am: soname bump for libdbus-glib
4113 2005-03-05 Havoc Pennington <hp@redhat.com>
4115 * dbus/dbus-sysdeps.c:
4116 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4118 (_dbus_generate_random_bytes_buffer): fix return value
4120 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4121 checks actually work, from Tom Parker <fdo@tevp.net>
4123 2005-03-01 Colin Walters <walters@verbum.org>
4125 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4126 functions copied from dbus-glib-tool.c.
4127 (main): Convert lots of error code to use them.
4128 Also add some testing for introspection bits.
4130 2005-03-01 Colin Walters <walters@verbum.org>
4132 * doc/TODO: Remove introspection signature TODO.
4134 2005-02-27 Colin Walters <walters@verbum.org>
4136 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4137 Change return value to const char * instead of int so we can do
4139 (struct PropertyInfo, struct ArgInfo): Store char *.
4140 (property_info_new, arg_info_new): Update parameters, strdup.
4141 (property_info_unref, arg_info_unref): Free.
4143 * glib/dbus-gidl.h: Update prototypes.
4145 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4146 (validate_signature): New function, just validates signature and
4148 (parse_property, parse_arg): Invoke validate_signature. Store
4149 signature instead of just type code.
4151 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4152 function to return a primary type for a signature, dropping
4153 information about types in container types.
4154 (dbus_gvalue_genmarshal_name_from_type)
4155 (dbus_gvalue_binding_type_from_type)
4156 (dbus_gvalue_ctype_from_type): Update to take full signature
4157 instead of type code.
4158 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4160 * glib/dbus-gvalue.h: Update prototypes for above.
4162 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4163 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4164 (introspect_properties, introspect_signals, write_interface):
4165 Update to handle signatures, and remove usage of
4166 _dbus_gutils_type_to_string.
4167 (handle_introspect): Print out type codes instead of e.g. "string"
4168 in hardcoded introspection XML; also use x_AS_STRING constants
4169 instead of hardcoding in string.
4171 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4172 to string. Remove usage of _dbus_gutils_type_to_string.
4174 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4176 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4179 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4180 (compute_marshaller_name, generate_glue): Handle signature change
4182 (write_formal_parameters, write_args_for_direction): Ditto, and
4185 * tools/dbus-tree-view.c (type_to_string): Delete.
4186 (info_set_func_text): Update to print full signatures.
4188 * test/glib/test-service-glib.xml: Change types to new
4189 introspection format.
4191 2005-02-26 Havoc Pennington <hp@redhat.com>
4193 * doc/TODO: remove the "guid" item
4195 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4196 (with_bus_thread_func): use open_private
4198 * dbus/dbus-connection.c (dbus_connection_open_private): new
4199 function that works like the old dbus_connection_open()
4200 (dbus_connection_open): now returns an existing connection if
4203 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4204 through the GUID to the transport
4206 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4207 GUID in hex-encoded form.
4209 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4210 pass GUID argument in to the transport
4212 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4215 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4217 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4219 2005-02-25 Havoc Pennington <hp@redhat.com>
4221 * doc/dbus-specification.xml: document the GUID thing
4223 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4224 globally unique ID for the server, and put a "guid=hexencoded"
4225 field in the address
4227 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4229 * dbus/dbus-message.c: ditto
4231 * dbus/dbus-dataslot.c: ditto
4233 * dbus/dbus-list.c: ditto
4235 * dbus/dbus-internals.h: wait, just include
4236 dbus-threads-internal.h here
4238 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4241 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4243 2005-02-24 Colin Walters <walters@verbum.org>
4245 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4247 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4249 * glib/Makefile.am: added dbus-gobject.h to sources list
4250 so distcheck doesn't fail
4252 2005-02-24 Havoc Pennington <hp@redhat.com>
4254 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4255 you must disconnect before unref, since locking and other things
4256 are screwed up otherwise. Fix assorted other locking stuff.
4258 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4261 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4262 into a private header and don't export from the library
4264 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4266 2005-02-24 Colin Walters <walters@verbum.org>
4268 * dbus/dbus-signature.c: New file; implements various functions
4269 related to type signatures. Includes an interator for parsing,
4270 validation functions.
4271 (dbus_type_is_basic): Moved here from
4272 dbus-marshal-basic.c:_dbus_type_is_basic.
4273 (dbus_type_is_container): Moved here from
4274 dbus-marshal-basic.c:_dbus_type_is_container.
4276 All callers of _dbus_type_is_container and _dbus_type_is_basic
4277 updated, and include dbus-signature.h.
4279 * dbus/dbus-signature.h: New file; prototypes for the above.
4281 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4284 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4285 function factored out of _dbus_first_type_in_signature.
4286 (_dbus_first_type_in_signature_c_str): New function; returns first
4287 type code for a type signature character.
4289 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4290 handle function moves.
4292 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4294 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4295 function; skips to next complete type in type signature.
4296 Implemented using previous skip_one_complete_type. Now
4297 skip_one_complete_type just delegates to
4298 _dbus_type_signature_next.
4300 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4302 (_dbus_type_is_container): Ditto.
4304 * doc/dbus-specification.xml: Update introspection sample to
4305 use real type signatures.
4307 * dbus/dbus-test.h: Prototype signature test.
4309 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4312 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4314 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4316 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4317 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4319 2005-02-21 Colin Walters <walters@verbum.org>
4321 * dbus/dbus-test-main.c (main): Take optional specific test
4324 * dbus/dbus-test.c (run_test): New function, runs a test function
4325 with no data directory.
4326 (run_data_test): Like above, but takes data directory.
4327 (dbus_internal_do_not_use_run_tests): Take
4328 specific test argument. Replace lots of cut n' paste code
4329 with run_test and run_data_test.
4331 * dbus/dbus-test.h: Update prototype for
4332 dbus_internal_do_not_use_run_tests.
4334 2005-02-20 Havoc Pennington <hp@redhat.com>
4336 Fix bugs reported by Daniel P. Berrange
4338 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4339 (protected_change_watch): new function
4340 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4341 (_dbus_server_add_watch): change to work like the
4342 dbus-connection.c equivalents; like those, probably kind of
4343 busted, but should at least mostly work for now
4344 (dbus_server_disconnect): drop the lock if we were already
4345 disconnected, patch from Daniel P. Berrange
4347 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4348 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4351 * doc/TODO: todo about unscrewing this mess
4353 2005-02-19 Colin Walters <walters@verbum.org>
4355 * glib/dbus-binding-tool-glib.c
4356 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4358 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4359 as errno.h and sys/stat.h.
4360 (lose): New function, prints error with
4362 (lose_gerror): Similar, but takes GError for message.
4363 (main): Add --output argument to specify output file to write to,
4364 instead of always printing to stdout. In this mode, determine
4365 timestamps on source files to see whether any are newer than the
4366 target file. If not, exit. Also convert a number of error
4367 messages to use lose (since it's shorter), and switch to using
4368 g_io_channel_shutdown.
4370 2005-02-19 Havoc Pennington <hp@redhat.com>
4372 * glib/dbus-gobject.c
4373 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4375 * glib/dbus-glib.c: fix doxygen warnings
4377 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4378 is found on an <arg>
4380 2005-02-17 Colin Walters <walters@verbum.org>
4382 * glib/dbus-gobject.h: Don't export
4383 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4385 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4386 (invoke_object_method): Handle it.
4388 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4391 2005-02-17 Colin Walters <walters@verbum.org>
4393 * bus/.cvsignore, doc/.cvsignore
4394 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4397 2005-02-17 Colin Walters <walters@verbum.org>
4399 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4400 Rename to DBUS_SERVICE_DBUS.
4401 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4402 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4403 Change the value from "org.freedesktop.Local"
4404 to "org.freedesktop.DBus.Local".
4405 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4406 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4407 DBUS_INTERFACE_INTROSPECTABLE.
4408 Change the value from "org.freedesktop.Introspectable"
4409 to "org.freedesktop.DBus.Introspectable".
4410 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4411 DBUS_INTERFACE_PROPERTIES.
4412 Change the value from "org.freedesktop.Properties"
4413 to "org.freedesktop.DBus.Properties".
4414 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4415 DBUS_INTERFACE_PEER.
4416 Change the value from "org.freedesktop.Peer"
4417 to "org.freedesktop.DBus.Peer".
4418 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
4419 DBUS_INTERFACE_LOCAL.
4420 Change the value from "org.freedesktop.Local"
4421 to "org.freedesktop.DBus.Local".
4423 All other users of those constants have been changed.
4425 * bus/driver.c (bus_driver_handle_introspect): Use constants.
4427 * glib/dbus-gobject.c (handle_introspect): Use constants.
4429 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4431 2005-02-17 Colin Walters <walters@verbum.org>
4433 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4434 (parse_node, parse_interface, parse_method, parse_signal)
4435 (parse_property, parse_annotation): Lose if we're currently in an
4437 (parse_annotation): New function.
4438 (parser_start_element, parser_end_element): Handle annotation.
4439 (parse_method, parse_interface): Remove support for c_name attribute,
4440 switch to annotations.
4442 * glib/dbus-gidl.h (interface_info_get_binding_names)
4443 (method_info_get_binding_names)
4444 (interface_info_get_binding_name, method_info_get_binding_name)
4445 (interface_info_set_binding_name, method_info_set_binding_name):
4447 (interface_info_get_annotations, method_info_get_annotations)
4448 (interface_info_get_annotation, method_info_get_annotation)
4449 (interface_info_add_annotation, method_info_add_annotation):
4452 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4454 (struct MethodInfo): Ditto.
4455 Straightfoward conversion of binding methods into annotation methods
4458 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4460 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4462 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4463 Use new annotation API.
4465 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
4468 * doc/dbus-specification.xml: Discuss introspection annotations,
4469 include list of well-known annotations.
4471 * test/glib/test-service-glib.xml: Make validate against new DTD.
4473 2005-02-17 Colin Walters <walters@verbum.org>
4475 This patch is based on initial work from
4476 Paul Kuliniewicz <kuliniew@purdue.edu>.
4478 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4479 initialization of GValue from dbus type to here.
4480 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4481 for the "glib-genmarshal" program from a DBus type.
4482 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4483 into the C name for it we use in the glib bindings.
4484 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4485 glib C type (not GValue).
4486 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4488 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4489 from dbus-gobject.c.
4491 * glib/dbus-gutils.h: Prototype it.
4493 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4494 (marshal_dbus_message_to_g_marshaller): Use new shared function
4495 dbus_glib_marshal_dbus_message_to_gvalue_array.
4497 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4498 Will be changed once we have annotations.
4500 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4501 GStaticRWLock. Callers updated.
4502 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
4503 (string_table_next): New function for iterating over zero-terminated
4505 (string_table_lookup): New function; retrieves specific entry in
4507 (get_method_data): New function; look up method data in object data chunk.
4508 (object_error_domain_prefix_from_object_info)
4509 (object_error_code_from_object_info): New functions, but not implemented yet.
4510 (method_interface_from_object_info): New function; retrieve interface name.
4511 (method_name_from_object_info): New function; retrieve method name.
4512 (method_arg_info_from_object_info): New function; retrieve argument data.
4513 (arg_iterate): New function; iterates over serialized argument data.
4514 (method_dir_signature_from_object_info): New function; returns a
4515 GString holding type signature for arguments for just one
4516 direction (input or output).
4517 (method_input_signature_from_object_info)
4518 (method_output_signature_from_object_info): New functions.
4519 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4520 converts dbus message arguments into a GValue array. Used for both
4521 signal handling and method invocation.
4522 (struct DBusGlibWriteIterfaceData): New utility structure.
4523 (write_interface): New function; generate introspection XML for
4525 (introspect_interfaces): New function; gathers all interface->methods,
4526 generates introspection XML for them.
4527 (handle_introspect): Invoke introspect_interfaces.
4528 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4529 (lookup_object_and_method): New function; examines an incoming message
4530 and attempts to match it up (via interface, method name, and argument
4531 signature) with a known object and method.
4532 (gerror_domaincode_to_dbus_error_name): New function; converts a
4533 GError domain and code into a DBus error name. Needs GError data
4534 added to object introspection to work well.
4535 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4537 (invoke_object_method): New function to invoke an object method
4538 looked up via lookup_object_and_method. Parses the incoming
4539 message, turns it into a GValue array, then invokes the marshaller
4540 specified in the DBusGMethodInfo. Creates a new message with
4541 either return values or error message as appropriate.
4542 (gobject_message_function): Invoke lookup_object_and_method and
4543 invoke_object_method.
4545 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4546 (enum DBusBindingOutputMode): New enum for binding output modes.
4547 (pretty_print): Print binding names.
4548 (dbus_binding_tool_error_quark): GError bits.
4549 (version): Fix typo.
4550 (main): Create GIOChannel for output. Parse new --mode argument,
4551 possible values are "pretty-print", "glib-server", "glib-client".
4552 Use mode to invoke appropriate function.
4554 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4556 * glib/dbus-glib-tool.h: New header, just includes GError bits
4559 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4560 maps binding style to name.
4561 (struct MethodInfo): Ditto.
4562 (get_hash_keys, get_hash_key): Utility function, returns keys for
4564 (interface_info_new, method_info_new): Initialize bindings.
4565 (interface_info_unref, method_info_unref): Destroy bindings.
4566 (method_info_get_binding_names, method_info_get_binding_name)
4567 (interface_info_get_binding_names, interface_info_get_binding_name):
4568 Functions for retrieving binding names.
4569 (method_info_set_binding_name, interface_info_set_binding_name):
4570 Functions for setting binding names.
4572 * glib/dbus-binding-tool-glib.h: New file, has prototypes
4573 for glib binding generation.
4575 * glib/dbus-binding-tool-glib.c: New file, implements server-side
4576 and client-side glib glue generation.
4578 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4579 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4582 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4583 of using GClosureMarshal directly.
4584 (struct DBusGObjectInfo): Add n_infos member.
4586 * test/glib/test-service-glib.xml: New file; contains introspection data
4587 for MyTestObject used in test-service-glib.c.
4589 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4590 (my_object_do_nothing, my_object_increment, my_object_throw_error)
4591 (my_object_uppercase, my_object_many_args): New test methods.
4592 (main): Use dbus_g_object_class_install_info to include generated object
4595 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4596 as well as client-side bindings.
4598 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4599 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4600 using both the dbus_gproxy stuff directly as well as the generated bindings.
4602 2005-02-15 Havoc Pennington <hp@redhat.com>
4604 * dbus/dbus-connection.c (dbus_connection_dispatch): always
4605 complete a pending call, don't run filters first.
4607 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4608 dbus_pending_call_steal_reply
4610 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4611 _dbus_connection_block_pending_call
4612 (dbus_pending_call_get_reply): change to steal_reply and return a
4615 * dbus/dbus-connection.c
4616 (dbus_connection_send_with_reply_and_block): port to work in terms
4618 (_dbus_connection_block_pending_call): replace block_for_reply
4621 2005-02-14 Havoc Pennington <hp@redhat.com>
4623 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4624 properly handle looking up group information by name; fix
4627 2005-02-13 Havoc Pennington <hp@redhat.com>
4629 * dbus/dbus-connection.c (dbus_connection_return_message)
4630 (dbus_connection_borrow_message): hold dispatch lock while message
4632 (_dbus_connection_block_for_reply): hold dispatch lock while we
4633 block for the reply, so nobody steals our reply
4634 (dbus_connection_pop_message): hold the dispatch lock while we
4637 2005-02-13 Havoc Pennington <hp@redhat.com>
4639 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4640 (_dbus_connection_release_dispatch)
4641 (_dbus_connection_acquire_io_path)
4642 (_dbus_connection_release_io_path): make the mutex and condvar
4643 control access to the "acquired" flag. Drop the connection lock
4644 while waiting on the condvar. Hopefully these are baby steps in
4645 roughly the right direction.
4647 2005-02-13 Havoc Pennington <hp@redhat.com>
4649 * dbus/dbus-connection.c: use separate mutexes for the condition
4650 variables; this is some kind of baseline for sanity, but the
4651 condition variables still aren't used correctly afaict
4653 2005-02-13 Havoc Pennington <hp@redhat.com>
4655 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4658 * dbus/dbus-connection.c
4659 (_dbus_connection_detach_pending_call_unlocked): add this
4661 Initial semi-correct pass through to fix thread locking; there are
4662 still some issues with the condition variable paths I'm pretty
4665 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4668 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4669 rename to add _unlocked
4670 (struct DBusConnection): move "dispatch_acquired" and
4671 "io_path_acquired" to use only one bit each.
4672 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4673 (dbus_connection_set_watch_functions): hacky fix to reentrancy
4674 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
4675 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
4676 (_dbus_connection_remove_timeout)
4677 (_dbus_connection_toggle_timeout): drop lock when calling out to
4678 user functions; done in a hacky/bad way.
4679 (_dbus_connection_send_and_unlock): add a missing unlock
4680 (_dbus_connection_block_for_reply): add a missing unlock
4682 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4683 drop lock in a hacky probably unsafe way to call out to user
4686 2005-02-12 Havoc Pennington <hp@redhat.com>
4688 * tools/dbus-tree-view.c (info_set_func_text): display more
4691 * bus/driver.c (bus_driver_handle_list_services): list the bus
4694 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4696 * glib/dbus-gidl.c (signal_info_get_n_args): new function
4697 (method_info_get_n_args): new function
4699 2005-02-12 Havoc Pennington <hp@redhat.com>
4701 * bus/driver.c (bus_driver_handle_introspect): add introspection
4704 2005-02-12 Havoc Pennington <hp@redhat.com>
4706 * bus/driver.c: put the signature of each bus driver method in the
4707 table of handlers and check it on incoming calls; this isn't
4708 really useful, but going to add introspect support in a minute.
4710 2005-02-11 Joe Shaw <joeshaw@novell.com>
4712 * mono/Connection.cs: The unpredictability of finalizers in mono
4713 prevents us from deterministically disconnecting the filters from
4714 the Service class's finalizer, so move tracking of filters and
4715 matches here. Add API for that.
4717 * mono/Service.cs: Remove the code, add code which calls the
4718 methods now on the Connection class.
4720 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
4722 * python/dbus.py (class Sender): added to support dbus signals better
4723 (Bus::add_signal_receiver): added expand_args parameter which defaults
4724 to True. When expand args is True the signal handler will pass the
4725 message arguments as parameters to the signal handler. If False
4726 revert to previous behavior where the signal handler must get the
4727 argument list from the message. This is to help port applications
4728 like HAL that have a tendancy to send variable length argument lists.
4729 self._match_rule_to_receivers is now a dict of dicts.
4730 (Bus::remove_signal_receiver): pop handler off the dict intead of
4731 removing it from a list
4732 (Bus::_signal_func): change signal handlers so that interface,
4733 signal_name, service, path and message are packed into a Sender
4734 object and that is passed to the handler. If expand_args is True
4735 extract the args list from the message and append it to the parameter
4738 * python/dbus_bindings.pyx.in (class Signature): added to support
4740 (MessageIter::__init__): changed iteration limit to match D-BUS
4741 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
4742 STRUCT and VARIENT type support
4743 (MessageIter::python_value_to_dbus_sig): made recursive to support
4745 (MessageIter::append*): added Signature, dict, tuple
4748 * python/examples/example-client.py: added examples of getting tuples
4751 * python/examples/example-service.py: added examples of sending tuples
4754 * python/examples/example-signal-recipient.py: Fixed to handle new
4755 signal callback format
4757 2005-02-10 Havoc Pennington <hp@redhat.com>
4759 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4760 (call dbus_g_proxy_add_signal)
4762 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4764 (_dbus_server_new_for_domain_socket): escape the path
4766 * dbus/dbus-address.c (dbus_address_escape_value): new
4767 (dbus_address_unescape_value): new
4768 (dbus_parse_address): unescape values
4770 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4772 * doc/dbus-specification.xml: explain how to escape values in
4775 2005-02-10 Havoc Pennington <hp@redhat.com>
4777 * dbus/dbus-message-factory.c (generate_special): modify test to
4778 avoid using a non-basic dict key
4780 * dbus/dbus-marshal-validate-util.c: add test for the below
4782 * doc/dbus-specification.xml: require that dict keys are a basic
4785 * dbus/dbus-marshal-validate.c
4786 (_dbus_validate_signature_with_reason): require that dict key is a
4789 2005-02-10 Havoc Pennington <hp@redhat.com>
4791 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4792 change to be _and_unlock instead of _unlocked
4794 * dbus/dbus-connection.c
4795 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4796 have no_update so we can find this bug quickly in future
4798 2005-02-10 Havoc Pennington <hp@redhat.com>
4800 * dbus/dbus-message-util.c (verify_test_message): tests for string
4803 * dbus/dbus-message.c (dbus_message_append_args_valist): add
4804 support for arrays of string/signature/path
4806 2005-02-10 Joe Shaw <joeshaw@novell.com>
4808 * dbus/dbus-connection.c
4809 (_dbus_connection_queue_received_message_link,
4810 _dbus_connection_message_sent): Add the path to
4812 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
4813 _dbus_connection_send_preallocated_unlocked(), updated the
4814 dispatch status, and unlocks. Fixes a bug where certain
4815 situations (like a broken pipe) could cause a Disconnect message
4816 to not be sent, tricking the bus into thinking a service was still
4817 there when the process had quit.
4818 (_dbus_connection_send_preallocated): Call
4819 _dbus_connection_send_preallocated_and_unlock().
4820 (_dbus_connection_send_and_unlock): Added. Calls
4821 _dbus_connection_send_preallocated_and_unlock().
4822 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4823 (dbus_connection_send_with_reply): Update the dispatch status and
4826 * mono/Service.cs (~Service): Added. Removes the filter so that
4827 we don't get unmanaged code calling back into a GCed delegate.
4828 (RemoveFilter); Added.
4830 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
4832 * dbus/dbus-message.c (dbus_message_iter_open_container):
4833 - Removed check for iterator type being an array because
4834 get_arg_type does not work with writer iterators
4835 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4837 2005-02-07 Havoc Pennington <hp@redhat.com>
4839 * doc/dbus-specification.xml: some more language cleanups; add
4840 stuff about how to deal with invalid protocol and extension
4841 points; add _ to allowed chars in auth commands; add EXTENSION_
4844 2005-02-06 Havoc Pennington <hp@redhat.com>
4846 * s/expected/required/ in a couple places for clarity
4848 2005-02-07 Colin Walters <walters@verbum.org>
4850 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4851 sender or proposed_recipient.
4853 2005-02-06 Havoc Pennington <hp@redhat.com>
4855 * dbus/dbus-message-factory.c (generate_special): more tests
4857 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4858 array length that exceeds the maximum
4860 2005-02-05 Havoc Pennington <hp@redhat.com>
4862 * dbus/dbus-message-factory.c (generate_special): more test cases,
4865 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4866 reason why a signature was invalid
4868 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4869 skip the length of the string before we look at it in validation
4871 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4874 * dbus/dbus-message.c (_dbus_message_loader_new): default
4875 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4877 2005-02-05 Havoc Pennington <hp@redhat.com>
4879 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4880 if the signature of a variant was empty
4881 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4882 struct with no element type)
4884 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4885 mangled messages to break things
4887 2005-02-04 Havoc Pennington <hp@redhat.com>
4889 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4890 g_quark_try_string() so it actually can return 0
4891 (dbus_g_proxy_connect_signal): ditto
4893 2005-02-04 Havoc Pennington <hp@redhat.com>
4895 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4897 (tristring_from_message): assert cleanly on null path/interface
4898 (should not be possible though I decided later)
4899 (dbus_g_proxy_dispose): move proxy manager unregistration here
4900 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4901 g_return_if_fail() checks
4903 2005-02-04 Havoc Pennington <hp@redhat.com>
4905 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4907 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4908 (with some minor changes)
4910 * doc/dbus-specification.xml: add deprecated attribute to
4911 introspection format
4913 2005-01-31 Havoc Pennington <hp@redhat.com>
4915 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4916 think it's sort of right
4918 2005-01-30 Havoc Pennington <hp@redhat.com>
4920 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4922 2005-01-30 Havoc Pennington <hp@redhat.com>
4924 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4926 * autogen.sh: change to autotools 1.9
4928 * glib/dbus-gproxy.c: completely change how signals work
4929 (dbus_g_proxy_add_signal): new function to specify signature of a
4931 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4932 and g_warning if the incoming message has the wrong signature.
4934 2005-01-30 Havoc Pennington <hp@redhat.com>
4936 * tools/dbus-names-model.c (have_names_notify): fix this
4938 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4939 up the string array handling a bit
4941 2005-01-30 Havoc Pennington <hp@redhat.com>
4943 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4944 (dbus_g_pending_call_cancel): new function
4946 * dbus/dbus-glib.h: move GType decls for connection/message here;
4947 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4948 here, just kind of rationalizing how we handle all that
4950 * tools/dbus-names-model.c: new file for a tree model listing the
4953 * tools/dbus-tree-view.c (model_new): use proper typing on the
4956 2005-01-30 Havoc Pennington <hp@redhat.com>
4958 * glib/dbus-gmain.c: add a custom GSource back that just checks
4959 whether the message queue has anything in it; otherwise, there are
4960 cases where we won't see messages in the queue since there was no
4961 IO visible to the glib main loop
4963 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4964 increase default message timeout to 25 seconds
4966 2005-01-30 Havoc Pennington <hp@redhat.com>
4968 * test/glib/test-profile.c (no_bus_stop_server): remove the
4969 warning about the g_warning that I just fixed
4971 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4972 custom source, seems to be a lot easier to understand and work
4975 2005-01-30 Havoc Pennington <hp@redhat.com>
4977 I think this main loop thing is conceptually broken, but here are
4978 some band aids. I'll maybe rewrite it in a minute.
4980 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4981 custom GSource, so don't pass it in; confusing
4982 (gsource_server_finalize, gsource_connection_finalize): add
4983 finalize handlers that remove all the watches.
4985 2005-01-30 Havoc Pennington <hp@redhat.com>
4987 * glib/dbus-gobject.c (introspect_properties): fix the XML
4990 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4991 which effectively detects the use of freed messages
4993 * glib/dbus-gobject.c (handle_introspect): modify and return the
4994 reply message instead of the incoming message
4996 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4997 gee, maybe it should SEND THE XML instead of just making a string
4998 and freeing it again ;-)
5000 * tools/dbus-print-message.c (print_message): improve printing of
5003 * configure.in: add debug-glib.service to the output
5005 2005-01-30 Havoc Pennington <hp@redhat.com>
5007 dbus-viewer introspected and displayed the bus driver
5009 * dbus/dbus-object-tree.c
5010 (object_tree_test_iteration): add tests for a handler registered on "/"
5012 * dbus/dbus-object-tree.c
5013 (_dbus_decompose_path): fix to handle path "/" properly
5014 (run_decompose_tests): add tests for path decomposition
5016 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5019 * glib/dbus-gobject.c (handle_introspect): fix quotes
5021 * test/glib/run-test.sh: support launching the bus, then running
5024 * test/glib/test-service-glib.c (main): put in a trivial gobject
5025 subclass and register it on the connection
5027 * bus/driver.c (bus_driver_handle_introspect): implement
5028 introspection of the bus driver service
5030 * dbus/dbus-protocol.h: add #defines for the XML namespace,
5031 identifiers, doctype decl
5033 * bus/driver.c (bus_driver_handle_get_service_owner): handle
5034 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
5035 returning the service unchanged.
5036 (bus_driver_handle_message): remove old check for reply_serial in
5037 method calls, now the message type deals with that
5038 (bus_driver_handle_message): handle NULL interface
5040 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5042 * glib/dbus-gloader-expat.c (description_load_from_string): allow
5045 * tools/dbus-viewer.c: add support for introspecting a service on
5048 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5049 (dbus_g_pending_call_unref): add
5051 2005-01-29 Havoc Pennington <hp@redhat.com>
5053 * tools/dbus-tree-view.c: add support for displaying properties.
5054 (run dbus-viewer with an introspect xml file as arg, then resize
5055 the window so the tree elements show up, not sure what that is)
5057 * glib/dbus-gobject.c (handle_introspect): return
5058 org.freedesktop.Properties and org.freedesktop.Introspectable
5059 interfaces when we are introspected.
5061 * doc/dbus-specification.xml: allow empty interface name when
5064 2005-01-29 Havoc Pennington <hp@redhat.com>
5066 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5067 though it uses glib, it could be extended for any binding in
5070 * glib/dbus-gobject.c (gobject_message_function): change to the
5071 new way properties work
5073 * dbus/dbus-protocol.h: add the new interfaces
5075 * doc/dbus-specification.xml: document the introspection format,
5076 Introspectable interface, and add an org.freedesktop.Properties
5079 * glib/dbus-gparser.c: add support for a <property> element
5081 * glib/dbus-gidl.c: add PropertyInfo
5083 * glib/dbus-gobject.c (handle_introspect): put the outermost
5084 <node> outside the signal and property descriptions.
5085 (introspect_properties): export properties as <property> rather
5086 than as method calls
5088 2005-01-28 Havoc Pennington <hp@redhat.com>
5090 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5091 related to authentication protocol
5093 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
5095 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5096 - BUS_ACTIVATION -> BUS_STARTER
5097 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5098 - class MessageIter (__init__): Added recursion checking
5099 so we throw a nice error instead of just disconnecting from the
5101 (get): Added arg_type parameter for recursion.
5102 Removed the nil type
5103 Added signiture type placeholder (not implemented)
5104 Added struct type placeholder (not implemented)
5105 Added varient type placeholder (not implemented)
5106 Commented out dict type for now
5107 (get_element_type): renamed from get_array_type
5108 (get_*): changed to use the dbus_message_iter_get_basic API
5109 (get_*_array): removed in favor of recursive get_array method
5110 (get_array): new recursive method which calls get to marshal
5111 the elements of the array
5112 (value_to_dbus_sig): New method returns the corrasponding
5113 dbus signiture to a python value
5114 (append): Comment out dict handling for now
5115 Handle lists with the new recursive API
5116 Comment out None handling for now
5117 (append_nil): removed
5118 (append_*): changed to use dbus_message_iter_append_basic API
5119 (append_*_array): removed in favor of recursive append_array
5121 (__str__): Make it easier to print out recursive iterators
5123 - class Message (__str__): moved type inspection to the
5124 MessageIter class' __str__ method
5125 (get_iter): Added an append parameter wich defaults to False
5126 If True use the new API's to create an append iterator
5128 * python/dbus.py: Update to use new bindings API
5129 - TYPE_ACTIVATION -> TYPE_STARTER
5130 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5131 - class ActivationBus -> class StarterBus
5132 - class RemoteObject (__call__): get an append iterator
5133 - (_dispatch_dbus_method_call): get an append iterator
5134 - class Object (emit_signal): get an append iterator
5136 * python/examples/: Fixed up the examples to work with the new API
5138 2005-01-28 Joe Shaw <joeshaw@novell.com>
5140 * configure.in: Bump version up to 0.30.
5142 * HACKING: Add a release item to bump the version number up after
5145 2005-01-28 Havoc Pennington <hp@redhat.com>
5147 * doc/dbus-specification.xml: update to describe 16-bit types and
5150 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5153 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5156 * dbus/dbus-marshal-recursive.c: implement
5158 2005-01-27 Havoc Pennington <hp@redhat.com>
5160 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5162 * configure.in: find the right type for 16 and 32 bit ints as well
5165 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5166 the 16-bit types so people don't have to stuff them in 32-bit or
5169 2005-01-27 Havoc Pennington <hp@redhat.com>
5171 * dbus/dbus-message.c: byteswap the message if you init an
5172 iterator to read/write from it
5174 * dbus/dbus-marshal-byteswap.c: new file implementing
5175 _dbus_marshal_byteswap()
5177 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5179 2005-01-26 Havoc Pennington <hp@redhat.com>
5181 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5182 build, apparently - nobody noticed?)
5184 2005-01-26 Havoc Pennington <hp@redhat.com>
5186 * dbus/dbus-marshal-recursive.h: remove todo comment
5188 2005-01-25 Joe Shaw <joeshaw@novell.com>
5190 * Land the mono binding changes to conform to the new APIs.
5192 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5193 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5195 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5196 type code as a string.
5197 (InitAppending): Rename dbus_message_append_iter_init() to
5198 dbus_message_iter_init_append().
5200 * mono/BusDriver.cs: Rename ServiceEventHandler to
5201 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5202 Rename ServiceOwnerChanged to NameOwnerChanged.
5204 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5207 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5209 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5210 dbus_bus_acquire_service() to dbus_bus_request_name().
5212 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5213 of Type.UnderlyingSystemType to get the correct element type for
5215 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5216 dbus_message_get_{element|arg}_type() instead of
5217 dbus_message_iter_init_array_iterator().
5218 (Append): Replace dbus_message_iter_append_array() with
5219 dbus_message_iter_open_container() and
5220 dbus_message_iter_close_container().
5222 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5223 types have been removed.
5225 * mono/DBusType/*.cs: Replace calls of
5226 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5227 but specify the type in the DllImport extern declaration. Ditto
5228 for dbus_message_iter_append_[type]() ->
5229 dbus_message_iter_append_basic().
5231 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5232 NameOwnerChangedHandler.
5234 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5236 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5237 - get_base_service -> get_unique_name
5238 - bus_get_base_service -> bus_get_unique_name
5239 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5240 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5241 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5242 - bus_activate_service -> bus_start_service_by_name
5243 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5244 - bus_acquire_service -> bus_request_name
5245 - dbus_bus_acquire_service -> dbus_bus_request_name
5246 - bus_service_exists -> bus_name_has_owner
5247 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5249 * python/dbus.py: Rename of methods
5250 - activate_service -> start_service_by_name
5251 - bus_acquire_service -> bus_request_name
5252 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5253 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5256 2005-01-24 Joe Shaw <joeshaw@novell.com>
5258 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5259 signature for the method that can't be found.
5261 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5262 the message has any arguments, we need to call
5263 _dbus_type_reader_get_current_type(), not
5264 _dbus_type_reader_has_next().
5266 2005-01-24 Havoc Pennington <hp@redhat.com>
5268 * dbus/dbus-message-factory.c: more testing of message validation
5270 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5273 2005-01-23 Havoc Pennington <hp@redhat.com>
5275 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5276 get this all working, not many tests in the framework yet though
5278 2005-01-22 Havoc Pennington <hp@redhat.com>
5280 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5281 tutorial, based on work from David Wheeler.
5283 2005-01-21 Havoc Pennington <hp@redhat.com>
5285 * dbus/dbus-bus.c: add more return_if_fail checks
5287 * dbus/dbus-message.c (load_message): have the "no validation"
5288 mode (have to edit the code to toggle the mode for now though)
5290 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5291 skips all validation; I want to use this at least for benchmark
5292 baseline, I'm not sure if it should be a publicly-available switch.
5294 2005-01-21 Havoc Pennington <hp@redhat.com>
5296 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5297 toplevel doxygen group as the low-level API stuff
5299 * dbus/dbus.h: note that libdbus is the low-level API
5301 2005-01-20 Havoc Pennington <hp@redhat.com>
5303 * update-dbus-docs.sh: script to update docs on the web site, only
5304 works for me though. neener.
5306 2005-01-20 Havoc Pennington <hp@redhat.com>
5308 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5309 code can reveal bugs in it
5311 2005-01-20 Havoc Pennington <hp@redhat.com>
5313 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5314 select() version, patches from Tor Lillqvist
5316 2005-01-20 Havoc Pennington <hp@redhat.com>
5318 * doc/dbus-tutorial.xml: replace > with >
5320 * bus/services.c (bus_registry_acquire_service): validate the name
5321 and return a better error if it's no good.
5323 * doc/dbus-specification.xml: note NO_AUTO_START change
5325 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5326 from AUTO_START, we're toggling the default
5328 * bus/dispatch.c: adapt the tests to change of auto-start default
5330 2005-01-18 Havoc Pennington <hp@redhat.com>
5332 * rename dbus-daemon-1 to dbus-daemon throughout
5334 2005-01-18 Havoc Pennington <hp@redhat.com>
5336 * Throughout, grand renaming to strip out the use of "service",
5337 just say "name" instead (or "bus name" when ambiguous). Did not
5338 change the internal code of the message bus itself, only the
5339 programmer-facing API and messages.
5341 * doc/dbus-specification.xml: further update the message bus section
5343 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5346 2005-01-17 Havoc Pennington <hp@redhat.com>
5348 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5351 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5352 "invalid name character" not only non-ASCII
5354 * doc/dbus-specification.xml: further update spec, message bus
5355 parts are still out-of-date but the marshaling etc. stuff is now
5358 2005-01-17 Havoc Pennington <hp@redhat.com>
5360 * doc/dbus-specification.xml: partially update spec
5362 2005-01-17 Havoc Pennington <hp@redhat.com>
5364 * Throughout, align variant bodies according to the contained
5365 type, rather than always to 8. Should save a fair bit of space in
5368 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5369 fix handling of case where p == end
5371 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5373 2005-01-17 Havoc Pennington <hp@redhat.com>
5375 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5377 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5378 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5379 are marshaling/unmarshaling a boolean.
5381 2005-01-16 Havoc Pennington <hp@redhat.com>
5383 This is about it on what can be disabled/deleted from libdbus
5384 easily, back below 150K anyhow. Deeper cuts are more work than
5385 just turning the code off as I've done here.
5387 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5388 signed int convenience funcs
5390 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5393 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5394 things out of libdbus
5396 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5398 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5399 tests-enabled-only, though it should probably be deleted)
5401 * dbus/dbus-message-util.c: same stuff
5403 * dbus/dbus-auth-util.c: same stuff
5405 2005-01-16 Havoc Pennington <hp@redhat.com>
5407 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5409 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5410 way for stripping down dbus-userdb.c stuff included in libdbus.
5411 Rename _dbus_parse_uid for consistency.
5413 2005-01-16 Havoc Pennington <hp@redhat.com>
5415 * dbus/dbus-internals.c (_dbus_real_assert): print the function
5416 name the assertion failed in
5418 * dbus/dbus-internals.h (_dbus_return_if_fail)
5419 (_dbus_return_val_if_fail): assert that the name of the function
5420 containing the check doesn't start with '_', since we only want to
5421 use checks on public functions
5423 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5424 checks to assertions
5426 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5427 change checks to asserts for private function
5429 * dbus/dbus-message.c (_dbus_message_set_serial): checks
5430 to asserts for private function
5432 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5433 broken assertion that was breaking make check
5434 (_dbus_type_reader_array_is_empty): remove this rather than fix
5435 it, was only used in assertions
5437 2005-01-16 Havoc Pennington <hp@redhat.com>
5439 * test/unused-code-gc.py: hacky script to find code that's used
5440 only by the bus (not libdbus) or used only by tests or not used at
5441 all. It has some false alarms, but looks like we can clean up a
5442 lot of size from libdbus.
5444 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5445 dbus/Makefile.am: initially move 10K of binary size out of libdbus
5447 2005-01-16 Havoc Pennington <hp@redhat.com>
5449 * Add and fix docs according to Doxygen warnings throughout
5452 * dbus/dbus-marshal-recursive.c
5453 (_dbus_type_reader_array_is_empty): change this to just call
5454 array_reader_get_array_len() and make it static
5456 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5458 (dbus_message_iter_init_append): rename from append_iter_init
5460 * dbus/dbus-marshal-recursive.c
5461 (_dbus_type_reader_get_element_type): rename from
5462 _dbus_type_reader_get_array_type
5464 2005-01-15 Havoc Pennington <hp@redhat.com>
5466 * test/glib/test-profile.c (with_bus_server_filter): fix crash
5468 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5469 when DBUS_DISABLE_ASSERT
5470 (_dbus_marshal_set_basic): be sure we align for the string length
5472 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5475 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5476 inline macro version
5477 (_dbus_string_set_byte): provide inline macro version
5479 2005-01-15 Havoc Pennington <hp@redhat.com>
5481 * Land the new message args API and type system.
5483 This patch is huge, but the public API change is not
5484 really large. The set of D-BUS types has changed somewhat,
5485 and the arg "getters" are more geared toward language bindings;
5486 they don't make a copy, etc.
5488 There are also some known issues. See these emails for details
5490 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5491 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5493 * dbus/dbus-marshal-*: all the new stuff
5495 * dbus/dbus-message.c: basically rewritten
5497 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5498 freed blocks to be all non-nul bytes so using freed memory is less
5499 likely to work right
5501 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5502 DBUS_FAIL_MALLOC=N environment variable, so you can do
5503 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5504 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5507 * qt/message.cpp: port to the new message args API
5508 (operator<<): use str.utf8() rather than str.unicode()
5509 (pretty sure this is right from the Qt docs?)
5511 * glib/dbus-gvalue.c: port to the new message args API
5513 * bus/dispatch.c, bus/driver.c: port to the new message args API
5515 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5516 "locked" flag to TRUE and align_offset to 0; I guess we never
5517 looked at these anyhow, but seems cleaner.
5519 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5520 move allocation padding macro to this header; use it to implement
5521 (_DBUS_STRING_STATIC): ability to declare a static string.
5523 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5524 change to return TRUE if the interface is not set.
5526 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5527 to dbus-marshal-validate.[hc]
5529 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5532 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5533 to dbus-marshal-*.[hc]
5535 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5536 function here from dbus-marshal.c
5538 2005-01-12 Joe Shaw <joeshaw@novell.com>
5540 * NEWS: Update for 0.23.
5542 * configure.in: Release 0.23.
5544 2005-01-12 Joe Shaw <joeshaw@novell.com>
5546 * mono/Makefile.am, mono/example/Makefile.am: Always build the
5547 dbus DLL with --debug. Clean up after the .mdb files this leaves
5550 * mono/doc/Makefile.am: Need to uninstall the docs on "make
5553 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5554 is an enum, get the enum's underlying type. Another mono
5557 2005-01-11 Joe Shaw <joeshaw@novell.com>
5559 Patch from Sjoerd Simons <sjoerd@luon.net>
5561 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5562 DESTDIR. It breaks stuff.
5564 2005-01-11 Joe Shaw <joeshaw@novell.com>
5566 Patch from Tambet Ingo <tambet@ximian.com>
5568 * mono/DBusType/Array.cs (Get): Get the underlying element type by
5569 calling type.GetElementType(). The code previously depended on
5570 broken Mono behavior, which was fixed in Mono 1.1.3.
5572 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5573 Activator.CreateInstance() so that the class's constructor is
5574 called with the right parameters.
5576 2005-01-11 Joe Shaw <joeshaw@novell.com>
5578 Patch from Timo Teräs <ext-timo.teras@nokia.com>
5580 * dbus/dbus-connection.c
5581 (_dbus_connection_queue_received_message_link): Call
5582 _dbus_connection_remove_timeout() instead of the _locked()
5583 variant, since it's always called from
5584 _dbus_connection_handle_watch(), which handles the locking.
5585 Removed the _locked() variant since it's no longer used.
5587 2005-01-03 Havoc Pennington <hp@redhat.com>
5589 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5592 2004-12-26 Havoc Pennington <hp@redhat.com>
5594 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5596 2005-01-03 Havoc Pennington <hp@redhat.com>
5598 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5601 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5603 2005-01-02 Havoc Pennington <hp@redhat.com>
5605 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5607 2005-01-01 Havoc Pennington <hp@redhat.com>
5609 * configure.in: add -Wfloat-equal
5611 2005-01-01 Havoc Pennington <hp@redhat.com>
5613 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
5614 for a variety of reasons '==' doesn't do this.
5616 2004-12-31 Havoc Pennington <hp@redhat.com>
5618 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5619 I keep wishing I had
5621 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5623 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5625 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5627 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5628 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5629 dbus-protocol.h. Because they are defines and not enums they are not
5632 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
5634 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5635 dbus_bus_activate_service
5637 * python/dbus.py (Bus.activate_service): activate a service on the
5640 2004-12-24 Havoc Pennington <hp@redhat.com>
5642 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5643 file format has also changed and I haven't adapted to that yet
5645 * Makefile.am: load .gcno files from latest gcc
5647 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
5648 * Patch from Rob Taylor <robtaylor@fastmail.fm>
5650 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5653 * python/dbus.py (get_unix_user): Added binding to
5654 call dbus_bindings.bus_get_unix_user
5656 * python/extract.py: Modified the proto_pat regex to
5657 handle unsigned long
5659 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5661 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5662 better POSIX compliance.
5664 2004-12-19 Havoc Pennington <hp@redhat.com>
5666 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
5667 (_dbus_string_insert_8_aligned): new functions
5669 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5671 2004-12-18 Havoc Pennington <hp@redhat.com>
5673 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5676 * dbus/dbus-message.c: fix a comment, and add a still-unused
5677 not-implemented function
5679 * dbus/dbus-marshal.h: fix comment
5681 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5683 2004-12-17 Joe Shaw <joeshaw@novell.com>
5685 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5686 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5687 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5688 Type.UnderlyingSystemType to get the actual system type
5689 underneath. This code previously depended on the broken Mono
5690 behavior, which was fixed in 1.1.3.
5692 2004-11-27 Havoc Pennington <hp@redhat.com>
5694 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5696 (_dbus_string_get_const_data): inline when asserts are disabled
5698 * dbus/dbus-message.c: record the _dbus_current_generation of
5699 creation so we can complain if dbus_shutdown() is used improperly.
5700 Do this only if checks are enabled.
5702 * dbus/dbus-connection.c: ditto
5704 2004-11-26 Havoc Pennington <hp@redhat.com>
5706 * test/glib/test-profile.c: add with_bus mode to profile echoes
5707 that go through the bus.
5709 * test/glib/run-test.sh: add ability to run test-profile
5711 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5714 2004-11-26 Havoc Pennington <hp@redhat.com>
5716 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5717 thing was implemented
5719 2004-11-26 Havoc Pennington <hp@redhat.com>
5721 * test/glib/test-profile.c: tweak a bit, add support for some
5722 made-up minimal malloc overhead with plain sockets, since in
5723 real life some sort of buffers are unavoidable thus we could
5724 count them in the theoretical best case
5726 2004-11-26 Havoc Pennington <hp@redhat.com>
5728 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5729 where I was trying to cache one too many messages
5731 2004-11-26 Havoc Pennington <hp@redhat.com>
5733 * dbus/dbus-message.c: reimplement message cache as an array which
5734 makes the cache about twice as fast and saves maybe 1.5% overall
5736 2004-11-26 Havoc Pennington <hp@redhat.com>
5738 * dbus/dbus-threads.c (init_global_locks): forgot to put the
5739 message cache lock here
5741 2004-11-26 Havoc Pennington <hp@redhat.com>
5743 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5744 the "char byte_order" next to each other to save 4 bytes
5745 (dbus_message_new_empty_header): reduce preallocation, since the
5746 message cache should achieve a similar effect
5747 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5748 message cache that keeps a few DBusMessage around in a pool,
5749 another 8% speedup or so.
5751 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5753 2004-11-25 Havoc Pennington <hp@redhat.com>
5755 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5756 to write, without reading or blocking, try it before the poll()
5757 and skip the poll() if nothing remains to write. This is about a
5758 3% speedup in the echo client/server
5760 2004-11-25 Havoc Pennington <hp@redhat.com>
5762 The primary change here is to always write() once before adding
5763 the write watch, which gives us about a 10% performance increase.
5765 * dbus/dbus-transport-unix.c: a number of modifications to cope
5766 with removing messages_pending
5767 (check_write_watch): properly handle
5768 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5769 messages_pending stuff
5770 (check_read_watch): properly handle WAITING_FOR_MEMORY and
5772 (unix_handle_watch): after writing, see if the write watch can be
5774 (unix_do_iteration): assert that write_watch/read_watch are
5775 non-NULL rather than testing that they aren't, since they
5776 aren't allowed to be NULL. check_write_watch() at the end so
5777 we add the watch if we did not finish writing (e.g. got EAGAIN)
5779 * dbus/dbus-transport-protected.h: remove messages_pending call,
5780 since it resulted in too much inefficient watch adding/removing;
5781 instead we now require that the transport user does an iteration
5782 after queueing outgoing messages, and after trying the first
5783 write() we add a write watch if we got EAGAIN or exceeded our
5784 max bytes to write per iteration setting
5786 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5789 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5790 freed and then accessed, valgrind flagged this bug, fix it
5792 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5793 as the last valid field plus 1, where really it is equal to the
5794 last valid field. Corrects some message corruption issues.
5796 * dbus/dbus-mainloop.c: verbosity changes
5798 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5799 instead of aborting in one of the test codepaths
5801 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5802 caused not printing the pid ever again if a verbose was missing
5803 the newline at the end
5804 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5806 * dbus/dbus-connection.c: verbosity changes;
5807 (dbus_connection_has_messages_to_send): new function
5808 (_dbus_connection_message_sent): no longer call transport->messages_pending
5809 (_dbus_connection_send_preallocated_unlocked): do one iteration to
5810 try to write() immediately, so we can avoid the write watch. This
5811 is the core purpose of this patchset
5812 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5813 dump the outgoing message queue, so nobody will get confused
5814 trying to send them or thinking stuff is pending to be sent
5816 * bus/test.c: verbosity changes
5818 * bus/driver.c: verbosity/assertion changes
5820 * bus/dispatch.c: a bunch of little tweaks to get it working again
5821 because this patchset changes when/where you need to block.
5823 2004-11-23 Havoc Pennington <hp@redhat.com>
5825 * test/glib/test-profile.c: modify to accept a plain_sockets
5826 argument in which case it will bench plain sockets instead of
5827 libdbus, for comparison purposes.
5829 2004-11-22 Havoc Pennington <hp@redhat.com>
5831 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5832 threads for more time, so sysprof can get a grip on it.
5834 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5837 2004-11-13 Havoc Pennington <hp@redhat.com>
5839 * test/glib/test-profile.c: fix this thing up a bit
5841 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5842 preallocation sizes by a fair bit; not sure if this will be an
5843 overall performance win or not, but it does reduce reallocs.
5845 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5846 the test hack that forced constant realloc if asserts are
5847 disabled, so we can profile sanely. Sprinkle in some
5848 _DBUS_UNLIKELY() which are probably pointless, but before I
5849 noticed the real performance problem I put them in.
5850 (_dbus_string_validate_utf8): micro-optimize this thing a little
5851 bit, though callgrind says it didn't help; then special-case
5852 ascii, which did help a lot; then be sure we detect nul bytes as
5853 invalid, which is a bugfix.
5854 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5855 superstition; use memset to nul the padding instead of a manual
5857 (_dbus_string_get_length): inline this as a
5858 macro; it showed up in the profile because it's used for loop
5861 2004-11-10 Colin Walters <walters@verbum.org>
5863 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5866 2004-11-09 Colin Walters <walters@verbum.org>
5868 * dbus/dbus-string.c (_dbus_string_get_length): New
5869 function, writes DBusString to C buffer.
5871 * dbus/dbus-string.h: Prototype it.
5873 * dbus/dbus-message.c (dbus_message_type_to_string): New
5874 function, converts message type into C string.
5876 * dbus/dbus-message.h: Prototype it.
5878 * bus/selinux.c (bus_selinux_check): Take source pid,
5879 target pid, and audit data. Pass audit data to
5881 (log_audit_callback): New function, appends extra
5883 (bus_selinux_allows_acquire_service): Also take
5884 service name, add it to audit data.
5885 (bus_selinux_allows_send): Also take message
5886 type, interface, method member, error name,
5887 and destination, and add them to audit data.
5888 (log_cb): Initialize func_audit.
5890 * bus/selinux.h (bus_selinux_allows_acquire_service)
5891 (bus_selinux_allows_send): Update prototypes
5893 * bus/services.c (bus_registry_acquire_service): Pass
5894 service name to bus_selinux_allows_acquire_service.
5896 * bus/bus.c (bus_context_check_security_policy): Pass
5897 additional audit data. Move assignment of dest
5900 2004-11-07 Colin Walters <walters@verbum.org>
5902 * dbus/dbus-transport-unix.c (do_authentication): Always
5903 initialize auth_completed.
5905 2004-11-07 Colin Walters <walters@verbum.org>
5907 * bus/bus.c (load_config): Break into three
5908 separate functions: process_config_first_time_only,
5909 process_config_every_time, and process_config_postinit.
5910 (process_config_every_time): Move call of
5911 bus_registry_set_service_context_table into
5912 process_config_postinit.
5913 (process_config_postinit): New function, does
5914 any processing that needs to happen late
5915 in initialization (and also on reload).
5916 (bus_context_new): Instead of calling load_config,
5917 open config parser here and call process_config_first_time_only
5918 and process_config_every_time directly. Later, after
5919 we have forked but before changing UID,
5920 invoke bus_selinux_full_init, and then call
5921 process_config_postinit.
5922 (bus_context_reload_config): As in bus_context_new,
5923 load parse file inside here, and call process_config_every_time
5924 and process_config_postinit.
5926 * bus/services.h, bus/services.c
5927 (bus_registry_set_service_context_table): Rename
5928 from bus_registry_set_sid_table. Take string hash from config
5929 parser, and convert them here into SIDs.
5931 * bus/config-parser.c (struct BusConfigParser): Have
5932 config parser only store a mapping of service->context
5934 (merge_service_context_hash): New function.
5935 (merge_included): Merge context string hashes instead
5936 of using bus_selinux_id_table_union.
5937 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5938 simply create a new string hash.
5939 (bus_config_parser_unref): Unref it.
5940 (start_selinux_child): Simply insert strings into hash,
5941 don't call bus_selinux_id_table_copy_over.
5943 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5944 (bus_selinux_id_table_copy_over): Delete.
5946 2004-11-03 Colin Walters <walters@verbum.org>
5948 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5951 2004-11-03 Colin Walters <walters@verbum.org>
5953 * bus/test-main.c (test_pre_hook): Fix test logic,
5954 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5956 2004-11-02 Colin Walters <walters@redhat.com>
5958 * bus/selinux.c (bus_selinux_init): Split into two functions,
5959 bus_selinux_pre_init and bus_selinux_post_init.
5960 (bus_selinux_pre_init): Just determine whether SELinux is
5962 (bus_selinux_post_init): Do everything else.
5964 * bus/main.c (main): Call bus_selinux_pre_init before parsing
5965 config file, and bus_selinux_post_init after. This ensures that
5966 we don't lose the policyreload notification thread that
5967 bus_selinux_init created before forking previously.
5969 * bus/test-main.c (test_pre_hook): Update for split.
5971 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
5973 Patch from Johan Fischer <linux@fischaz.com>
5975 * mono/doc/Makefile.am (install-data-local): Added directory
5978 2004-10-29 Colin Walters <walters@redhat.com>
5980 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5981 parameter for fd to write pid to.
5983 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5985 * bus/bus.c (bus_context_new): Pass print_pid_fd
5986 to _dbus_become_daemon (bug #1720)
5988 2004-10-29 Colin Walters <walters@redhat.com>
5990 Patch from Ed Catmur <ed@catmur.co.uk>
5992 * mono/doc/Makefile.am (install-data-local): Handle
5995 2004-10-29 Colin Walters <walters@redhat.com>
5997 * bus/.cvsignore, qt/.cvsignore: Update.
5999 2004-10-29 Colin Walters <walters@redhat.com>
6001 Patch from Kristof Vansant <de_lupus@pandora.be>
6003 * configure.in: Detect Slackware.
6004 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6005 * bus/rc.messagebus.in: New file.
6007 2004-10-29 Colin Walters <walters@redhat.com>
6009 * tools/dbus-monitor.c (filter_func): Return
6010 DBUS_HANDLER_RESULT_HANDLED in filter function
6012 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6014 2004-10-29 Colin Walters <walters@redhat.com>
6016 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6018 * bus/services.c (bus_registry_acquire_service):
6019 Correctly retrieve service name from DBusString
6022 2004-10-29 Colin Walters <walters@redhat.com>
6024 * dbus/dbus-glib.h: Update documentation to not
6025 refer to internal APIs.
6027 2004-10-27 Joe Shaw <joeshaw@novell.com>
6029 * mono/Arguments.cs (GetDBusTypeConstructor):
6030 type.UnderlyingSystemType will return "System.Byte" if you do it
6031 on "byte[]", which is not what we want. So check the type.IsArray
6032 property and use System.Array instead.
6034 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
6036 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6037 the DBusUserInfo structure since this is passed into the function.
6038 This would cause a double free when the function that allocated
6039 the structure would try to free it when an error occured.
6041 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6042 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6043 for service activation to avoid 32bit/64bit parallel install issues
6045 2004-10-21 Colin Walters <walters@verbum.org>
6047 * AUTHORS: Fix my email address, the @gnu.org one
6048 has been bouncing for some time. Also add J5.
6050 2004-10-21 Colin Walters <walters@verbum.org>
6052 * dbus/dbus-transport-unix.c (do_authentication): Return
6053 authentication status to callers.
6054 (unix_handle_watch): If we completed authentication this round,
6055 don't do another read. Instead wait until the next iteration,
6056 after we've read any pending data in the auth buffer.
6057 (unix_do_iteration): Ditto.
6058 (unix_handle_watch): Updated for new do_authentication prototype.
6060 2004-10-18 Colin Walters <walters@verbum.org>
6062 * bus/selinux.c (bus_selinux_enabled): Handle
6063 --disable-selinux case.
6065 2004-10-18 Colin Walters <walters@verbum.org>
6067 * bus/selinux.h: Add bus_selinux_enabled.
6069 * bus/selinux.c (bus_selinux_enabled): Implement it.
6071 * bus/config-parser.c (struct include): Add
6072 if_selinux_enabled member.
6073 (start_busconfig_child): Parse if_selinux_enabled
6074 attribute for include.
6075 (bus_config_parser_content): Handle it.
6077 * bus/session.conf.in, bus/system.conf.in: Add
6078 inclusion of context mapping to default config files;
6079 conditional on SELinux being enabled.
6081 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6083 * test/data/invalid-config-files/badselinux-1.conf,
6084 test/data/invalid-config-files/badselinux-2.conf:
6085 Test files for bad syntax.
6087 2004-10-17 Colin Walters <walters@verbum.org>
6089 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6090 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6091 format specifier mismatches.
6093 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
6095 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6098 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6099 pointer (bug #1540, Leonardo Boiko).
6101 2004-09-28 Jon Trowbridge <trow@ximian.com>
6103 * mono/BusDriver.cs: Changed BusDriver struct to remove
6104 the ServiceCreated and ServiceDeleted events and replace them
6105 with the new ServiceOwnerChanged event.
6107 * mono/example/BusListener.cs: Added a new example program,
6108 which listens for and reports any ServiceOwnerChanged events
6111 * mono/example/Makefile.am (DESTDIR): Build changes for the
6112 new BusListener.cs example.
6114 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6116 * bus/signals.c (bus_match_rule_parse): validate the components of
6117 match rules (bug #1439).
6119 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6121 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6123 * doc/dbus-specification.xml: document ServiceOwnerChanged
6126 * bus/driver.c, bus/driver.h, bus/services.c: Use
6127 ServiceOwnerChanged signal instead of ServiceCreated and
6130 * bus/dispatch.c: update testcase for the new signal.
6132 2004-09-20 Jon Trowbridge <trow@ximian.com>
6134 Patch from Nat Friedman <nat@novell.com>
6136 * mono/Makefile.am: A number of small build fixes to allow "make
6137 distcheck" to succeed.
6139 * mono/example/Makefile.am: "make distcheck" fixes.
6141 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6144 * test/Makefile.am: "make distcheck" fixes.
6146 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6148 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6150 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6152 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6153 messages after the first one (bug #1389).
6155 * bus/dispatch.c (check_double_hello_message): add a test case for
6156 the double hello message bug.
6157 (check_existent_service_activation): fix check of spawning error.
6159 2004-09-16 David Zeuthen <david@fubar.dk>
6161 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6163 2004-09-12 David Zeuthen <david@fubar.dk>
6165 Patch from Kay Sievers <kay.sievers@vrfy.org>
6167 * bus/bus.c (bus_context_new):
6169 * bus/main.c (usage)
6171 Add commandline option --nofork to override configuration file
6174 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6176 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6177 compilers don't like it (bug #974).
6179 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6181 * qt/connection.*: Applied patch by Jérôme Lodewyck
6182 <lodewyck@clipper.ens.fr> to integrate an existing
6183 connection into the Qt eventloop
6185 2004-08-30 Jon Trowbridge <trow@ximian.com>
6187 * mono/BusDriver.cs: Added. This is a class for interacting with
6188 the org.freedesktop.DBus service.
6190 * mono/Message.cs: Added a mechanism to expose the message that is
6191 currently being dispatched via the static Message.Current
6192 property. Added Message.Sender and Message.Destination
6195 * mono/Handler.cs: Expose the dispatched message via
6196 Message.Current when handling method calls.
6198 * mono/Service.cs: Expose the dispatched message via
6199 Message.Current when handling signal emissions.
6201 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6202 Connection.BaseService property.
6204 2004-08-28 Havoc Pennington <hp@redhat.com>
6206 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6208 More fixes from Steve Grubb
6210 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6211 (_dbus_listen_tcp_socket): fix fd leak
6213 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6214 EINTR to a bit lower in the code
6216 2004-08-26 Jon Trowbridge <trow@ximian.com>
6218 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6219 TRUE if we are inquiring about the existence of the built-in
6220 org.freedesktop.DBus service.
6222 2004-08-25 John Palmieri <johnp@redhat.com>
6223 * bus/config-parser.c:
6224 (struct PolicyType): Add POLICY_CONSOLE
6225 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6226 (start_busconfig_child): Sets up console element when
6227 <policy at_console=""> is encountered in a policy file
6228 (append_rule_from_element): Convert console elements to console
6232 (bus_policy_create_client_policy): Add console rules to the client
6233 policy based on if the client is at the console
6234 (bus_policy_append_console_rule): New function for adding a
6235 console rule to a policy
6236 (bus_policy_merge): Handle console rule merging
6238 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6239 where we check for console user files
6241 * dbus/dbus-sysdeps.c:
6242 (_dbus_file_exists): New function which checks if the given
6244 (_dbus_user_at_console): New function which does the system
6245 specific process of checking if the user is at the console
6247 * dbus/dbus-userdb.c:
6248 (_dbus_is_console_user): New function converts a UID to user name
6249 and then calls the system specific _dbus_user_at_console to
6250 see if the user is at the console and therefor a console user
6252 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6254 * bus/config-parser.c (set_limit):
6255 * bus/dbus-daemon-1.1.in:
6256 * test/data/valid-config-files/many-rules.conf: set the
6257 max_match_rules_per_connection limt from the config file.
6259 * doc/busconfig.dtd: update the DTD.
6261 * bus/driver.c: remove some unused variables.
6263 2004-08-24 Mikael Hallendal <micke@imendio.com>
6265 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6266 it's been replaced by dbus_g_bus_get
6268 2004-08-23 Colin Walters <walters@redhat.com>
6270 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6272 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6274 * bus/selinux.c: Create a thread for policy reload notification.
6275 (bus_selinux_get_policy_root): Implement.
6277 * bus/config-parser.c (start_busconfig_child)
6278 (bus_config_parser_content): Support SELinux-root relative
6281 * configure.in <HAVE_SELINUX>: Add -lpthread.
6283 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6284 (test_post_hook): Move memory checking into here.
6285 (test_pre_hook, test_post_hook): Move SELinux checks in
6286 here, but conditional on a DBUS_TEST_SELINUX environment
6287 variable. Unfortunately we can't run the SELinux checks
6288 as a normal user, since they won't have any permissions
6289 for /selinux. So this will have to be tested manually
6290 for now, until we have virtualization for most of
6293 2004-08-23 Havoc Pennington <hp@redhat.com>
6295 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6296 drop supplementary groups, suggested by Steve Grubb
6298 2004-08-20 Colin Walters <walters@redhat.com>
6300 * bus/config-parser.c (start_busconfig_child): Remove some unused
6303 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6306 2004-08-17 Joe Shaw <joeshaw@novell.com>
6308 * configure.in: If --enable-mono is passed in, if we can't find
6311 * mono/Makefile.am: Use /gacutil to install assemblies into the
6314 2004-08-12 Havoc Pennington <hp@redhat.com>
6316 * NEWS: update for 0.22
6318 * configure.in: release 0.22
6320 2004-08-11 Colin Walters <walters@redhat.com>
6322 * tools/dbus-send.c (main, usage): Add --reply-timeout
6325 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6327 * bus/bus.c (process_config_first_time_only): get rid of an unused
6328 DBusError that was causing a memoy leak (bug #989).
6330 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6331 fix compilation on Solaris/Forte C (bug #974)
6333 * bus/main.c (main): plug two minuscule memleaks.
6335 2004-08-10 Havoc Pennington <hp@redhat.com>
6337 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6339 2004-08-09 Havoc Pennington <hp@redhat.com>
6341 * COPYING: switch to Academic Free License version 2.1 instead of
6342 2.0, to resolve complaints about patent termination clause.
6344 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6346 * README: added documentation for the --enable-python
6349 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6351 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6352 _unref in the SELinux support.
6354 * doc/busconfig.dtd: update DTD for SELinux support.
6356 * bus/config-loader-libxml.c: fix error handler and parser
6357 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6359 * configure.in: remove the warning about libxml2.
6361 * dbus/dbus-bus.c: silence doxygen warning.
6363 2004-07-31 Colin Walters <walters@redhat.com>
6365 * configure.in: Move #error in SELinux check to its own line.
6367 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6369 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6370 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6373 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6374 broken by the change in the _SET_OOM macros.
6376 2004-07-31 Colin Walters <walters@redhat.com>
6378 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6381 2004-07-31 Colin Walters <walters@redhat.com>
6383 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6384 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6387 2004-07-24 Havoc Pennington <hp@redhat.com>
6389 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6391 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6394 * configure.in: add --enable-selinux
6396 * bus/policy.c (bus_policy_merge): add FIXME to a comment
6398 * bus/main.c (main): initialize and shut down selinux
6400 * bus/connection.c: store SELinux ID on each connection, to avoid
6401 repeated getting of the string context and converting it into
6404 * bus/bus.c (bus_context_get_policy): new accessor, though it
6406 (bus_context_check_security_policy): check whether the security
6407 context of sender connection can send to the security context of
6408 recipient connection
6410 * bus/config-parser.c: add parsing for <selinux> and <associate>
6412 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6413 implement dbus_connection_get_unix_fd()
6415 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6416 function, used by the selinux stuff
6418 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
6420 * bus/config-loader-libxml.c: complete the implementation of
6421 libxml backend for config file loader. Doesn't work with full OOM
6424 * configure.in: change error when selecting libxml into a warning.
6426 * test/data/invalid-config-files: add two non-well-formed XML
6429 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6431 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6432 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6433 be necessary to read all the buffer. (bug #894)
6435 * bus/activation.c (bus_activation_activate_service): fix a
6436 potential assertion failure (bug #896). Small optimization in the
6437 case of auto-activation messages.
6439 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6440 add test case for byte-through-vararg bug (#901). patch by Kimmo
6443 2004-07-28 Anders Carlsson <andersca@gnome.org>
6446 * python/dbus_bindings.pyx.in:
6447 Add dbus.init_gthreads (), allow emit_signal to pass
6448 arguments to the signal.
6450 2004-07-24 Havoc Pennington <hp@redhat.com>
6452 * AUTHORS: add some people, not really comprehensively, let me
6453 know if I missed you
6455 2004-07-24 Havoc Pennington <hp@redhat.com>
6457 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6460 * test/Makefile.am (DIST_SUBDIRS): here also
6462 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6464 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6465 breaking build on Solaris, reported by Farhad Saberi on the ML.
6467 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6468 va_arg invocation to account for integer promotion in the case of
6469 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6471 * bus/services.c (bus_service_remove_owner): fix bug #902, use
6472 _dbus_list_get_first_link, not _dbus_list_get_first.
6474 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6476 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6477 handler functions so that the asserts in _dbus_object_subtree_unref
6480 * dbus/dbus-transport-unix.c (do_reading):
6481 _dbus_transport_queue_messages return value is of type
6482 dbus_bool_t, not DBusDispatchStatus.
6484 2004-07-19 David Zeuthen <david@fubar.dk>
6486 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6489 (check_get_connection_unix_user): Debug says GetProperty; but the
6490 method is called GetConnectionUnixUser
6491 (check_get_connection_unix_process_id): New function
6492 (bus_dispatch_test): Actually call check_get_connection_unix_user();
6493 also call check_get_connection_unix_process_id()
6496 (bus_driver_handle_get_connection_unix_process_id): New function,
6497 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6501 (handle_server_data_external_mech): Set pid from the credentials
6502 obtained from the socket
6504 * dbus/dbus-connection.c:
6505 (dbus_connection_get_unix_process_id): New function
6507 * dbus/dbus-connection.h:
6508 Add prototype for dbus_connection_get_unix_process_id
6510 * dbus/dbus-transport.c:
6511 (_dbus_transport_get_unix_process_id): New function
6513 * dbus/dbus-transport.h:
6514 Add prototype for _dbus_transport_get_unix_process_id
6516 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
6518 * dbus/dbus-message.c: Message counter fix, patch by Christian
6519 Hammond <chipx86@gnupdate.org>
6521 2004-07-18 Seth Nickell <seth@gnome.org>
6524 * python/dbus_bindings.pyx.in:
6525 * python/tests/test-client.py:
6527 Add dbus.ByteArray and dbus_bindings.ByteArray
6528 types so that byte streams can be passed back.
6530 Give jdahlin the heaps of credit that are so
6533 2004-07-12 Seth Nickell <seth@gnome.org>
6537 Add message argument to the default object_method_handler
6540 * python/dbus_bindings.pyx.in:
6542 Automatically return NIL when passed an empty list
6543 (we can't pass back a list since lists are typed
6544 and we don't have any idea what type the the client
6545 intended the list to be... :-( )
6547 2004-07-10 Seth Nickell <seth@gnome.org>
6549 * python/examples/Makefile.am:
6551 Fix distcheck breakage caused by new examples.
6553 2004-07-10 Seth Nickell <seth@gnome.org>
6557 Add "message" argument to service-side dbus.Object
6558 methods. This will break existing services written
6559 using the python bindings, but will allow extraction
6560 of all the message information (e.g. who its from).
6562 Add improved "object oriented" signal handling/emission.
6564 * python/examples/example-service.py:
6568 * python/examples/example-signal-emitter.py:
6569 * python/examples/example-signal-recipient.py:
6571 Two new examples that show how to emit and receive
6572 signals using the new APIs.
6574 * python/examples/example-signals.py:
6575 * python/examples/gconf-proxy-service.py:
6576 * python/examples/gconf-proxy-service2.py:
6578 Add "message" argument to service methods.
6580 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
6582 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6583 * dbus/bus.c (dbus_bus_get_unix_user)
6584 * doc/dbus-specification.xml: implement GetConnectionUnixUser
6585 method of org.freedesktop.DBus interface.
6587 * bus/dispatch.c: test case
6589 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
6591 * python/Makefile.am: switched include directory from glib/ to dbus/
6592 since dbus-glib.h moved
6594 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6596 * configure.in: prevent building the gcj stuff and libxml loader
6597 since they are broken.
6599 2004-06-20 Havoc Pennington <hp@redhat.com>
6601 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
6602 codes from the dbus error names
6604 * glib/dbus-glib.h: move to subdir dbus/ since it's included
6605 as dbus/dbus-glib.h and that breakage is now visible due to
6606 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6608 * glib/dbus-glib.h: s/gproxy/g_proxy/
6610 * dbus/dbus-shared.h: new header to hold stuff shared with
6613 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6616 * glib/dbus-glib.h (dbus_set_g_error): move to
6617 dbus-glib-lowlevel.h
6619 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6620 of stuff to enable this
6622 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6624 * a bunch of other changes with the same basic "separate glib
6625 bindings from dbus.h" theme
6627 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
6629 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6631 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6633 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6635 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6636 the reply value of the ServiceExists message.
6638 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
6640 * python/dbus_bindings.pyx.in: No longer need to parse path
6641 elements and pass them as arrays of strings. The C API now
6642 accepts plain path strings.
6643 (_build_parsed_path): removed
6645 2004-06-07 Havoc Pennington <hp@redhat.com>
6647 * doc/TODO: remove auto-activation item since it's done; sort
6648 items by importance/milestone
6650 2004-06-07 Havoc Pennington <hp@redhat.com>
6652 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6653 random signature when using REQUIRED_FIELDS (this hack won't work
6656 * dbus/dbus-message.c: change the signature to be a header field,
6657 instead of message->signature special-case string. Incremental
6658 step forward. Then we can fix up code to send the signature in the
6659 message, then fix up code to validate said signature, then fix up
6660 code to not put the typecodes inline, etc.
6661 (load_one_message): don't make up the signature after the fact
6662 (decode_header_data): require signature field for the known
6665 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6667 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6669 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
6671 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6673 * mono/Handler.cs: Updated to follow new path argument for
6674 (un-)registering objects.
6676 * mono/example/Makefile.am:
6678 * configure.in: Bumped required version for mono and use new -pkg
6681 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
6683 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6684 registration functions take the path argument as char* instead of
6687 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6688 split off the path decompostion part of
6689 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6692 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6694 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6696 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6697 machine approach. A state is implemented as a function that
6698 handles incoming events as specified for that state.
6700 * doc/dbus-specification.xml: Update auth protocol state machine
6701 specification to match implementation. Remove some leftover
6704 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6706 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6707 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6710 * Doxyfile.in: remove deprecated options.
6712 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6713 glib/test-thread.h, glib/test-thread-client.c,
6714 glib/test-thread-server.c, glib/test-profile.c,
6715 glib/test-dbus-glib.c: remove these unused files.
6717 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
6719 * dbus/dbus-object-tree.c
6720 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6721 non-fallback handlers (bug #684).
6722 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6723 (find_subtree_recurse): report wether the returned subtree is an
6724 exact match or a "fallback" match higher up in the tree.
6725 (object_tree_test_iteration): update test case.
6727 2004-06-01 Seth Nickell <seth@gnome.org>
6729 * python/dbus_bindings.pyx.in:
6730 * python/tests/test-client.py:
6732 Round off basic type support. Add dicts (yay!), and
6733 remaining array types.
6735 Make MessageIter more general so it works for dicts too.
6737 Mark all loop variables as C integers.
6739 2004-05-31 Havoc Pennington <hp@redhat.com>
6741 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6744 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6746 * glib/dbus-glib-tool.c (main): set up to have a --self-test
6747 option that runs the tests, and start filling in some code
6748 including for starters just dumping the interfaces to stdout
6750 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6752 * test/data/valid-introspection-files/lots-of-types.xml: test of
6753 an example introspection file
6755 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6758 2004-05-31 Seth Nickell <seth@gnome.org>
6760 * python/dbus_bindings.pyx.in:
6761 * python/tests/test-client.py:
6766 Fix string array memory trashing bug... oops...
6768 2004-05-30 Seth Nickell <seth@gnome.org>
6772 Add a nicer-but-less-flexible alternate API for handling
6773 calls to virtual objects in dbus.ObjectTree.
6775 Screw up the argument order to the dbus.Object constructor
6776 for consistency with dbus.ObjectTree (and to make dbus_methods
6777 optional for future extension)
6779 * python/examples/Makefile.am:
6780 * python/examples/gconf-proxy-service.py:
6781 * python/examples/gconf-proxy-service2.py:
6783 Alternate implementation of gconf-proxy-service using the
6784 nicer dbus.ObjectTree API.
6786 * python/examples/example-service.py:
6787 * python/tests/test-server.py
6789 Reverse the argument order to deal with dbus.Object constructor
6792 2004-05-30 Seth Nickell <seth@gnome.org>
6794 * python/examples/example-client.py:
6795 * python/examples/example-service.py:
6797 Take it back. Lists seem to work but they're broken
6798 in the test suite. Make the base examples use
6801 2004-05-30 Seth Nickell <seth@gnome.org>
6803 * python/dbus_bindings.pyx.in:
6804 * python/tests/test-client.py:
6806 Add some more tests and fix errors that crop up.
6807 Unfortunately, currently it seems like marshalling
6808 and unmarshalling of lists is completely broken :-(
6810 2004-05-30 Seth Nickell <seth@gnome.org>
6812 * python/dbus_bindings.pyx.in:
6814 Add support for ObjectPath type.
6818 Refactor message handling code to a common function.
6820 * python/tests/test-client.py:
6821 * python/tests/test-server.py:
6823 Add tests that check to make sure values of all types
6824 can be echoed from a service w/o mangling.
6826 2004-05-29 Seth Nickell <seth@gnome.org>
6830 Add ObjectTree class which allows implementation
6831 of trees of "virtual" objects. Basically the python
6832 wrapper for "register_fallback".
6834 * python/examples/Makefile.am
6835 * python/examples/gconf-proxy-client.py:
6836 * python/examples/gconf-proxy-service.py:
6838 Implement a simple GConf proxy service that supports
6839 get/set on string and int GConf keys using the ObjectTree.
6841 2004-05-29 Seth Nickell <seth@gnome.org>
6844 * python/examples/example-client.py:
6845 * python/examples/example-service.py:
6846 * python/examples/list-system-services.py:
6848 Add SessionBus, SystemBus and ActivationBus classes
6849 so you don't need to know the special little BUS_TYPE
6852 2004-05-29 Havoc Pennington <hp@redhat.com>
6854 * bus/config-parser.c (process_test_valid_subdir): temporarily
6855 stop testing config parser OOM handling, since expat has issues
6856 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6858 * bus/dbus-daemon-1.1.in: change requested_reply to
6859 send_requested_reply/receive_requested_reply so we can send the
6860 replies, not just receive them.
6862 * bus/config-parser.c: parse the new
6863 send_requested_reply/receive_requested_reply
6865 * bus/policy.c (bus_client_policy_check_can_send): add
6866 requested_reply argument and use it
6868 * bus/bus.c (bus_context_check_security_policy): pass through
6869 requested_reply status to message send check
6871 * bus/system.conf.in: adapt to requested_reply change
6873 2004-05-28 Havoc Pennington <hp@redhat.com>
6875 * test/glib/test-service-glib.c (main): remove unused variable
6877 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6879 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6880 from the enum, no longer in use.
6882 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6885 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6886 whether error_name passed in is a valid error name.
6888 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
6890 * dbus/dbus-message.c (dbus_message_get_args): Added support for
6891 OBJECT_PATH and OBJECT_PATH_ARRAY
6893 2004-05-28 Seth Nickell <seth@gnome.org>
6895 * python/examples/Makefile.am:
6897 Forget to add Makefile.am. Do not pass go.
6899 2004-05-28 Michael Meeks <michael@ximian.com>
6901 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
6904 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6906 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6907 (_dbus_message_iter_get_basic_type_array): impl.
6908 drastically simplify ~all relevant _get methods to use these.
6909 (_dbus_message_iter_append_basic_array),
6910 (dbus_message_iter_append_basic): impl
6911 drastically simplify ~all relevant _append methods to use these.
6913 * dbus/dbus-message-builder.c (parse_basic_type)
6914 (parse_basic_array, lookup_basic_type): impl.
6915 (_dbus_message_data_load): prune scads of duplicate /
6918 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
6919 (_dbus_demarshal_basic_type): implement,
6920 (demarshal_and_validate_len/arg): beef up debug.
6921 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6923 2004-05-27 Seth Nickell <seth@gnome.org>
6926 * python/Makefile.am:
6928 Include the example python apps in the tarball.
6930 * python/examples/list-system-services.py
6932 Add a python new example that fetches the list of services
6933 from the system bus.
6935 2004-05-27 Seth Nickell <seth@gnome.org>
6938 * python/dbus_bindings.pyx.in:
6940 Fix failure to notify that a signal was not handled,
6941 resulted in hung functions.
6943 2004-05-25 Colin Walters <walters@redhat.com>
6945 * tools/dbus-monitor.c (main): Monitor all types of messages.
6947 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
6949 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6950 which unregisters the object path and disposes the handler.
6952 2004-05-23 Kristian Høgsberg <krh@redhat.com>
6954 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6956 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6957 operands to && so we call dbus_message_iter_next () for the last
6960 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6962 * dbus/dbus-object-tree.c
6963 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6964 children even if the requested path isn't registered.
6965 (object_tree_test_iteration): test object_tree_list_registered.
6967 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6970 2004-05-20 Kristian Høgsberg <krh@redhat.com>
6972 * doc/TODO: Remove resolved items.
6974 * bus/expirelist.h (struct BusExpireList): remove unused n_items
6977 * bus/connection.c (bus_connections_expect_reply): Enforce the
6978 per-connection limit on pending replies.
6980 Patch from Jon Trowbridge <trow@ximian.com>:
6982 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
6983 up a watch that triggers a config reload when one end of the pipe
6985 (signal_handler): Instead of doing the config reload in our SIGHUP
6986 handler, just write to the reload pipe and let the associated
6987 watch handle the reload when control returns to the main loop.
6989 * bus/driver.c (bus_driver_handle_reload_config): Added.
6990 Implements a ReloadConfig method for requesting a configuration
6991 file reload via the bus driver.
6993 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
6995 * HACKING: Updated release instructions concerning the wiki page.
6997 2004-05-18 Kristian Høgsberg <krh@redhat.com>
6999 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7000 filter against auth->allowed_mechs; we only add allowed mechs in
7001 record_mechanisms().
7003 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7004 ALLOWED_MECHS to auth-script format so we can set the list of
7007 * data/auth/client-out-of-mechanisms.auth-script: New test to
7008 check client disconnects when it is out of mechanisms to try.
7010 * dbus/dbus-auth.c (process_command): Remove check for lines
7011 longer that 1 MB; we only buffer up maximum 16 kB.
7013 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7014 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7015 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7016 assume there might be unused bytes.
7018 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7019 client-out-of-mechs, it is handled in process_reject(). Move check
7020 for max failures to send_rejected(), as it's a server-only thing.
7022 * dbus/dbus-auth.c: Factor out protocol reply code into functions
7023 send_auth(), send_data(), send_rejected(), send_error(),
7024 send_ok(), send_begin() and send_cancel().
7026 2004-05-17 Kristian Høgsberg <krh@redhat.com>
7028 Remove base64 encoding, replace with hex encoding. Original patch
7029 from trow@ximian.com, added error handling.
7031 * dbus/dbus-string.c (_dbus_string_base64_encode)
7032 (_dbus_string_base64_decode): Remove.
7033 (_dbus_string_hex_decode): Add end_return argument so we can
7034 distinguish between OOM and invalid hex encoding.
7035 (_dbus_string_test): Remove base64 tests and add test case for
7038 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7039 Replace base64 with hex.
7041 * test/data/auth/invalid-hex-encoding.auth-script: New test case
7042 for invalid hex encoded data in auth protocol.
7044 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7046 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7049 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7051 * mono/dbus-sharp.dll.config.in: Added for GAC
7052 * mono/dbus-sharp.snk: Added for GAC
7053 * mono/Assembly.cs.in: Added for GAC
7054 * mono/Makefile.am: Changes for GAC installation
7055 * configure.in: Added refs for dbus-sharp.dll.config.in and
7056 Assembly.cs.in. More fixes for mono testing
7057 * mono/example/Makefile.am: Changed var to CSC
7058 * Makefile.am: Changed flag name to DBUS_USE_CSC
7060 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7062 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7063 * mono/doc/*: Added documentation framework
7064 * configure.in: Added monodoc check
7065 * README: Added description of mono configure flags
7067 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
7069 * doc/dbus-specification.xml: Added a "Required" column to the
7070 header fields table and changed the "zero or more" verbage in
7071 the above paragraph to read "The header must contain the required
7072 named header fields and zero or more of the optional named header
7074 * test/data/invalid-messages/*.message: Added the required PATH
7075 named header field to the tests so that they don't fail on
7076 'Missing path field'
7078 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
7080 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7081 the stack by implicitly defining variable and parameter types and
7082 removing the hack of defining C pointers as python objects and later
7085 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
7087 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7089 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
7091 * mono/DBusType/Dict.cs: Handle empty dicts
7092 * mono/DBusType/Array.cs: Handle empty arrays
7093 * mono/Arguments.cs: Handle empty arguments
7095 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
7097 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7100 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7102 * test/data/valid-messages/standard-*.message: Update message
7103 test scripts to new header field names.
7105 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7107 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7108 overflow to times_we_did_each_thing array which would chop off the
7109 first character of the failure_dir string. Increased the size of
7110 the array to 7 to reflect the number of random mutation functions
7113 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7115 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7116 unix_server->watch here, it is unreffed in disconnect.
7117 (_dbus_server_new_for_tcp_socket): convert NULL host to
7118 "localhost" here so we don't append NULL to address.
7120 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7121 various addresses, including tcp with no explicit host.
7123 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7125 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7126 fix incorrect setting of .name_offset in the HeaderField (it was
7127 off by two bytes, positioned right after the name and typecode)
7129 * bus/bus.c (bus_context_new, bus_context_unref): test before
7130 calling dbus_server_free_data_slot and _dbus_user_database_unref
7131 in case of an error.
7133 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7136 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7138 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7139 _dbus_poll() instead of select().
7141 2004-04-15 Jon Trowbridge <trow@ximian.com>
7143 * bus/main.c (signal_handler): Reload the configuration files
7145 (main): Set up our SIGHUP handler.
7147 * bus/bus.c (struct BusContext): Store the config file, user and
7148 fork flag in the BusContext.
7149 (process_config_first_time_only): Added. Contains the code
7150 (previously in bus_context_new) for setting up the BusContext from
7151 the BusConfigParser that should only be run the first time the
7152 config files are read.
7153 (process_config_every_time): Added. Contains the code (previously
7154 in bus_context_new) for setting up the BusContext from the
7155 BusConfigParser that should be run every time the config files are
7157 (load_config): Added. Builds a BusConfigParser from the config
7158 files and passes the resulting structure off to
7159 process_config_first_time_only (assuming this is the first time)
7160 and process_config_every_time.
7161 (bus_context_new): All of the config-related code has been moved
7162 to process_config_first_time_only and process_config_every_time.
7163 Now this function just does the non-config-related initializations
7164 and calls load_config.
7165 (bus_context_reload_config): Added.
7167 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7169 * bus/driver.c (bus_driver_handle_get_service_owner):
7170 implement a GetServiceOwner method.
7171 * doc/dbus-specification.xml: document it.
7172 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7174 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7175 implement, using the bus GetServiceOwner method.
7177 * test/glib/test-dbus-glib.c:
7178 use dbus_gproxy_new_for_service_owner so that we can receive the
7181 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7183 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7184 dbus/dbus-message.c, dbus/dbus-protocol.h
7185 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7187 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7188 dbus/dbus-message.c, dbus/dbus-protocol.h
7189 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7191 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7192 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7193 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7195 * doc/dbus-specification.xml (Header Fields Table):
7196 s/SERVICE/DESTINATION
7197 s/SENDER_SERVICE/SENDER
7200 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7202 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7205 2004-04-13 Michael Meeks <michael@ximian.com>
7207 * glib/dbus-gobject.c (handle_introspect): split out
7208 (introspect_properties): this.
7209 (handle_introspect): implement this.
7211 * test/glib/Makefile.am: use the absolute path so the bus
7212 daemon's chdir ("/") doesn't kill us dead.
7214 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7216 2004-04-12 Jon Trowbridge <trow@ximian.com>
7218 * bus/config-parser.c (struct BusConfigParser): Added
7219 included_files field.
7220 (seen_include): Added. Checks whether or not a file has already
7221 been included by any parent BusConfigParser.
7222 (bus_config_parser_new): Copy the parent's included_files.
7223 (include_file): Track which files have been included, and fail on
7224 circular inclusions.
7225 (process_test_valid_subdir): Changed printf to report if we are
7226 testing valid or invalid conf files.
7227 (all_are_equiv): Changed printf to be a bit clearer about
7228 what we are actually doing.
7229 (bus_config_parser_test): Test invalid configuration files.
7231 2004-04-09 Jon Trowbridge <trow@ximian.com>
7233 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7234 argument. If non-null, the newly-constructed BusConfigParser will
7235 be initialized with the parent's BusLimits instead of the default
7237 (include_file): When including a config file, pass in
7238 the current parser as the parent and then copy the BusLimits
7239 from the included BusConfigParser pack to the current parser.
7240 (process_test_valid_subdir): Renamed from process_test_subdir.
7241 (process_test_equiv_subdir): Added. Walks through a directory,
7242 descending into each subdirectory and loading the config files
7243 it finds there. If any subdirectory contains two config files
7244 that don't produce identical BusConfigParser structs, fail.
7245 For now, the BusConfigParser's BusPolicies are not compared.
7246 (bus_config_parser_test): Call both process_test_valid_subdir and
7247 process_test_equiv_subdir.
7249 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7250 argument and pass it along to the call to bus_config_parser_new.
7251 Also made a few small changes to allow this code to compile.
7253 * bus/config-loader-expat.c (bus_config_load): Take a parent
7254 argument and pass it along to the call to bus_config_parser_new.
7256 * bus/bus.c (bus_context_new): Load the config file
7257 with a NULL parent argument.
7259 2004-03-29 Michael Meeks <michael@ximian.com>
7261 * glib/dbus-gobject.c (introspect_properties): split
7262 out, fix mangled 'while' flow control.
7263 (introspect_signals): implement.
7264 (handle_introspect): update.
7266 2004-03-29 Michael Meeks <michael@ximian.com>
7268 * glib/dbus-gobject.c (set_object_property): split out /
7269 re-work, use the property type, and not the message type(!)
7270 (get_object_property): ditto.
7272 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7273 (dbus_gvalue_marshal): make this code re-usable, needed
7274 for signals too, also on both proxy and server side.
7275 Re-write for more efficiency / readability.
7277 2004-03-29 Michael Meeks <michael@ximian.com>
7279 * dbus/dbus-message.c
7280 (dbus_message_new_error_printf): impl.
7282 * dbus/dbus-connection.c
7283 (dbus_connection_unregister_object_path): fix warning.
7285 * configure.in: fix no-mono-installed situation.
7287 2004-03-27 Havoc Pennington <hp@redhat.com>
7289 Patch from Timo Teräs:
7291 * tools/dbus-send.c (main): if --print-reply, assume type is
7292 method call; support boolean type args
7294 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7295 bunch of memleak and logic bugs
7297 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7299 * mono/Arguments.cs:
7300 * mono/Introspector.cs:
7302 * mono/InterfaceProxy.cs:
7304 * mono/ProxyBuilder.cs:
7306 Added InterfaceProxy class to avoid building proxies for every
7310 * dbus-message.c (dbus_message_append_args_valist)
7311 (dbus_message_iter_get_object_path)
7312 (dbus_message_iter_get_object_path_array)
7313 (dbus_message_iter_append_object_path)
7314 (dbus_message_iter_append_object_path_array):
7315 Added object_path iter functions to handle OBJECT_PATH arguments
7317 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7319 First checkin of mono bindings.
7322 Build stuff for the bindings
7323 * dbus-sharp.pc.in: Added for pkgconfig
7325 2004-03-21 Havoc Pennington <hp@redhat.com>
7327 * test/test-service.c (main): remove debug spew
7329 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7331 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7334 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7335 (dbus_message_iter_init_array_iterator)
7336 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7337 indicate whether the iterator is empty
7339 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7342 2004-03-19 Havoc Pennington <hp@redhat.com>
7344 * NEWS: 0.21 updates
7346 * configure.in: 0.21
7348 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7350 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7351 you don't need pyrex to make dist
7353 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7356 2004-03-18 Richard Hult <richard@imendio.com>
7358 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7359 (dbus_message_set_auto_activation): Add doxygen docs.
7361 2004-03-16 Richard Hult <richard@imendio.com>
7363 * bus/activation.c: (bus_activation_service_created),
7364 (bus_activation_send_pending_auto_activation_messages),
7365 (bus_activation_activate_service):
7367 * bus/dispatch.c: (bus_dispatch),
7368 (check_nonexistent_service_auto_activation),
7369 (check_service_auto_activated),
7370 (check_segfault_service_auto_activation),
7371 (check_existent_service_auto_activation), (bus_dispatch_test):
7372 * bus/driver.c: (bus_driver_handle_activate_service):
7373 * bus/services.c: (bus_registry_acquire_service):
7374 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7375 (dbus_message_get_auto_activation):
7376 * dbus/dbus-message.h:
7377 * dbus/dbus-protocol.h: Implement auto-activation.
7379 * doc/dbus-specification.xml: Add auto-activation to the spec.
7381 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7383 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7384 fix a bug with CUSTOM types.
7386 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7387 a unit test for this bug (used to fail).
7389 2004-03-12 Mikael Hallendal <micke@imendio.com>
7392 (babysitter_watch_callback): notify all pending activations waiting for
7393 the same exec that the activation failed.
7394 (bus_activation_activate_service): shortcut the activation if we
7395 already waiting for the same executable to start up.
7397 2004-03-12 Mikael Hallendal <micke@imendio.com>
7400 - Added service file reloading.
7401 Each service files directory is kept in an hash table in
7402 BusActivation and each BusActivationEntry knows what .service-file it
7403 was read from. So when you try to activate a service the bus will
7404 check if it's been updated, removed or if new .service-files has
7406 - Test code at the bottom for the service file reloading.
7407 * bus/test-main.c: (main):
7409 - added service reloading test.
7410 * dbus/dbus-sysdeps.c:
7411 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7413 2004-03-08 Michael Meeks <michael@ximian.com>
7415 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
7416 bail immediately if disconnected, to avoid busy loop.
7418 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7419 cleanup cut/paste/inefficiency.
7421 2004-03-01 David Zeuthen <david@fubar.dk>
7423 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7424 bug where args were used twice. This bug resulted in a segfault
7425 on a Debian/PPC system when starting the messagebus daemon. Include
7426 dbus-sysdeps.h for DBUS_VA_COPY
7428 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7430 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7431 appropriate va_copy implementation. From GLib
7433 2004-02-24 Joe Shaw <joe@ximian.com>
7435 * bus/services.c (bus_registry_acquire_service): We need to pass
7436 in the service name to dbus_set_error() to prevent a crash.
7438 2003-12-26 Anders Carlsson <andersca@gnome.org>
7440 * AUTHORS: Reveal my True identity.
7442 2003-12-17 Mikael Hallendal <micke@imendio.com>
7444 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7445 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7447 2003-12-13 Mikael Hallendal <micke@imendio.com>
7449 * doc/TODO: Added not about better error check of configuration files.
7451 2003-12-02 Richard Hult <richard@imendio.com>
7453 * Update AFL version to 2.0 throughout the source files to reflect
7454 the update that was done a while ago.
7456 2003-12-02 Richard Hult <richard@imendio.com>
7458 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7459 wrote_dict_key to FALSE on the iter that the dict is appended to,
7460 just like when appending other types. Fixes a bug where a dict
7461 couldn't be put inside a dict.
7462 (dbus_message_iter_append_dict_key): Fix typo in warning message.
7463 (message_iter_test, _dbus_message_test): Add test case for dict
7466 2003-12-01 David Zeuthen <david@fubar.dk>
7468 * python/dbus.py: Add the actual message when calling the reciever
7469 of a signal such that parameters can be inspected. Add the method
7470 remove_signal_receiver
7472 2003-11-26 Mikael Hallendal <micke@imendio.com>
7476 * glib/*.[ch]: Made ref functions return the pointer
7478 2003-11-25 Zack Rusin <zack@kde.org>
7480 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7482 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
7485 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
7486 the Integrator and to better fit with the server,
7488 2003-11-24 Zack Rusin <zack@kde.org>
7490 * qt/connection.h, qt/connection.cpp: removing initDbus method since
7491 the integrator handles it now
7493 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7494 since QTimer wasn't really meant to be used the way DBusTimeout is
7496 2003-11-24 Zack Rusin <zack@kde.org>
7498 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
7499 Integrator class which integrates D-BUS with the Qt event loop,
7501 * qt/connection.h, qt/connection.cpp: Move all the code which
7502 was dealing with D-BUS integration to the Integrator class,
7503 and start using Integrator,
7505 2003-11-23 Zack Rusin <zack@kde.org>
7507 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
7510 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7511 switching namespaces to DBusQt, reworking the class,
7513 * Makefile.cvs: switching dependencies so that it matches KDE
7516 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
7519 2003-11-19 Havoc Pennington <hp@redhat.com>
7523 * configure.in: bump version to 0.20
7525 * configure.in (have_qt): add yet another place to look for qt
7526 (someone hand trolltech a .pc file...)
7528 2003-11-01 Havoc Pennington <hp@redhat.com>
7530 * doc/dbus-specification.xml: add state machine docs on the auth
7531 protocol; just a first draft, I'm sure it's wrong.
7533 2003-10-28 David Zeuthen <david@fubar.dk>
7535 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7536 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7538 2003-10-28 Havoc Pennington <hp@redhat.com>
7540 * dbus/dbus-message.c (get_next_field): delete unused function
7542 2003-10-28 Havoc Pennington <hp@redhat.com>
7544 * bus/expirelist.c (do_expiration_with_current_time): detect
7545 failure of the expire_func due to OOM
7547 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7549 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7550 NoReply error that's now created by the bus when the service exits
7552 2003-10-28 Havoc Pennington <hp@redhat.com>
7554 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7555 tests for set_path, set_interface, set_member, etc.
7557 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7559 * dbus/dbus-message.c (set_string_field): always just delete and
7560 re-append the field; accept NULL for deletion
7561 (re_align_fields_recurse): reimplement
7563 2003-10-26 Havoc Pennington <hp@redhat.com>
7565 * dbus/dbus-connection.c: fix docs to properly describe the
7566 disconnected message
7567 (_dbus_connection_notify_disconnected): remove this function;
7568 we can't synchronously add the disconnected message, we have to
7569 do it after we've queued any remaining real messages
7570 (_dbus_connection_get_dispatch_status_unlocked): queue the
7571 disconnect message only if the transport has finished queueing all
7572 its real messages and is disconnected.
7573 (dbus_connection_disconnect): update the dispatch status here
7575 2003-10-22 Havoc Pennington <hp@redhat.com>
7577 * bus/bus.c (bus_context_check_security_policy): fix up assertion
7579 * bus/connection.c (bus_transaction_send_from_driver): set the
7580 destination to the connection's base service
7582 2003-10-20 Havoc Pennington <hp@redhat.com>
7584 hmm, make check is currently not passing.
7586 * doc/dbus-specification.xml: add requirement that custom type
7587 names follow the same rules as interface names.
7589 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7590 duplication and allow 'c' to be 'custom'; dict is now 'm' for
7593 * doc/dbus-specification.xml: update type codes to match
7594 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7595 CUSTOM. Add type OBJECT_PATH to the spec.
7597 2003-10-17 Havoc Pennington <hp@redhat.com>
7599 * bus/driver.c (create_unique_client_name): use "." as separator
7600 in base service names instead of '-'
7602 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7603 byte at the end of the string
7605 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7606 optimization macros since string validation seems to be a slow
7609 * doc/dbus-specification.xml: restrict valid
7610 service/interface/member/error names. Add test suite code for the
7613 * dbus/dbus-string.c: limit service/interface/member/error names
7616 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7617 format arg to verbose spew
7619 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7620 memory, return instead of g_error
7622 * test/test-service.c (path_message_func): support emitting a
7625 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7626 activation bus type if DBUS_BUS_ACTIVATION was set; default to
7627 assuming the activation bus was the session bus so that services
7628 started manually will still register.
7629 (init_connections_unlocked): fix so that in OOM situation we get
7630 the same semantics when retrying the function
7632 * test/test-service.c (main): change to use path registration, to
7633 test those codepaths; register with DBUS_BUS_ACTIVATION rather
7634 than DBUS_BUS_SESSION
7636 2003-10-16 Havoc Pennington <hp@redhat.com>
7638 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7640 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7641 coverage of the tests
7642 (coverage-report.txt): don't move the .da and .bbg files around
7644 2003-10-16 Havoc Pennington <hp@redhat.com>
7646 * bus/bus.c (struct BusContext): remove struct field I didn't mean
7649 2003-10-16 Havoc Pennington <hp@redhat.com>
7651 * bus/connection.c (bus_pending_reply_expired): either cancel or
7653 (bus_connections_check_reply): use unlink, not remove_link, as we
7654 don't want to free the link; fixes double free mess
7656 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7657 where no reply was received
7659 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7662 * bus/signals.c (match_rule_matches): add special cases for the
7663 bus driver, so you can match on sender/destination for it.
7665 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7666 DBUS_PRINT_BACKTRACE is set
7668 * dbus/dbus-internals.c: add pid to assertion failure messages
7670 * dbus/dbus-connection.c: add message type code to the debug spew
7672 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7673 sender=foo not service=foo
7675 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7676 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
7677 DBUS_ACTIVATION_ADDRESS instead
7679 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7680 DBUS_SYSTEM_BUS_ADDRESS if appropriate
7682 * bus/bus.c (bus_context_new): handle OOM copying bus type into
7685 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7686 (dbus_message_iter_get_object_path_array): new function (half
7687 finished, disabled for the moment)
7689 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7690 DBUS_MESSAGE_TYPE_ERROR
7692 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7693 avoid redirecting stderr to /dev/null
7694 (babysit): close stdin if not doing the "exit_with_session" thing
7696 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7697 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7698 stdout/stdin, so things don't get confused
7700 * bus/system.conf.in: fix to allow replies, I modified .conf
7701 instead of .conf.in again.
7703 2003-10-14 David Zeuthen <david@fubar.dk>
7705 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7706 argtype to arg_type when raising unknown arg type exception.
7707 Changed type list to reflect the changes in dbus-protocol.h so
7708 the bindings actually work.
7710 2003-10-14 Havoc Pennington <hp@redhat.com>
7712 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7713 to have a bug keeping it from outputting the .da files sometimes
7714 (string_get_string): don't append garbage nul bytes to the string.
7716 2003-10-15 Seth Nickell <seth@gnome.org>
7718 * python/Makefile.am:
7720 Include dbus_h_wrapper.h in the dist tarball.
7722 2003-10-14 Havoc Pennington <hp@redhat.com>
7724 * bus/bus.c (bus_context_check_security_policy): revamp this to
7725 work more sanely with new policy-based requested reply setup
7727 * bus/connection.c (bus_transaction_send_from_driver): set bus
7728 driver messages as no reply
7730 * bus/policy.c (bus_client_policy_check_can_receive): handle a
7731 requested_reply attribute on allow/deny rules
7733 * bus/system.conf: add <allow requested_reply="true"/>
7735 * bus/driver.c (bus_driver_handle_message): fix check for replies
7736 sent to the bus driver, which was backward. How did this ever work
7737 at all though? I think I'm missing something.
7739 * dbus/dbus-message.c (decode_header_data): require error and
7740 method return messages to have a reply serial field to be valid
7741 (_dbus_message_loader_queue_messages): break up this function;
7742 validate that reply serial and plain serial are nonzero;
7743 clean up the OOM/error handling.
7744 (get_uint_field): don't return -1 from this
7745 (dbus_message_create_header): fix signed/unsigned bug
7747 * bus/connection.c (bus_connections_expect_reply): save serial of
7748 the incoming message, not reply serial
7750 2003-10-14 Havoc Pennington <hp@redhat.com>
7752 * bus/connection.c: implement pending reply tracking using
7755 * bus/bus.c (bus_context_check_security_policy): verify that a
7756 reply is pending in order to allow a reply to be sent. Deny
7757 messages of unknown type.
7759 * bus/dbus-daemon-1.1.in: update to mention new resource limits
7761 * bus/bus.c (bus_context_get_max_replies_per_connection): new
7762 (bus_context_get_reply_timeout): new
7764 2003-10-13 Seth Nickell <seth@gnome.org>
7766 * python/Makefile.am:
7768 Pass "make distcheck": remove a couple files from DIST_FILES
7769 that weren't included in the final version.
7771 2003-10-12 Havoc Pennington <hp@pobox.com>
7773 Added test code that 1) starts an actual bus daemon and 2) uses
7774 DBusGProxy; fixed bugs that were revealed by the test. Lots
7775 more testing possible, but this is the basic framework.
7777 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7778 empty proxy lists from the proxy list hash
7780 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7781 couple of return_if_fail checks
7783 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7784 to allocate, so everything is cleared to NULL as it should be.
7786 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7787 source as data to dbus_connection_set_timeout_functions() as the
7788 timeout functions expected
7790 * test/glib/run-test.sh: add a little script to start up a message
7791 bus and run tests using it
7793 * tools/dbus-launch.1: updates
7795 * tools/dbus-launch.c (main): add --config-file option
7797 * tools/dbus-launch.c (main): remove confusing else if (runprog)
7798 that could never be reached.
7800 * dbus/dbus-message.c (dbus_message_new_method_return)
7801 (dbus_message_new_error, dbus_message_new_signal): set the
7802 no-reply-expected flag on all these. Redundant, but may
7803 as well be consistent.
7805 2003-10-11 Havoc Pennington <hp@pobox.com>
7807 * test/decode-gcov.c (function_solve_graph): make broken block
7808 graph a nonfatal error since it seems to be broken. Need to debug
7811 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7812 can't just check type > INVALID < LAST anymore
7814 * dbus/dbus-message.c (dbus_message_get_signature): new function
7815 (dbus_message_has_signature): new function
7816 (struct DBusMessage): add signature field (right now it isn't sent
7817 over the wire, just generated on the fly)
7818 (dbus_message_copy): copy the signature, and init strings to
7819 proper length to avoid some reallocs
7820 (dbus_message_iter_init_array_iterator): return void, since it
7822 (dbus_message_iter_init_dict_iterator): return void since it can't fail
7823 (_dbus_message_loader_queue_messages): add silly temporary hack to
7824 fill in message->signature on load
7826 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7827 characters, so they are relatively human-readable.
7829 2003-10-11 Havoc Pennington <hp@pobox.com>
7831 * dbus/dbus-message.c (_dbus_message_test): add more test
7832 coverage, but #if 0 for now since they uncover a bug
7833 not fixed yet; I think in re_align_field_recurse()
7834 (re_align_field_recurse): add FIXME about broken assertion
7836 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7838 * bus/connection.c: share a couple code bits with expirelist.c
7840 * bus/expirelist.h, bus/expirelist.c: implement a generic
7841 expire-items-after-N-seconds facility, was going to share between
7842 expiring connections and replies, decided not to use for expiring
7843 connections for now.
7845 * COPYING: include AFL 2.0 (still need to change all the file headers)
7847 2003-10-09 Havoc Pennington <hp@redhat.com>
7849 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7850 gcc 3.3. Not that we do anything about it yet.
7852 * bus/signals.c (bus_match_rule_parse): impose max length on the
7855 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7857 2003-10-09 Havoc Pennington <hp@redhat.com>
7859 Make matching rules theoretically work (add parser).
7861 * bus/bus.c (bus_context_check_security_policy): fix up to handle
7862 the case where destination is explicitly specified as bus driver
7863 and someone else is eavesdropping.
7865 * bus/policy.c (bus_client_policy_check_can_receive): fix up
7866 definition of eavesdropping and assertion
7868 * tools/dbus-send.c (main): use dbus_message_type_from_string
7870 * bus/signals.c (bus_match_rule_parse): implement
7872 * dbus/dbus-message.c (dbus_message_type_from_string): new
7874 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7876 2003-10-02 Havoc Pennington <hp@pobox.com>
7878 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7879 dbus_gproxy_oneway_call
7881 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
7882 (dbus_server_setup_with_g_main): fix to allow calling them more
7883 than once on the same args
7884 (dbus_bus_get_with_g_main): new function
7886 2003-10-02 Havoc Pennington <hp@redhat.com>
7888 * doc/dbus-tutorial.xml: write some stuff
7890 2003-09-29 Havoc Pennington <hp@pobox.com>
7892 * configure.in: split checks for Doxygen from XML docs, check for
7895 * doc/Makefile.am: XML-ify all the docs, and add a blank
7898 2003-09-29 Havoc Pennington <hp@pobox.com>
7900 * Merge dbus-object-names branch. To see the entire patch
7901 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7902 it's huuuuge though.
7903 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7905 2003-09-28 Havoc Pennington <hp@pobox.com>
7907 * HACKING: update to reflect new server
7909 2003-09-26 Seth Nickell <seth@gnome.org>
7912 * python/examples/example-signals.py:
7914 Start implementing some notions of signals. The API
7915 is really terrible, but they sort of work (with the
7916 exception of being able to filter by service, and to
7917 transmit signals *as* a particular service). Need to
7918 figure out how to make messages come from the service
7921 * python/dbus_bindings.pyx.in:
7923 Removed duplicate message_handler callbacks.
7925 2003-09-25 Havoc Pennington <hp@redhat.com>
7927 * bus/session.conf.in: fix my mess
7929 2003-09-25 Havoc Pennington <hp@pobox.com>
7931 * bus/session.conf.in: fix security policy, reported by Seth Nickell
7933 2003-09-25 Seth Nickell <seth@gnome.org>
7935 * python/examples/example-service.py:
7937 Johan notices complete wrong code in example-service, but
7938 completely wrong in a way that works exactly the same (!).
7939 Johan is confused, how could this possibly work? Example
7940 code fails to serve purpose of making things clear.
7943 2003-09-25 Mark McLoughlin <mark@skynet.ie>
7945 * doc/dbus-specification.sgml: don't require header fields
7946 to be 4-byte aligned and specify that fields should be
7947 distinguished from padding by the fact that zero is not
7950 * doc/TODO: remove re-alignment item and add item to doc
7951 the OBJECT_PATH type.
7953 * dbus/dbus-message.c:
7954 (HeaderField): rename the original member to value_offset
7955 and introduce a name_offset member to keep track of where
7956 the field actually begins.
7957 (adjust_field_offsets): remove.
7958 (append_int_field), (append_uint_field),
7959 (append_string_field): don't align the start of the header
7960 field to a 4-byte boundary.
7961 (get_next_field): impl finding the next marhsalled field
7962 after a given field.
7963 (re_align_field_recurse): impl re-aligning a number of
7964 already marshalled fields.
7965 (delete_field): impl deleting a field of any type and
7966 re-aligning any following fields.
7967 (delete_int_or_uint_field), (delete_string_field): remove.
7968 (set_int_field), (set_uint_field): no need to re-check
7969 that we have the correct type for the field.
7970 (set_string_field): ditto and impl re-aligning any
7972 (decode_header_data): update to take into account that
7973 the fields aren't 4-byte aligned any more and the new
7974 way to distinguish padding from header fields. Also,
7975 don't exit when there is too much header padding.
7976 (process_test_subdir): print the directory.
7977 (_dbus_message_test): add test to make sure a following
7978 field is re-aligned correctly after field deletion.
7980 * dbus/dbus-string.[ch]:
7981 (_dbus_string_insert_bytes): rename from insert_byte and
7982 allow the insert of multiple bytes.
7983 (_dbus_string_test): test inserting multiple bytes.
7985 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7986 warning note to docs about having to re-align any
7987 marshalled values following the string.
7989 * dbus/dbus-message-builder.c:
7990 (append_string_field), (_dbus_message_data_load):
7991 don't align the header field.
7993 * dbus/dbus-auth.c: (process_test_subdir): print the
7996 * test/break-loader.c: (randomly_add_one_byte): upd. for
7999 * test/data/invalid-messages/bad-header-field-alignment.message:
8002 * test/data/valid-messages/unknown-header-field.message: shove
8003 a dict in the unknown field.
8005 2003-09-25 Seth Nickell <seth@gnome.org>
8008 * python/dbus_bindings.pyx.in:
8010 Handle return values.
8012 * python/examples/example-client.py:
8013 * python/examples/example-service.py:
8015 Pass back return values from the service to the client.
8017 2003-09-24 Seth Nickell <seth@gnome.org>
8021 Connect Object methods (when you are sharing an object) up... pass
8022 in a list of methods to be shared. Sharing all the methods just
8023 worked out too weird. You can now create nice Services over the
8026 * python/dbus_bindings.pyx.in:
8028 Keep references to user_data tuples passed into C functions so
8029 Python doesn't garbage collect on us.
8031 Implement MethodReturn and Error subclasses of Message for creating
8032 DBusMessage's of those types.
8034 * python/examples/example-client.py:
8035 * python/examples/example-service.py:
8037 Simple example code showing both how create DBus services and objects,
8038 and how to use them.
8040 2003-09-23 Havoc Pennington <hp@pobox.com>
8042 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8044 2003-09-23 Havoc Pennington <hp@redhat.com>
8046 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8047 (dbus_gproxy_disconnect_signal): implement
8048 (dbus_gproxy_manager_remove_signal_match): implement
8049 (dbus_gproxy_manager_add_signal_match): implement
8050 (dbus_gproxy_oneway_call): implement
8052 2003-09-23 Havoc Pennington <hp@pobox.com>
8054 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8055 subclass. This means dropping the transparent thread safety of the
8056 proxy; you now need a separate proxy per-thread, or your own
8057 locking on the proxy. Probably right anyway.
8058 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8060 2003-09-22 Havoc Pennington <hp@redhat.com>
8062 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8064 2003-09-21 Seth Nickell <seth@gnome.org>
8066 First checkin of the Python bindings.
8068 * python/.cvsignore:
8069 * python/Makefile.am:
8070 * python/dbus_bindings.pyx.in:
8071 * python/dbus_h_wrapper.h:
8073 Pieces for Pyrex to operate on, building a dbus_bindings.so
8074 python module for low-level access to the DBus APIs.
8078 High-level Python module for accessing DBus objects.
8083 Build stuff for the python bindings.
8087 Extra macro needed for finding the Python C header files.
8089 2003-09-21 Havoc Pennington <hp@pobox.com>
8091 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8092 implementing the proxy manager, didn't get very far.
8094 * dbus/dbus-bus.c (dbus_bus_add_match): new
8095 (dbus_bus_remove_match): new
8097 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8098 path_name argument; adjust the other not-yet-implemented
8099 gproxy constructors to be what I think they should be.
8101 2003-09-21 Havoc Pennington <hp@pobox.com>
8103 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8104 by default for message bus connections.
8106 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8107 exit_on_disconnect flag is set and we process the disconnected
8109 (dbus_connection_set_exit_on_disconnect): new function
8111 2003-09-21 Havoc Pennington <hp@pobox.com>
8113 Get matching rules mostly working in the bus; only actually
8114 parsing the rule text remains. However, the client side of
8115 "signal connections" hasn't been started, this patch is only the
8118 * dbus/dispatch.c: fix for the matching rules changes
8120 * bus/driver.c (bus_driver_handle_remove_match)
8121 (bus_driver_handle_add_match): send an ack reply from these
8124 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8125 arguments, reported by Seth Nickell
8127 * bus/config-parser.c (append_rule_from_element): support
8128 eavesdrop=true|false attribute on policies so match rules
8129 can be prevented from snooping on the system bus.
8131 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8132 and "destination" in attribute names; fix some docs bugs;
8133 add eavesdrop=true|false attribute
8135 * bus/driver.c (bus_driver_handle_add_match)
8136 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8139 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8140 rid of broadcast service concept, signals are just always broadcast
8142 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8143 mostly implement matching rules stuff (currently only exposed as signal
8146 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8148 * doc/dbus-specification.sgml: Change the header field name
8149 to be an enum and update the rest of the spec to reference
8150 the fields using the conventinal name.
8152 * dbus/dbus-protocol.h: update to reflect the spec.
8154 * doc/TODO: add item to remove the 4 byte alignment requirement.
8156 * dbus/dbus-message.c: Remove the code to generalise the
8157 header/body length and serial number header fields as named
8158 header fields so we can reference field names using the
8160 (append_int_field), (append_uint_field), (append_string_field):
8161 Append the field name as a byte rather than four chars.
8162 (delete_int_or_uint_field), (delete_string_field): reflect the
8163 fact that the field name and typecode now occupy 4 bytes instead
8165 (decode_string_field), (decode_header_data): update to reflect
8166 protocol changes and move the field specific encoding from
8167 decode_string_field() back into decode_header_data().
8169 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8170 Add utility to aid debugging.
8172 * dbus/dbus-message-builder.c:
8173 (append_string_field), (_dbus_message_data_load): Update to
8174 reflect protocol changes; Change the FIELD_NAME directive
8175 to HEADER_FIELD and allow it to take the field's conventional
8176 name rather than the actual value.
8178 * test/data/*/*.message: Update to use HEADER_FIELD instead
8179 of FIELD_NAME; Always align the header on an 8 byte boundary
8180 *before* updating the header length.
8182 2003-09-15 Havoc Pennington <hp@pobox.com>
8184 * dbus/dbus-pending-call.c: add the get/set object data
8185 boilerplate as for DBusConnection, etc. Use generic object data
8186 for the notify callback.
8188 * glib/dbus-gparser.c (parse_node): parse child nodes
8190 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8192 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8193 contain functions shared between the convenience lib and the
8196 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8197 -export-symbols-regex to the GLib library
8199 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8200 fix the locking in here, and add a default handler for
8201 Introspect() that just returns sub-nodes.
8203 2003-09-14 Havoc Pennington <hp@pobox.com>
8205 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8206 rather than gfoo consistent
8208 * glib/dbus-gproxy.h: delete for now, move contents to
8209 dbus-glib.h, because the include files don't work right since we
8210 aren't in the dbus/ subdir.
8212 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8213 (dbus_gproxy_end_call): finish
8214 (dbus_gproxy_begin_call): finish
8216 * glib/dbus-gmain.c (dbus_set_g_error): new
8218 * glib/dbus-gobject.c (handle_introspect): include information
8219 about child nodes in the introspection
8221 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8222 function to help in implementation of introspection
8224 * dbus/dbus-object-tree.c
8225 (_dbus_object_tree_list_registered_and_unlock): new function
8227 2003-09-12 Havoc Pennington <hp@pobox.com>
8229 * glib/dbus-gidl.h: add common base class for all the foo_info
8232 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8235 * test/Makefile.am: try test srcdir -ef . in addition to test
8236 srcdir = ., one of them should work (yeah lame)
8238 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8241 * glib/dbus-gparser.h: make description_load routines return
8242 NodeInfo* not Parser*
8244 * Makefile.am (SUBDIRS): build test dir after all library dirs
8246 * configure.in: add GTK+ detection
8248 2003-09-07 Havoc Pennington <hp@pobox.com>
8250 * Make Doxygen contented.
8252 2003-09-07 Havoc Pennington <hp@pobox.com>
8254 * doc/dbus-specification.sgml: more updates
8256 2003-09-06 Havoc Pennington <hp@pobox.com>
8258 * doc/dbus-specification.sgml: partial updates
8260 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8261 zillionth time; hopefully I edited the right file this time.
8263 * bus/config-parser.c (append_rule_from_element): support
8264 send_type, send_path, receive_type, receive_path
8266 * bus/policy.c: add message type and path to the list of things
8267 that can be "firewalled"
8269 2003-09-06 Havoc Pennington <hp@pobox.com>
8271 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8272 (dbus_connection_register_object_path): make this not handle
8273 messages to paths below the given path
8275 2003-09-03 Havoc Pennington <hp@pobox.com>
8277 * test/glib/Makefile.am: add this with random glib-linked test
8280 * glib/Makefile.am: remove the random test programs from here,
8281 leave only the unit tests
8283 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8284 uscore/javacaps conversion, and fix
8285 (get_object_property, set_object_property): change to .NET
8286 convention for mapping props to methods, set_FooBar/get_FooBar,
8287 since one language has such a convention we may as well copy it.
8288 Plus real methods in either getFooBar or get_foo_bar style won't
8289 collide with this convention.
8291 2003-09-01 Havoc Pennington <hp@pobox.com>
8293 * glib/dbus-gparser.c: implement
8295 * glib/dbus-gobject.c: start implementing skeletons support
8297 * configure.in: when disabling checks/assert, also define
8298 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8300 2003-09-01 Havoc Pennington <hp@pobox.com>
8302 * glib/Makefile.am: rearrange a bunch of files and get "make
8303 check" framework set up
8305 2003-08-31 Havoc Pennington <hp@pobox.com>
8307 * fix build with --disable-tests
8309 2003-08-30 Havoc Pennington <hp@pobox.com>
8311 * dbus/dbus-connection.c: purge DBusMessageHandler
8313 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8314 use callbacks everywhere
8316 2003-08-30 Havoc Pennington <hp@pobox.com>
8318 * test/data/valid-config-files/system.d/test.conf: change to
8319 root for the user so warnings don't get printed
8321 * dbus/dbus-message.c: add dbus_message_get_path,
8322 dbus_message_set_path
8324 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8325 dispatching to a path
8327 * dbus/dbus-string.c (_dbus_string_validate_path): add
8329 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8330 (_dbus_marshal_object_path): implement
8332 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8333 to contain the path to the target object
8334 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8335 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8337 2003-08-30 Havoc Pennington <hp@pobox.com>
8339 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8341 2003-08-29 Havoc Pennington <hp@pobox.com>
8343 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8345 (struct DBusObjectSubtree): shrink this
8346 a lot, since we may have a lot of them
8347 (_dbus_object_tree_free_all_unlocked): implement
8348 (_dbus_object_tree_dispatch_and_unlock): implement
8350 2003-08-29 Havoc Pennington <hp@pobox.com>
8352 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8354 2003-08-28 Havoc Pennington <hp@pobox.com>
8358 * dbus/dbus-connection.c: port to no ObjectID, create a
8359 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8361 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8362 everything except UnregisterFunction and MessageFunction
8364 * dbus/dbus-marshal.c: port away from DBusObjectID,
8365 add DBUS_TYPE_OBJECT_PATH
8367 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8368 dbus/dbus-objectid.[hc]: remove these, we are moving to
8369 path-based object IDs
8371 2003-08-25 Havoc Pennington <hp@pobox.com>
8373 Just noticed that dbus_message_test is hosed, I wonder when I
8374 broke that. I thought make check was passing earlier...
8376 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8377 container tree, will replace most of dbus-object-registry
8379 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8382 2003-08-19 Havoc Pennington <hp@pobox.com>
8384 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8385 (dbus_message_is_error): fix this function
8387 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8390 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8391 reflect clarified man page
8392 (bus_client_policy_check_can_send): ditto
8394 * bus/session.conf.in: fixup
8396 * bus/system.conf.in: fixup
8398 2003-08-18 Havoc Pennington <hp@redhat.com>
8400 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8402 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8403 dumb bug created earlier (wrong order of args to
8404 decode_header_data())
8406 * tools/dbus-send.c: port
8408 * tools/dbus-print-message.c (print_message): port
8410 * test/data/*messages: port all messages over
8412 * dbus/dbus-message-builder.c: support including
8415 * bus/driver.c: port over
8417 * bus/dispatch.c: port over to new stuff
8419 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8420 rename disconnect signal to "Disconnected"
8422 2003-08-17 Havoc Pennington <hp@pobox.com>
8424 This doesn't compile yet, but syncing up so I can hack on it from
8425 work. What are branches for if not broken code? ;-)
8427 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8428 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8429 DBUS_HEADER_FIELD_ERROR_NAME
8431 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8432 for the interface+member pairs
8433 (string_hash): change to use g_str_hash algorithm
8434 (find_direct_function, find_string_function): refactor these to
8437 * dbus/dbus-message.c: port all of this over to support
8438 interface/member fields instead of name field
8440 * dbus/dbus-object-registry.c: port over
8442 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8443 from _dbus_string_validate_name
8445 * bus/dbus-daemon-1.1: change file format for the
8446 <deny>/<allow> stuff to match new message naming scheme
8448 * bus/policy.c: port over
8450 * bus/config-parser.c: parse new format
8452 2003-08-16 Havoc Pennington <hp@pobox.com>
8454 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8457 * glib/dbus-gproxy.c: some hacking
8459 2003-08-15 Havoc Pennington <hp@redhat.com>
8461 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8463 * dbus/dbus-connection.c
8464 (dbus_connection_send_with_reply_and_block): factor out internals;
8465 change to convert any error replies to DBusError instead of
8466 returning them as a message
8468 2003-08-15 Havoc Pennington <hp@pobox.com>
8470 * dbus/dbus-connection.c,
8471 dbus/dbus-pending-call.c: Finish the pending call stuff
8473 2003-08-14 Havoc Pennington <hp@redhat.com>
8475 * dbus/dbus-pending-call.c: start on new object that will replace
8476 DBusMessageHandler and ReplyHandlerData for tracking outstanding
8479 * dbus/dbus-gproxy.c: start on proxy object used to communicate
8480 with remote interfaces
8482 * dbus/dbus-gidl.c: do the boring boilerplate in here
8484 2003-08-12 Havoc Pennington <hp@pobox.com>
8486 * bus/dispatch.c (bus_dispatch): make this return proper
8487 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8489 * dbus/dbus-errors.c (dbus_set_error): use
8490 _dbus_string_append_printf_valist
8492 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8493 (_dbus_string_append_printf): new
8495 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8498 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8499 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8500 message is unhandled.
8502 2003-08-11 Havoc Pennington <hp@pobox.com>
8504 * bus/test.c (client_disconnect_handler): change to return
8505 HANDLED (would have been REMOVE_MESSAGE)
8507 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8508 HANDLED/NOT_YET_HANDLED instead of
8509 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
8512 2003-08-10 Havoc Pennington <hp@pobox.com>
8514 * tools/dbus-send.c (main): add --type argument, for now
8515 supporting only method_call and signal types.
8517 * tools/dbus-print-message.c: print message type
8519 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8520 init connection->objects
8522 * doc/dbus-specification.sgml: fix sgml
8524 * bus/*.c: port over to object-instance API changes
8526 * test/test-service.c: ditto
8528 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8529 name, we will have to fix up the rest of the code to also handle
8531 (dbus_message_new): generic message-creation call
8532 (set_string_field): allow appending name field
8534 2003-08-06 Havoc Pennington <hp@pobox.com>
8536 * dbus/dbus-object-registry.c: implement signal connection
8539 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8541 * dbus/dbus-internals.c (_dbus_memdup): new function
8543 2003-08-02 Havoc Pennington <hp@pobox.com>
8545 * dbus/dbus-message.c (dbus_message_get_no_reply)
8546 (dbus_message_set_no_reply): add these and remove
8547 set_is_error/get_is_error
8549 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
8550 remove the ERROR flag, since there's now an ERROR type
8552 2003-08-01 Havoc Pennington <hp@pobox.com>
8554 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8557 * dbus/dbus-message.c (dbus_message_get_type): new function
8559 * doc/dbus-specification.sgml: add "type" byte to messages
8561 2003-08-01 Havoc Pennington <hp@pobox.com>
8563 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8564 a message type enum to distinguish kinds of message
8565 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
8566 that need not be replied to
8568 2003-08-01 Havoc Pennington <hp@pobox.com>
8570 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8571 (unpack_8_octets): fix no-64-bit-int bug
8573 * dbus/dbus-object-registry.c (validate_id): validate the
8574 connection ID bits, not just the instance ID.
8576 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8577 the connection-global 33 bits of the object ID
8579 * dbus/dbus-object-registry.c (info_from_entry): fill in
8580 object ID in the new way
8582 * dbus/dbus-objectid.h: rather than high/low bits, specifically
8583 define server/client/instance bits.
8585 2003-07-30 Havoc Pennington <hp@pobox.com>
8587 * dbus/dbus-connection.c (dbus_connection_register_object): fix
8590 2003-07-13 Havoc Pennington <hp@pobox.com>
8592 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8593 fields to DBusObjectVTable and DBusObjectInfo
8595 2003-07-12 Havoc Pennington <hp@pobox.com>
8597 * dbus/dbus-object-registry.c: implement unit test,
8598 fix bugs discovered in process
8600 * dbus/dbus-connection.c: remove handler_table and
8601 register_handler(), add DBusObjectRegistry usage
8603 * dbus/dbus-objectid.c (dbus_object_id_is_null)
8604 (dbus_object_id_set_null): new functions
8606 2003-07-08 Havoc Pennington <hp@pobox.com>
8608 * dbus/dbus-object.c: implement some of this
8610 * dbus/dbus-object-registry.c
8611 (_dbus_object_registry_add_and_unlock): fill in the object_id out
8613 (_dbus_object_registry_new): handle OOM
8615 2003-07-08 Havoc Pennington <hp@pobox.com>
8617 * dbus/dbus-object.h: sketch out an API for registering objects
8618 with a connection, that allows us to use as little as 24 bytes
8619 per object and lets application code represent an object in
8620 any conceivable way.
8622 * dbus/dbus-object-registry.c: implement the hard bits of the
8623 DBusConnection aspect of object API. Not yet wired up.
8625 2003-07-06 Havoc Pennington <hp@pobox.com>
8627 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8628 (_dbus_marshal_object_id): new
8629 (_dbus_demarshal_object_id): new
8630 (_dbus_marshal_get_arg_end_pos): support object ID type, and
8631 consolidate identical switch cases. Don't conditionalize handling
8632 of DBUS_TYPE_UINT64, need to handle the type always.
8633 (_dbus_marshal_validate_arg): consolidate identical cases, and
8634 handle DBUS_TYPE_OBJECT_ID
8636 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8638 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8640 2003-09-28 Havoc Pennington <hp@pobox.com>
8644 2003-09-28 Havoc Pennington <hp@pobox.com>
8646 * doc/Makefile.am (dbus-specification.html): testing a funky hack
8647 to work with Debian db2html
8649 2003-09-28 Havoc Pennington <hp@pobox.com>
8651 * configure.in: 0.13
8653 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8654 stylesheet-images for benefit of Debian
8656 Change back to using filesystem-linked sockets for the system
8657 bus, so only root can create the default system bus address.
8659 * bus/system.conf.in: change to use
8660 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8662 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8665 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8666 here, and AC_DEFINE DBUS_SYSTEM_PATH
8668 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8671 * doc/busconfig.dtd:
8674 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8676 * doc/dbus-specification.sgml:
8677 Add activation reply values.
8679 2003-08-05 Havoc Pennington <hp@redhat.com>
8681 * configure.in: 0.12
8683 2003-08-05 Anders Carlsson <andersca@codefactory.se>
8685 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8686 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8687 (add_watch), (remove_watch), (create_source):
8688 Refcount fds, fixes some reentrancy issues.
8690 2003-07-30 Havoc Pennington <hp@redhat.com>
8692 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8693 bus address to be abstract if we have abstract sockets
8697 2003-07-28 Havoc Pennington <hp@redhat.com>
8699 * bus/messagebus.in: fix to avoid processname/servicename
8700 confusion, from Michael Kearey
8701 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8703 2003-07-23 Havoc Pennington <hp@pobox.com>
8705 * dbus/dbus-message.c (dbus_message_iter_get_named):
8706 fix from Andy Hanton to remove broken "+1"
8708 2003-07-16 Havoc Pennington <hp@pobox.com>
8710 * tools/dbus-launch.c (babysit): close stdout/stderr in the
8711 babysitter process, as suggested by Thomas Leonard, so
8712 an "eval `dbus-launch --exit-with-session`" will actually
8715 2003-07-16 Havoc Pennington <hp@pobox.com>
8717 * configure.in: print out EXPANDED_* variables in the summary at
8718 the end; clean up the code that computes EXPANDED_ variables and
8719 get the ones using exec_prefix right. Should make things work
8720 when you build without --prefix
8722 2003-06-29 Havoc Pennington <hp@pobox.com>
8724 * mono/Test.cs (class Test): fire up a main loop and run it
8726 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8727 done once, the app has to do it
8729 2003-06-26 Havoc Pennington <hp@pobox.com>
8731 * mono/Connection.cs: set up connection with the glib main loop
8733 2003-07-01 Havoc Pennington <hp@redhat.com>
8735 * doc/dbus-specification.sgml: clarify the format of a type code,
8736 change suggested by Jim Blandy
8738 2003-06-29 Miloslav Trmac <mitr@volny.cz>
8741 * tools/Makefile.am: Don't assume srcdir == builddir.
8743 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8744 the allocated block.
8745 (_dbus_memory_test): New function.
8746 * dbus/dbus-test.h: Add _dbus_memory_test ().
8747 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8749 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8751 (dbus_message_new): Remove obsolete @todo.
8753 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8754 (_dbus_marshal_set_uint64): Fix comment.
8756 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8757 hardcode FIELD_REPLY_SERIAL.
8759 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8760 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8762 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8763 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8765 2003-06-24 Havoc Pennington <hp@pobox.com>
8767 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8769 2003-06-23 Anders Carlsson <andersca@codefactory.se>
8775 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8776 * gcj/org/.cvsignore:
8777 * gcj/org/Makefile.am:
8778 * gcj/org/freedesktop/.cvsignore:
8779 * gcj/org/freedesktop/Makefile.am:
8780 * gcj/org/freedesktop/dbus/.cvsignore:
8781 * gcj/org/freedesktop/dbus/Makefile.am:
8782 * gcj/org/freedesktop/dbus/Message.java: (Message),
8784 * gcj/org/freedesktop/dbus/natMessage.cc:
8785 Fix the build system.
8787 2003-06-22 Havoc Pennington <hp@pobox.com>
8789 * mono/Connection.cs: add more bindings
8791 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8794 2003-06-22 Havoc Pennington <hp@pobox.com>
8796 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8797 Start wrapping more stuff.
8799 2003-06-22 Havoc Pennington <hp@pobox.com>
8801 * mono/Message.cs: implement Message.Wrap() that ensures we only
8802 have a single C# wrapper per DBusMessage, assuming it works which
8803 it probably doesn't.
8805 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8806 (dbus_message_free_data_slot): new
8807 (dbus_message_set_data): new
8808 (dbus_message_get_data): new
8810 2003-06-22 Havoc Pennington <hp@pobox.com>
8812 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8813 (_dbus_data_slot_allocator_alloc): rework these to keep a
8814 reference count on each slot and automatically manage a global
8815 slot ID variable passed in by address
8817 * bus/bus.c: convert to new dataslot API
8819 * dbus/dbus-bus.c: convert to new dataslot API
8821 * dbus/dbus-connection.c: convert to new dataslot API
8823 * dbus/dbus-server.c: convert to new dataslot API
8825 * glib/dbus-gmain.c: ditto
8829 * bus/connection.c: ditto
8831 2003-06-22 Anders Carlsson <andersca@codefactory.se>
8833 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8834 after the gcj checks so that the correct configuration tags
8835 will be added to libtool.
8837 * dbus-glib-1.pc.in: No need to specify any includes since
8838 dbus-1.pc.in has those.
8840 2003-06-22 Havoc Pennington <hp@pobox.com>
8842 * mono/*, gcj/*, configure.in, Makefile.am:
8843 Check in makefiles and subdirs for mono and gcj bindings.
8844 Neither binding actually exists, just trying to get through
8845 all the build and other boring bits.
8847 2003-06-21 Philip Blundell <philb@gnu.org>
8849 * tools/dbus-monitor.1: Updated.
8851 * tools/dbus-send.1: Likewise.
8853 2003-06-20 Anders Carlsson <andersca@codefactory.se>
8855 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8856 for hangup and error after checking read so we won't discard
8857 pending data if both hangup and read are set.
8859 2003-06-19 Philip Blundell <philb@gnu.org>
8861 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8863 * tools/dbus-send.c: Accept both --system and --session.
8865 * tools/dbus-monitor.c: Same here.
8867 2003-06-19 Anders Carlsson <andersca@codefactory.se>
8869 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8870 from C++ (Patch by Miloslav Trmac).
8872 2003-06-15 Joe Shaw <joe@assbarn.com>
8874 * configure.in: Check for socklen_t.
8876 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8878 * test/test-segfault.c: Add #include <sys/time.h>
8880 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8881 dbus-launch needs it.
8883 2003-06-09 Havoc Pennington <hp@redhat.com>
8885 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8886 SUN_LEN, it breaks abstract socket usage
8888 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8891 2003-06-04 Havoc Pennington <hp@pobox.com>
8893 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8894 using unix:abstract=/foo, and when listening in a tmpdir
8895 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8897 * dbus/dbus-transport.c (_dbus_transport_open): support
8900 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8901 support abstract sockets
8903 * dbus/dbus-transport-unix.c
8904 (_dbus_transport_new_for_domain_socket): support abstract sockets
8906 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8907 toggle as an argument, implement abstract namespace support
8908 (_dbus_listen_unix_socket): ditto
8910 * configure.in: add --enable-abstract-sockets and implement
8911 a configure check for autodetection of the right value.
8913 2003-06-01 Havoc Pennington <hp@pobox.com>
8915 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8916 in /tmp (though on Linux this will end up being useless,
8917 when we add abstract namespace support)
8919 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8922 2003-05-28 Colin Walters <walters@verbum.org>
8924 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8926 2003-05-18 Anders Carlsson <andersca@codefactory.se>
8928 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8930 2003-05-17 Colin Walters <walters@gnu.org>
8932 * tools/dbus-send.c: Don't exit with an error code if --help was
8933 passed. Default to using the session bus instead of the system
8936 * tools/dbus-launch.c: Ditto.
8938 * tools/dbus-monitor.c: Ditto.
8940 * tools/dbus-send.1: Update with new arguments.
8942 * tools/dbus-launch.c: Emit code to export variables. New
8943 arguments -s and -c to specify shell syntax, and a bit of code to
8944 autodetect syntax. Also, allow specifying a program to run.
8946 * tools/dbus-launch.1: Update with new arguments.
8948 * tools/dbus-send.1: Ditto.
8950 * tools/dbus-monitor.1: Ditto.
8952 2003-05-17 Havoc Pennington <hp@pobox.com>
8954 * bus/config-parser.c (merge_included): merge in policies from
8955 child configuration file.
8957 * bus/policy.c (bus_policy_merge): function to merge two policies
8960 2003-05-16 Havoc Pennington <hp@redhat.com>
8962 * dbus/dbus-connection.c: disable verbose lock spew
8964 * tools/dbus-send.c: add --print-reply command line option
8966 * tools/dbus-print-message.h (print_message): new util function
8967 shared by dbus-send and dbus-monitor
8969 * tools/dbus-monitor.c (handler_func): exit on disconnect
8971 * dbus/dbus-transport-unix.c (do_reading): if the transport is
8972 disconnected, don't try to use the read_watch
8974 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8975 so we can find this bug more easily
8977 2003-05-16 Havoc Pennington <hp@redhat.com>
8979 * bus/policy.c (free_rule_list_func): avoid a crash when passed
8980 NULL as DBusHashTable is annoyingly likely to do.
8982 2003-05-16 Colin Walters <walters@verbum.org>
8984 * tools/dbus-monitor.c: Add --session argument and usage()
8987 * tools/dbus-monitor.1: Update with new --session arg.
8989 * bus/Makefile.am (install-data-hook): Create
8990 $(libdir)/dbus-1.0/services so that the session bus is happy.
8992 2003-05-15 Havoc Pennington <hp@redhat.com>
8994 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8995 on non-x86. ifdef's are evil.
8997 2003-05-15 Havoc Pennington <hp@redhat.com>
8999 * configure.in: 0.11
9003 * bus/Makefile.am (initddir): apparently we are supposed to put
9004 init scripts in /etc/rc.d/init.d not /etc/init.d
9006 * bus/Makefile.am: remove the "you must --enable-tests to make
9007 check" as it broke distcheck
9009 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9011 2003-05-13 James Willcox <jwillcox@gnome.org>
9014 * bus/activation.c: (bus_activation_service_created),
9015 (bus_activation_activate_service):
9016 * bus/driver.c: (bus_driver_send_service_deleted),
9017 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9018 (bus_driver_send_service_acquired),
9019 (bus_driver_send_welcome_message),
9020 (bus_driver_handle_list_services):
9021 * bus/session.conf.in:
9022 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9023 (dbus_bus_service_exists), (dbus_bus_activate_service):
9026 Add some convenience API which lets you activate a service, and did a
9027 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9028 and dbus_message_get_args()
9030 2003-05-11 Havoc Pennington <hp@pobox.com>
9032 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9033 calling _dbus_marshal_validate_arg() for every byte in a byte
9036 * dbus/dbus-message-handler.c: use atomic reference counting to
9037 reduce number of locks slightly; the global lock in here sucks
9039 * dbus/dbus-connection.c
9040 (_dbus_connection_update_dispatch_status_and_unlock): variant of
9041 update_dispatch_status that can be called with lock held; then use
9042 in a couple places to reduce locking/unlocking
9043 (dbus_connection_send): hold the lock over the whole function
9044 instead of acquiring it twice.
9046 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9048 * bus/connection.c (bus_connections_setup_connection): fix access
9049 to already-freed memory.
9051 * dbus/dbus-connection.c: keep a little cache of linked list
9052 nodes, to avoid using the global linked list alloc lock in the
9053 normal send-message case. Instead we just use the connection lock
9054 that we already have to take.
9056 * dbus/dbus-list.c (_dbus_list_find_last): new function
9058 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9059 change to use a struct for the atomic type; fix docs,
9060 they return value before increment, not after increment.
9062 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9063 (_dbus_string_append_8_aligned): new functions to try to
9064 microoptimize this operation.
9065 (reallocate_for_length): break this out of set_length(), to
9066 improve profile info, and also so we can consider inlining the
9069 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9070 strings with some preallocation, cuts down on our calls to realloc
9071 a fair bit. Though if we can get the "move entire string to empty
9072 string" optimization below to kick in here, it would be better.
9074 * dbus/dbus-string.c (_dbus_string_move): just call
9075 _dbus_string_move_len
9076 (_dbus_string_move_len): add a special case for moving
9077 an entire string into an empty string; we can just
9078 swap the string data instead of doing any reallocs.
9079 (_dbus_string_init_preallocated): new function
9081 2003-05-11 Havoc Pennington <hp@pobox.com>
9083 Write a "test-profile" that does echo client-server with threads;
9084 profile reveals lock contention, memcpy/realloc of buffers, and
9085 UTF-8 validation as hot spots. 20% of lock contention eliminated
9086 with dbus_atomic_inc/dec implementation on x86. Much remaining
9087 contention is global mempool locks for GList and DBusList.
9089 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9092 * dbus/dbus-connection.c (struct DBusConnection): use
9093 dbus_atomic_t for the reference count
9095 * dbus/dbus-message.c (struct DBusMessage): declare
9096 dbus_atomic_t values as volatile
9098 * configure.in: code to detect ability to use atomic integer
9099 operations in assembly, from GLib patch
9101 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9102 time, tired of it being wrong in threads and forked processes
9104 * glib/test-profile.c: a little program to bounce messages back
9105 and forth between threads and eat CPU
9107 * dbus/dbus-connection.c: add debug spew macros for debugging
9108 thread locks; include config.h at top; fix deadlock in
9109 dbus_connection_flush()
9111 2003-05-08 Havoc Pennington <hp@pobox.com>
9113 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9114 data from getting written, and there wasn't a good reason to
9117 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9118 dbus_verbose lines in test coverage
9119 (main): add list of functions sorted by # of untested blocks
9120 to the coverage report
9122 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9124 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9126 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9127 extend test coverage
9129 * test/data/auth/cancel.auth-script: test canceling an
9132 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9133 aren't used. in CVS history if we end up needing them.
9135 2003-05-04 Havoc Pennington <hp@pobox.com>
9137 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9140 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9141 function, which assumed length was in # of strings, not bytes
9143 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9146 * dbus/dbus-connection.c
9147 (_dbus_connection_queue_received_message): disable function for
9148 now, we are only using it in test mode
9150 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9151 remove a mistaken FIXME
9153 2003-05-04 Havoc Pennington <hp@pobox.com>
9155 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9156 unlock mutex on successful return, patch from Anders Gustafsson
9158 2003-05-04 Havoc Pennington <hp@pobox.com>
9160 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9163 2003-05-04 Havoc Pennington <hp@pobox.com>
9165 * tools/dbus-launch.c: implement
9167 * bus/main.c (main), bus/bus.c (bus_context_new):
9168 implement --print-pid and --fork
9170 2003-05-03 Havoc Pennington <hp@redhat.com>
9172 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9173 the address had no value, and add to test suite. Fix and
9174 regression test from Miloslav Trmac
9176 2003-05-03 Havoc Pennington <hp@pobox.com>
9178 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9179 watch is invalid when handled
9181 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9182 dbus-launch utility to launch the bus from a shell script. Didn't
9183 actually implement dbus-launch yet, it's just a placeholder still.
9185 2003-05-03 Havoc Pennington <hp@pobox.com>
9187 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9188 daemon; also documents daemon config file, so replaces
9189 doc/config-file.txt. Corrected some stuff from config-file.txt in
9190 the process of moving it.
9192 2003-05-03 Havoc Pennington <hp@pobox.com>
9194 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9197 2003-05-03 Colin Walters <walters@verbum.org>
9199 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9200 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9202 * Makefile.am: Update to use new .pc versioning scheme.
9204 2003-05-02 Havoc Pennington <hp@redhat.com>
9206 * bus/system.conf.in: allow send/receive to/from message bus
9209 2003-04-30 Havoc Pennington <hp@redhat.com>
9211 * configure.in: print a note when building with unit tests and
9214 2003-04-30 Havoc Pennington <hp@redhat.com>
9216 * Makefile.am: add a check-local that complains if you didn't
9217 configure with --enable-tests
9219 2003-04-29 Havoc Pennington <hp@redhat.com>
9221 * glib/dbus-gmain.c: docs cleanups
9223 * dbus/dbus-types.h: add docs on int64 types
9225 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9226 public API docs section
9228 2003-04-29 Havoc Pennington <hp@redhat.com>
9230 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9231 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9232 parallel install API version, not with the D-BUS package version.
9234 * HACKING: move some of README over here
9236 * README: updates, and document API/ABI policy
9238 * configure.in: reindentation
9240 2003-04-29 Havoc Pennington <hp@redhat.com>
9242 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9243 to use this library" to be sure people have the right
9246 2003-04-28 Havoc Pennington <hp@redhat.com>
9248 * configure.in: add --enable-docs which by default is auto yes if
9249 doxygen and db2html found, no otherwise; but can be forced on/off
9251 * doc/Makefile.am: conditionalize whether to build docs on
9254 2003-04-28 Havoc Pennington <hp@redhat.com>
9256 * configure.in: 0.10
9260 * bus/system.conf.in: add <includedir>system.d</includedir>
9262 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9263 username was provided but not uid
9265 * bus/config-parser.c (struct BusConfigParser): keep track of
9266 whether the parser is toplevel or was included; change some
9267 of the error handling if it's included.
9269 2003-04-27 Havoc Pennington <hp@pobox.com>
9273 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9274 report correct status if we finish processing authentication
9275 inside this function.
9277 * bus/activation.c (try_send_activation_failure): use
9278 bus_transaction_send_error_reply
9280 * bus/connection.c (bus_connection_get_groups): return an error
9281 explaining the problem
9283 * bus/bus.c (bus_context_check_security_policy): implement
9284 restriction here that inactive connections can only send the
9285 hello message. Also, allow bus driver to send anything to
9288 * bus/connection.c (bus_connection_complete): create the
9289 BusClientPolicy here instead of on-demand.
9290 (bus_connection_get_policy): don't return an error
9292 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9293 sender field in message being replied to
9295 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9296 causing it to return FALSE always
9298 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9299 we checked sender rather than destination
9301 2003-04-25 Havoc Pennington <hp@redhat.com>
9303 test suite is slightly hosed at the moment, will fix soon
9305 * bus/connection.c (bus_connections_expire_incomplete): fix to
9306 properly disable the timeout when required
9307 (bus_connection_set_name): check whether we can remove incomplete
9308 connections timeout after we complete each connection.
9310 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9311 probably still broken.
9313 * bus/services.c (bus_registry_acquire_service): implement max
9314 number of services owned, and honor allow/deny rules on which
9315 services a connection can own.
9317 * bus/connection.c (bus_connection_get_policy): report errors here
9319 * bus/activation.c: implement limit on number of pending
9322 2003-04-25 Havoc Pennington <hp@redhat.com>
9324 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9325 where we used >= 0 instead of != DBUS_UID_UNSET.
9327 2003-04-25 Havoc Pennington <hp@redhat.com>
9329 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9330 were toggled without add/remove, fix from Anders Gustafsson
9332 2003-04-24 Havoc Pennington <hp@redhat.com>
9334 * test/data/valid-config-files/basic.conf: add <limit> tags to
9337 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9338 <limit> tag in configuration file.
9340 2003-04-24 Havoc Pennington <hp@redhat.com>
9342 * bus/dispatch.c: somehow missed some name_is
9344 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9345 (_dbus_timeout_set_interval): new
9347 * bus/connection.c (bus_connections_setup_connection): record time
9348 when each connection is first set up, and expire them after the
9349 auth timeout passes.
9351 2003-04-24 Havoc Pennington <hp@redhat.com>
9353 * dbus/dbus-message.c (dbus_message_name_is): rename
9354 (dbus_message_service_is): rename
9355 (dbus_message_sender_is): rename
9356 (dbus_message_get_service): rename
9358 2003-04-24 Havoc Pennington <hp@redhat.com>
9360 * configure.in: add --enable-checks
9362 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9364 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9365 to use thread locks.
9366 (_dbus_connection_handler_destroyed_locked): move some private
9367 functions into proper docs group
9369 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9370 _dbus_return_val_if_fail
9372 Throughout: use dbus_return_if_fail
9374 2003-04-23 James Willcox <jwillcox@gnome.org>
9377 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9378 (dbus_connection_setup_with_g_main),
9379 (dbus_server_setup_with_g_main):
9380 * glib/test-dbus-glib.c: (main):
9381 * glib/test-thread-client.c: (main):
9382 * glib/test-thread-server.c: (new_connection_callback), (main):
9383 * tools/dbus-monitor.c: (main):
9385 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9386 and dbus_server_setup_with_g_main().
9388 2003-04-20 Havoc Pennington <hp@pobox.com>
9390 * doc/dbus-specification.sgml: document the restrictions on
9391 message and service names
9393 2003-04-22 Havoc Pennington <hp@redhat.com>
9395 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9396 support, and do some code cleanups to share more code and
9397 speed up array marshal/demarshal.
9399 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9401 * configure.in: generate dbus-arch-deps.h
9403 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9406 2003-04-22 Havoc Pennington <hp@redhat.com>
9408 * test/data/valid-messages/opposite-endian.message: fix test
9409 to use proper type for rply field
9411 * test/data/invalid-messages: add tests for below validation
9413 * dbus/dbus-message.c (decode_header_data): validate field types,
9414 and validate that named fields are valid names
9415 (decode_name_field): consider messages in the
9416 org.freedesktop.Local. namespace to be invalid.
9418 * dbus/dbus-string.c (_dbus_string_validate_name): new
9420 2003-04-19 Havoc Pennington <hp@pobox.com>
9422 * bus/driver.c (bus_driver_handle_hello): check limits and
9423 return an error if they are exceeded.
9425 * bus/connection.c: maintain separate lists of active and inactive
9426 connections, and a count of each. Maintain count of completed
9427 connections per user. Implement code to check connection limits.
9429 * dbus/dbus-list.c (_dbus_list_unlink): export
9431 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9432 number of bytes in the message queue for a connection
9434 2003-04-18 Havoc Pennington <hp@pobox.com>
9436 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9438 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9441 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9442 on realloc be sure to update the pointer in the keyring
9444 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9445 offset to avoid writing to unallocated memory
9447 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9448 try the next mechanism, so we properly handle OOM
9450 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9452 (_dbus_keyring_new): fix OOM bug
9453 (_dbus_keyring_new_homedir): always set error; impose a maximum
9454 number of keys we'll load from the file, mostly to speed up the
9455 test suite and make its OOM checks more useful, but also for
9458 * dbus/dbus-auth.c (process_error_server): reject authentication
9459 if we get an error from the client
9460 (process_cancel): on cancel, send REJECTED, per the spec
9461 (process_error_client): send CANCEL if we get an error from the
9464 2003-04-18 Havoc Pennington <hp@pobox.com>
9466 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9469 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9472 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9473 about DBUS_TEST_HOMEDIR once
9475 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9478 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9479 config file so we test the right thing
9481 Throughout: assorted docs improvements
9483 2003-04-18 Havoc Pennington <hp@pobox.com>
9485 * glib/dbus-gmain.c: adapt to watch changes
9487 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9489 * dbus/dbus-server.h: remove dbus_server_handle_watch
9491 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9493 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9494 like DBusTimeout, so we don't need dbus_connection_handle_watch
9497 2003-04-17 Havoc Pennington <hp@redhat.com>
9499 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9500 database usage so it all goes via the DBusUserDatabase cache.
9502 2003-04-17 Havoc Pennington <hp@redhat.com>
9504 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9505 there was an OOM watch we skipped, we always return TRUE so we
9506 iterate again to have a look at it again. Fixes test suite hang.
9507 Code rearrangement also lets us lose some memset and only iterate
9508 over callbacks once.
9510 * bus/driver.c (bus_driver_handle_message): sense of test for
9513 2003-04-16 Havoc Pennington <hp@pobox.com>
9515 * doc/dbus-specification.sgml: make spec say serials are unsigned
9517 * dbus/dbus-message.h: change message serials to unsigned
9519 * dbus/dbus-connection.c: adapt to message serials being unsigned
9521 2003-04-15 Havoc Pennington <hp@pobox.com>
9523 * bus/bus.c: create and keep around a shared DBusUserDatabase
9526 * bus/connection.c (bus_connection_get_groups): don't cache
9527 groups for user in the connection object, since user database
9528 object now does that.
9530 2003-04-16 Havoc Pennington <hp@redhat.com>
9532 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9533 list of size counters
9534 (_dbus_message_loader_putback_message_link): put back a popped link
9536 * dbus/dbus-connection.c
9537 (dbus_connection_set_max_live_messages_size): rename
9539 (dbus_connection_get_outgoing_size): get size of outgoing
9541 (_dbus_connection_set_connection_counter): remove this cruft
9543 2003-04-14 Havoc Pennington <hp@redhat.com>
9545 * dbus/dbus-userdb.c: user database abstraction, mostly to get
9546 caching, but at some point we might want to be able to use a
9549 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9550 SHA1 conf file to test the sha1 auth mechanism, since the regular
9551 test always uses EXTERNAL when available.
9554 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9555 add conf file that requires use of sha1 auth
9557 2003-04-13 Havoc Pennington <hp@pobox.com>
9559 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9560 from Philip Blundell to send messages and monitor them.
9562 2003-04-13 Havoc Pennington <hp@pobox.com>
9564 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9567 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9570 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9571 fix to only recover unused bytes if we're already authenticated
9572 (_dbus_transport_get_is_authenticated): fix to still mark us
9573 authenticated if there are unused bytes.
9575 * bus/dispatch.c: implement security policy checking
9577 * bus/connection.c (bus_transaction_send_from_driver): new
9579 * bus/bus.c (bus_context_check_security_policy): new
9581 * bus/dispatch.c (send_service_nonexistent_error): delete this,
9582 now we just set the DBusError and it gets converted to an error
9585 * bus/connection.c (allow_user_function): enable code using actual
9586 data from the config file
9588 * bus/policy.c (list_allows_user): handle wildcard rules for
9589 user/group connection perms
9591 2003-04-13 Havoc Pennington <hp@pobox.com>
9593 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9595 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9597 * bus/policy.c (bus_policy_append_mandatory_rule)
9598 (bus_policy_append_default_rule, bus_policy_append_user_rule)
9599 (bus_policy_append_group_rule): new functions
9601 2003-04-12 Havoc Pennington <hp@pobox.com>
9603 * bus/config-parser.c (bus_config_parser_new): fix a memleak
9605 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9606 the pid/gid/uid, just for paranoia.
9608 * test/break-loader.c (randomly_do_n_things): find a byte
9609 containing a type code, and randomly change it to a different
9612 2003-04-12 Havoc Pennington <hp@pobox.com>
9614 * bus/policy.h: change BusPolicy to be the thing from the config
9615 file, and rename old BusPolicy to BusClientPolicy
9617 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9618 match change in how policy works
9620 * dbus/dbus-internals.h: mark assert_not_reached as
9621 __attribute((noreturn))__
9623 2003-04-11 Havoc Pennington <hp@redhat.com>
9625 * doc/dbus-specification.sgml: fix a spot with the wrong name for
9626 the broadcast service. Use boolean return for ServiceExists.
9628 2003-04-11 Havoc Pennington <hp@redhat.com>
9630 * configure.in: add another directory to look for qt in.
9632 2003-04-11 Havoc Pennington <hp@redhat.com>
9634 * AUTHORS: add Colin Walters
9636 2003-04-11 Havoc Pennington <hp@redhat.com>
9642 2003-04-11 Havoc Pennington <hp@redhat.com>
9644 * bus/messagebus.in: remove pid file when stopping the
9645 message bus, since the bus won't have privileges to remove it
9648 2003-04-11 Havoc Pennington <hp@redhat.com>
9650 * bus/bus.c (bus_context_new): move credentials change after
9653 2003-04-11 Havoc Pennington <hp@pobox.com>
9655 * test/decode-gcov.c: add "below average functions" to the
9656 coverage report, and change how some of the code works.
9658 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9659 not in the coverage stats.
9661 * test/test-service.c (main): use _dbus_verbose not fprintf in a
9662 couple places so running the test suite doesn't result in megaspam.
9664 2003-04-11 Havoc Pennington <hp@pobox.com>
9666 * bus/dispatch.c (check_existent_service_activation): accept a no
9667 memory error in a place we didn't before
9669 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9670 in case the first one failed," since the test suite is less
9673 2003-04-10 Havoc Pennington <hp@pobox.com>
9675 * bus/dispatch.c (check_segfault_service_activation): add test
9676 for launching an executable that just crashes.
9678 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9679 don't leave a million cores. We'll see how portable this is.
9681 2003-04-10 Havoc Pennington <hp@pobox.com>
9683 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9684 the possible parent failures before we fork, so that we don't
9685 fail to create a babysitter after creating the child.
9687 * bus/activation.c (bus_activation_activate_service): kill child
9688 if we don't successfully complete the activation.
9690 2003-04-10 Havoc Pennington <hp@redhat.com>
9692 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9693 the connection if it's disconnected
9695 * bus/activation.c (bus_activation_service_created): use new
9696 transaction features to roll back removal of pending activation if
9697 we don't successfully create the service after all. Don't remove
9698 pending activation if the function fails.
9700 * dbus/dbus-list.c (_dbus_list_insert_before_link)
9701 (_dbus_list_insert_after_link): new code to facilitate
9704 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9705 new functionality, so we can preallocate the ability to insert
9708 * bus/connection.c (bus_transaction_add_cancel_hook): new function
9709 allowing us to put custom hooks in a transaction to be used for
9710 cancelling said transaction
9712 * doc/dbus-specification.sgml: add some discussion of secondary
9713 service owners, and disallow zero-length service names
9715 * bus/services.c (bus_registry_acquire_service): new function,
9716 splits out part of bus_driver_handle_acquire_service() and fixes
9717 a bug where we didn't remove the service doing the acquiring
9718 from the secondary queue if we failed to remove the current owner
9719 from the front of the queue.
9721 2003-04-10 Alexander Larsson <alexl@redhat.com>
9723 * doc/dbus-specification.sgml:
9724 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9726 2003-04-10 Alexander Larsson <alexl@redhat.com>
9731 Added files to cvsignore
9733 * dbus/dbus-message.h:
9734 * dbus/dbus-message.c: (dbus_message_iter_get_named):
9735 Make get_named() take two out argument and return a boolean.
9736 (dbus_message_iter_get_args_valist):
9737 Update usage of get_named().
9738 (dbus_message_iter_append_byte):
9740 (dbus_message_iter_append_named)
9742 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9745 2003-04-10 Alexander Larsson <alexl@redhat.com>
9747 * dbus/dbus-marshal.[ch]:
9748 Add array_type_pos argument to _dbus_marshal_validate_arg.
9749 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9751 * dbus/dbus-message.[ch]:
9752 Multi-dimensional arrays have full type specification in the
9753 outermost array. Iter code re-arranged to handle this.
9754 Added some more iter tests.
9756 * doc/dbus-specification.sgml:
9759 Update new array encoding description.
9760 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9762 * test/data/invalid-messages/array-with-mixed-types.message:
9763 * test/data/valid-messages/array-of-array-of-uint32.message:
9764 Change to the new array format.
9766 * test/data/invalid-messages/too-short-dict.message:
9769 * test/data/valid-messages/recursive-types.message:
9770 Fix up and extend test.
9772 2003-04-10 Havoc Pennington <hp@pobox.com>
9774 * bus/dispatch.c: lots of fixes
9776 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9777 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9778 that was crack, broke the test service.
9780 * dbus/dbus-transport.c (_dbus_transport_open): fix error
9781 handling to avoid piling up errors if we get a failure on the
9784 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9785 pid in assertion failures.
9787 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9788 to some fixed size of file descriptor array. Don't return TRUE
9789 anytime a timeout exists, that led to lots of busy loop silliness
9792 2003-04-09 Havoc Pennington <hp@redhat.com>
9794 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9795 I'd checked this in earlier but hadn't.
9797 2003-04-09 Havoc Pennington <hp@redhat.com>
9799 * bus/dispatch.c (bus_dispatch_test): get a bit further through
9800 the activation test (man this is getting old!)
9802 2003-04-09 Havoc Pennington <hp@redhat.com>
9804 * test/test-utils.c: use dispatch status function to fix this up
9806 * bus/connection.c (connection_watch_callback): don't dispatch
9808 (connection_timeout_callback): don't dispatch from here
9809 (bus_connections_setup_connection): set the dispatch status function
9810 (bus_connection_disconnected): unset it
9812 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9813 used to add a connection to be dispatched
9814 (_dbus_loop_iterate): do the dispatching at the end of each
9817 * dbus/dbus-connection.c
9818 (dbus_connection_set_dispatch_status_function): new function
9819 allowing us to fix up main loop usage
9820 (_dbus_connection_last_unref): free all the various function
9822 (dbus_connection_dispatch): call the DispatchStatusFunction
9823 whenever this function returns
9824 (dbus_connection_handle_watch): call DispatchStatusFunction
9825 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9826 (reply_handler_timeout): call DispatchStatusFunction
9827 (dbus_connection_flush): call DispatchStatusFunction
9829 2003-04-09 Havoc Pennington <hp@redhat.com>
9831 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9834 * bus/dispatch.c (check_service_activated): fix bug in test
9836 * dbus/dbus-mainloop.c (check_timeout): fix this up
9838 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9839 verbose output so we can sort out output from different processes,
9840 e.g. in the activation case.
9842 2003-04-08 Colin Walters <walters@gnu.org>
9844 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9846 (bus_context_new): Set it.
9847 (bus_context_unref): Use it to delete the pid file.
9849 2003-04-08 Havoc Pennington <hp@redhat.com>
9851 * test/data/invalid-messages/array-with-mixed-types.message:
9852 regression test that fails for the moment
9854 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9855 tests for convenience
9857 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9858 array of nil, it broke things.
9860 * test/data/invalid-messages/array-of-nil.message: regression test
9862 * test/data/valid-messages/array-of-array-of-uint32.message:
9863 happened to write this so added it to suite
9865 2003-04-08 Havoc Pennington <hp@redhat.com>
9867 * bus/driver.c (bus_driver_handle_acquire_service): init
9868 retval/reply before checking name
9870 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9871 recursion depth argument
9873 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9874 in the public struct for future extension
9876 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9879 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9882 * doc/dbus-specification.sgml: fix typo
9884 2003-04-08 Alexander Larsson <alexl@redhat.com>
9886 Implemented recursive types, named types and new-style iters
9889 * glib/test-thread-client.c: (thread_func):
9890 * glib/test-thread-server.c: (handle_test_message):
9891 * test/test-service.c: (handle_echo):
9900 * dbus/dbus-internals.c: (_dbus_type_to_string):
9901 Update for new types.
9903 * dbus/dbus-marshal.[ch]:
9904 Implement recursive types and the new marshalling format.
9905 Remove hardcoded dict marshalling.
9906 Marshal named types.
9908 * dbus/dbus-message-builder.c:
9910 Remove references to old types
9912 * dbus/dbus-message.[ch]:
9913 New non-refcounted iter API that supports recursive iters.
9914 Use iters for appending, including support for recursive
9916 Add byte and named type support.
9917 Update everything to new marshalling formats.
9918 Add tests for new API.
9920 * dbus/dbus-protocol.h:
9921 Remove old array types.
9922 Add types: BYTE, ARRAY, DICT, NAMED
9924 * dbus/dbus-string.c:
9925 * dbus/dbus-sysdeps.c:
9926 Make parse_double locale safe.
9928 * dbus/dbus-test-main.c:
9934 * doc/dbus-specification.sgml:
9937 * test/data/incomplete-messages/missing-body.message:
9938 * test/data/invalid-messages/bad-boolean.message:
9939 * test/data/invalid-messages/bad-boolean-array.message:
9940 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9941 * test/data/invalid-messages/boolean-has-no-value.message-raw:
9942 * test/data/invalid-messages/too-short-dict.message:
9943 * test/data/valid-messages/dict-simple.message:
9944 * test/data/valid-messages/dict.message:
9945 * test/data/valid-messages/emptiness.message:
9946 * test/data/valid-messages/lots-of-arguments.message:
9947 * test/data/valid-messages/no-padding.message:
9948 * test/data/valid-messages/recursive-types.message:
9949 Add missing NAME fields
9950 Fix up dicts & arrays
9952 * test/data/invalid-messages/dict-with-nil-value.message:
9953 Removed, this is not invalid anymore.
9955 * test/data/valid-messages/recursive-types.message:
9956 Add new test for deeply recursive types.
9958 2003-04-07 Havoc Pennington <hp@pobox.com>
9960 * bus/driver.c (bus_driver_handle_acquire_service): return an
9961 error if you try to acquire a service that starts with ':'
9963 2003-04-07 Havoc Pennington <hp@redhat.com>
9965 * doc/dbus-specification.sgml: require that base service names
9966 start with ':' and that the base service is created/deleted
9967 as first and last things a connection does on the bus
9969 * bus/dispatch.c (check_existent_service_activation): lots more
9970 work on the activation test; it doesn't fully pass yet...
9972 * test/test-service.c (main): fix so we don't memleak the
9973 connection to the message bus
9974 (filter_func): accept a message asking us to exit
9976 2003-04-06 Havoc Pennington <hp@pobox.com>
9978 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9981 * configure.in: fixes to Qt detection from Colin Walters
9983 * doc/Makefile.am: Only remove generated docbook dirs if they
9984 exist, from Colin Walters
9986 * dbus/dbus-bus.c: change how we set well-known connections to
9987 NULL, so that it works if a single connection is stored in
9988 two well-known array slots.
9990 * test/Makefile.am: remove a lot of stuff that isn't immediately
9991 useful, it's in CVS history if we want it.
9993 * test/test-service.c: use dbus-mainloop instead of that
9996 2003-04-06 Havoc Pennington <hp@pobox.com>
9998 * dbus/Makefile.am: split lists of sources into stuff that goes in
9999 the library, util functions that go in the lib and are also used
10000 elsewhere, and util functions that are used in tests/daemon but
10001 don't go in the lib.
10003 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10004 here so it can be used in test binaries also
10006 2003-04-06 Havoc Pennington <hp@pobox.com>
10008 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10009 here in the parent process, so we can return an error if it
10010 fails. Also, move some of the code into the child so the parent
10011 is less hosed if we fail midway through.
10013 * bus/bus.c (bus_context_new): move pidfile detection further up
10014 in the function, before we start overwriting sockets and such.
10016 * bus/messagebus.in: adjust this a bit, not sure if it will work.
10018 * configure.in: add --with-system-pid-file and --with-system-socket
10020 2003-04-06 Colin Walters <walters@verbum.org>
10022 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10024 * bus/system.conf.in: Declare a pidfile.
10026 * bus/bus.c (bus_context_new): Test for an existing pid file, and
10027 create one (if appropriate).
10029 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10030 (struct BusConfigParser) [pidfile]: New.
10031 (element_type_to_name, merge_included, start_busconfig_child)
10032 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10033 (bus_config_parser_unref): Free it.
10034 (bus_config_parser_get_pidfile): New function.
10036 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10038 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10040 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10042 * dbus/dbus-sysdeps.h: Prototype it.
10044 2003-04-06 Havoc Pennington <hp@pobox.com>
10046 * bus/bus.c (bus_context_new): print the address in here, rather
10047 than in main(), because we need to do it before forking the daemon
10049 * bus/dispatch.c (send_service_nonexistent_error): set the sender
10050 on the service nonexistent error
10052 * bus/driver.c (bus_driver_handle_acquire_service): set the
10053 sender on the AcquireService reply
10055 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10056 server also listen on a UNIX socket so services can connect to it.
10058 2003-04-06 Havoc Pennington <hp@pobox.com>
10060 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10061 so it detects deadlocks and also we actually init threads when
10064 2003-04-06 Havoc Pennington <hp@pobox.com>
10066 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10067 save the domain socket name, and unlink it when we disconnect the
10068 server. Means that at least when we exit normally, we won't leave
10069 a bunch of junk in /tmp
10071 * dbus/dbus-transport-unix.c
10072 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10073 memory management). (I was making a real change here but then
10076 2003-04-06 Havoc Pennington <hp@pobox.com>
10078 * bus/bus.c (bus_context_new): fix wrong handling of
10079 server_data_slot_unref() in the error case.
10081 * dbus/dbus-internals.h (_dbus_assert): change so it passes
10082 "(condition) != 0" to _dbus_real_assert so that
10083 "_dbus_assert (pointer)" doesn't cause a warning
10085 * bus/main.c (main): accept --print-address option to print out
10086 the message bus address
10088 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10090 * dbus/dbus-transport.c (_dbus_transport_open): special error for
10091 "tmpdir" option to unix: address on client side
10093 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10096 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10097 we can use to create sockets in the test suite.
10099 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10100 cleanly. To be used for testing.
10102 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10104 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10106 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10107 handle trying to call this when there's no servers active
10109 2003-04-05 Havoc Pennington <hp@pobox.com>
10113 * configure.in: 0.8
10115 2003-04-05 Havoc Pennington <hp@pobox.com>
10117 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10118 crash on startup. Need to get "try starting the daemon"
10119 in the test suite I guess. ;-)
10121 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10122 tracked the number of open connections; it's better done in
10123 application-specific code as you want it to span all servers etc.
10125 2003-04-05 Havoc Pennington <hp@pobox.com>
10127 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10128 patch from Colin Walters
10130 2003-04-05 Havoc Pennington <hp@pobox.com>
10132 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10133 reality; in fact multiple mechanisms are allowed.
10135 * dbus/dbus-internals.c (_dbus_real_assert)
10136 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10137 _dbus_assert_not_reached() into functions, so that they don't show
10138 up in basic block counts for test coverage, and don't use up as
10139 much disk space. Does mean slower execution speed though, so
10140 assumes --disable-asserts is the normal production case.
10142 2003-04-05 Havoc Pennington <hp@pobox.com>
10144 * test/Makefile.am (dist-hook): also dist *.in files
10148 * configure.in: 0.7
10150 2003-04-05 Havoc Pennington <hp@pobox.com>
10152 * dbus/dbus-string.c: docs warning
10154 * dbus/dbus-spawn.c: missing docs
10156 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10158 2003-04-05 Havoc Pennington <hp@pobox.com>
10160 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10163 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10164 to -1 once we've reaped the babysitter
10165 (_dbus_babysitter_handle_watch): do as much work as we can, not
10168 * bus/activation.c: add code using DBusBabysitter so that we
10169 handle it when a service fails to start up properly.
10170 (bus_activation_service_created): don't remove the activation
10171 entries as we go, just let them get removed when we free the pending
10172 activation. Unref reply messages after sending them.
10174 2003-04-05 Havoc Pennington <hp@pobox.com>
10176 * test/decode-gcov.c (main): print per-directory stats in the report
10178 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10180 2003-04-05 Havoc Pennington <hp@pobox.com>
10182 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10184 * test/decode-gcov.c: hack up a little program to suck data
10185 out of gcov files. Yes this is sort of silly.
10187 * configure.in: define something in config.h and do an
10188 AM_CONDITIONAL when gcov is enabled
10190 2003-04-04 Havoc Pennington <hp@redhat.com>
10192 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10193 return a "babysitter" object that is used to monitor the status of
10194 the spawned process and reap it when required.
10196 * test/test-segfault.c, test/test-exit.c,
10197 test/test-sleep-forever.c: binaries that do various lame things,
10198 used in the test suite.
10200 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10202 2003-04-03 Havoc Pennington <hp@pobox.com>
10204 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10205 in preparation for modifying it, dbus-sysdeps is getting
10206 a bit unmanageable.
10208 2003-04-03 Havoc Pennington <hp@redhat.com>
10210 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10213 * bus/*.[hc]: adapt to mainloop change
10215 2003-04-03 Havoc Pennington <hp@redhat.com>
10217 * bus/activation.c (load_directory): fix up memleaks
10218 (bus_activation_entry_free): free the entry
10220 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10221 we get one from the message bus; fix memleaks.
10223 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10225 2003-04-03 Havoc Pennington <hp@pobox.com>
10227 * bus/config-parser.c (bus_config_parser_unref): free
10228 list of mechanisms, bug discovered by test suite enhancements
10229 (putting system.conf and session.conf into suite)
10231 * test/Makefile.am, test/test-service.c: add placeholder for a
10232 test service that we'll activate as part of test suite. Doesn't
10235 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10236 setting NULL value, and use system malloc not dbus_malloc()
10237 when we have unavoidable memleakage.
10239 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10240 didn't work, and support DBUS_BUS_ACTIVATION.
10242 * bus/activation.c (child_setup): pass our well-known bus type to
10245 * bus/config-parser.c: support <type> to specify well-known type
10247 * doc/dbus-specification.sgml: document the env variables to
10248 locate well-known buses and find service activator
10250 2003-04-02 Havoc Pennington <hp@redhat.com>
10252 * test/Makefile.am (all-local): add a rule to copy tests to
10253 builddir, so we can have generated tests. Use this to remove the
10254 silly hack for testing system.conf and session.conf. Will use this
10255 shortly to generate .service files pointing to test binaries.
10257 2003-04-02 Havoc Pennington <hp@redhat.com>
10259 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10260 current alloc and needed new length, not max of the doubled
10261 allocation and needed new length. Also, when building tests,
10262 don't do the double-allocation stuff, just realloc every time.
10264 2003-04-02 Havoc Pennington <hp@redhat.com>
10266 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10268 (_dbus_string_get_dirname): new
10269 (_dbus_sysdeps_test): new
10270 (_dbus_directory_open): include dirnames in error messages
10272 * bus/config-parser.c: interpret <include> and <includedir> and
10273 <servicedir> relative to config file location if the given
10274 filename is not absolute.
10276 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10278 2003-04-02 Havoc Pennington <hp@redhat.com>
10280 * bus/connection.c (bus_transaction_send_error_reply): set sender
10281 service for the error, and unref the reply on success
10283 * bus/activation.c: convert to use BusTransaction so OOM can be
10285 (bus_activation_service_created): set sender of the message
10287 2003-04-01 Havoc Pennington <hp@redhat.com>
10289 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10290 <includedir> (at least mostly)
10292 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10293 first, then the user ID
10295 2003-04-01 Havoc Pennington <hp@pobox.com>
10297 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10300 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10302 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10304 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10305 socket 0777, and unlink any existing socket.
10307 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10308 the configuration file so specifies; set up auth mechanism
10311 * bus/config-parser.c (bus_config_parser_content): add support
10312 for <fork> option and fill in code for <auth>
10314 * bus/system.conf.in: add <fork/> to default configuration,
10315 and limit auth mechanisms to EXTERNAL
10317 * doc/config-file.txt (Elements): add <fork>
10319 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10320 (_dbus_change_identity): new function
10322 2003-03-31 Havoc Pennington <hp@redhat.com>
10324 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10325 (_dbus_listen_unix_socket): fix off-by-one error in null
10326 termination spotted by Nalin
10328 2003-03-31 Havoc Pennington <hp@redhat.com>
10330 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10331 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10332 having a real home directory available.
10334 2003-03-31 Havoc Pennington <hp@redhat.com>
10336 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10338 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10340 * configure.in: add support for specifying a style of init script
10343 2003-03-31 Havoc Pennington <hp@redhat.com>
10345 Fix some annoying DBusString API and fix all affected code.
10347 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10348 max_length argument
10349 (_dbus_string_get_data): change to return string instead of using
10351 (_dbus_string_get_const_data): ditto
10352 (_dbus_string_get_data_len): ditto
10353 (_dbus_string_get_const_data_len): ditto
10355 2003-03-31 Havoc Pennington <hp@redhat.com>
10357 * bus/main.c (main): fix up the command line arguments to be nicer
10359 2003-03-31 Havoc Pennington <hp@redhat.com>
10361 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10362 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10363 final location that lands in the config file
10365 * bus/config-loader-expat.c (bus_config_load): fix type of
10366 XML_Parser variable
10368 * doc/TODO: remove TODO item for dbus_bus_get()
10370 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10372 2003-03-31 Havoc Pennington <hp@pobox.com>
10374 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10375 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10376 argument since they are always client side
10378 * dbus/dbus-server.c (dbus_server_get_address): new function
10380 * bus/main.c (main): take the configuration file as an argument.
10382 * test/data/valid-config-files/debug-allow-all.conf: new file to
10383 use with dispatch.c tests for example
10385 * bus/test-main.c (main): require test data dir
10387 * bus/bus.c (bus_context_new): change this to take a
10388 configuration file name as argument
10390 * doc/config-file.txt (Elements): add <servicedir>
10392 * bus/system.conf, bus/session.conf: new files
10394 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10395 well-known socket if none set
10397 * configure.in: create system.conf and session.conf
10399 2003-03-30 Havoc Pennington <hp@pobox.com>
10401 * bus/config-parser.c: hacking
10403 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10404 to shut down, since it could cause weirdness with the DBusList
10407 * dbus/dbus-list.c (_dbus_list_test): add tests for the
10408 link-oriented stack routines
10409 (alloc_link): free the mempool if the first alloc from it fails
10411 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10413 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10415 (_dbus_string_skip_white): new
10417 * doc/config-file.txt (Elements): add <includedir>
10419 2003-03-28 Havoc Pennington <hp@pobox.com>
10421 * dbus/dbus-string.c (_dbus_string_copy_data_len)
10422 (_dbus_string_copy_data): new functions
10424 2003-03-28 Anders Carlsson <andersca@codefactory.se>
10426 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10430 * dbus/dbus-memory.c:
10433 2003-03-28 Havoc Pennington <hp@pobox.com>
10435 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10436 I think it may have just been superstition. Not sure.
10438 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10439 failures that were not being handled.
10441 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10443 * dbus/dbus-memory.c: add ability to set number of mallocs in a
10444 row that will fail on out-of-memory.
10446 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10447 function for testing out-of-memory handling.
10449 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10450 allocation functions, they do map exactly to the expat ones.
10452 2003-03-27 Havoc Pennington <hp@redhat.com>
10454 * bus/config-loader-libxml.c (bus_config_load): add another error
10457 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10460 Add note about automatic service activation.
10462 * doc/dbus-specification.sgml:
10463 Rename the specification and clarify a few things.
10465 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10468 * dbus/dbus-address.c:
10469 * dbus/dbus-dict.c:
10470 * dbus/dbus-marshal.c:
10471 * dbus/dbus-server-debug-pipe.c:
10472 * dbus/dbus-transport-unix.c:
10473 Fix documentation warnings.
10475 2003-03-26 Havoc Pennington <hp@pobox.com>
10477 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10478 after every test so it's quick and easy to see which leaked, and
10479 so we test multiple dbus_shutdown() calls
10481 * configure.in: change configure.in XML stuff to also support
10484 * config-loader-libxml.c: some hacking
10486 * config-loader-expat.c: some hacking
10488 * config-parser.c: some hacking, plus tests
10490 2003-03-25 Havoc Pennington <hp@redhat.com>
10492 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10494 * configure.in: add --with-xml option to specify XML library,
10495 right now only libxml is supported.
10497 * bus/config-loader-libxml.c, config-parser.c: sync some minor
10498 nonworking code between home and work, still just stubs
10500 2003-03-24 Havoc Pennington <hp@redhat.com>
10502 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10505 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10506 NULL argument for "message" if the error is a well-known one,
10507 fill in a generic message in this case.
10509 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10512 * bus/test.c (bus_test_flush_bus): add
10514 * bus/policy.c (bus_policy_test): test code stub
10516 2003-03-24 Havoc Pennington <hp@pobox.com>
10518 * bus/connection.c (bus_connections_setup_connection): set up
10519 the "can this user connect" function, but it always returns
10520 TRUE until we have a config file parser so we can have a config
10521 file that allows connections.
10523 2003-03-23 Havoc Pennington <hp@pobox.com>
10525 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10526 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10527 the mutex, so we can check for proper memory management
10530 * dbus/dbus-dataslot.c: remove the mutex from
10531 DBusDataSlotAllocator and lock it manually when using it,
10532 to simplify fitting it into the global slots framework.
10534 * dbus/dbus-threads.c (init_static_locks): rework how we're
10535 handling global locks so they are easily shut down.
10537 * bus/policy.c (bus_policy_append_rule): fix
10539 * bus/test-main.c (main): check for memleaks
10541 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10542 test suite check for memleaks
10544 * dbus/dbus-memory.c: add support in test mode for tracking
10545 number of outstanding blocks
10547 2003-03-23 Havoc Pennington <hp@pobox.com>
10549 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10552 * dbus/dbus-hash.h: add ULONG hash keys
10554 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10555 (_dbus_get_group_id): new function
10557 2003-03-20 Havoc Pennington <hp@redhat.com>
10559 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10561 (dbus_connection_get_unix_user): new function
10563 2003-03-20 Havoc Pennington <hp@pobox.com>
10565 * bus/connection.c (bus_connection_send_oom_error): assert that
10566 message has a sender
10567 (connection_execute_transaction): ditto
10568 (bus_connection_preallocate_oom_error): fix to set the sender, and
10569 set recipient to the destination service, not the bus driver
10571 * bus/policy.c: hacking
10573 * dbus/dbus-message.c (dbus_message_service_is): new function
10574 (dbus_message_sender_is): new
10576 2003-03-19 Havoc Pennington <hp@redhat.com>
10578 * bus/policy.c: start sketching code for policy restrictions on
10579 what connections can do.
10581 2003-03-18 Havoc Pennington <hp@redhat.com>
10583 * doc/TODO: some notes on high-level todo items. Little nitpick
10584 stuff is all in @todo, so no need to add it here.
10586 * doc/config-file.txt: some notes on how config file might look
10588 2003-03-18 Anders Carlsson <andersca@codefactory.se>
10590 * configure.in: 0.6
10594 2003-03-17 Havoc Pennington <hp@redhat.com>
10596 * dbus/dbus-internals.h: add gcc attributes so that
10597 our printf-style functions warn on bad arguments to
10600 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10603 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10606 2003-03-17 Havoc Pennington <hp@redhat.com>
10608 * bus/test-main.c (main): make it print something as it runs
10609 so make check doesn't look stuck
10611 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10612 from CVS, now obsolete
10614 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10616 * bus/dispatch.c: (bus_dispatch):
10617 Refetch the service name since it may have been reallocated
10618 when dbus_message_set_sender was called.
10620 * dbus/dbus-sysdeps.c: (_dbus_accept):
10621 Add address and address length variables and use them to stop
10622 valgrind from complaining.
10624 2003-03-17 Havoc Pennington <hp@pobox.com>
10626 All tests pass, no memleaks, no valgrind complaints.
10628 * bus/test.c: refcount handler_slot
10630 * bus/connection.c (bus_connections_new): refcount
10631 connection_data_slot
10633 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10634 bytes so that auth scripts pass.
10636 * bus/dispatch.c: init message_handler_slot so it gets allocated
10639 * bus/dispatch.c (message_handler_slot_ref): fix memleak
10641 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10642 dealloc server_pipe_hash when no longer used for benefit of
10645 * dbus/dbus-auth.c (process_command): memleak fix
10647 * bus/dispatch.c (check_hello_message): memleak fix
10649 2003-03-16 Havoc Pennington <hp@pobox.com>
10651 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10653 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10655 * bus/activation.c (bus_activation_activate_service): Append
10656 the pending activation entry to the list of pending activations.
10658 2003-03-16 Havoc Pennington <hp@pobox.com>
10660 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10663 * dbus/dbus-address.c (create_entry): fix OOM handling when
10664 failing to alloc entry->method
10666 2003-03-16 Havoc Pennington <hp@pobox.com>
10668 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10671 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10672 add some missing dbus_set_result
10674 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10675 alloc the DBusMessageHandler
10677 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10678 the transport here, since we call this from the finalizer; it
10679 resulted in a double-finalize.
10681 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10682 where we tried to use transport->connection that was NULL,
10683 happened when transport was disconnected early on due to OOM
10685 * bus/*.c: adapt to handle OOM for watches/timeouts
10687 * dbus/dbus-transport-unix.c: port to handle OOM during
10690 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10691 reference to unused bytes instead of a copy
10693 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10696 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10699 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10702 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10704 * doc/dbus-specification.sgml:
10705 Document reply message for ActivateService.
10707 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10709 * bus/activation.c: (bus_pending_activation_entry_free),
10710 (bus_pending_activation_free), (bus_activation_new),
10711 (bus_activation_unref), (bus_activation_service_created),
10712 (bus_activation_activate_service):
10713 * bus/activation.h:
10714 * bus/bus.c: (bus_context_new):
10715 * bus/desktop-file.c: (new_section):
10716 * bus/driver.c: (bus_driver_send_service_deleted),
10717 (bus_driver_handle_activate_service):
10718 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10720 * dbus/dbus-connection.c:
10721 (dbus_connection_send_with_reply_and_block):
10722 * dbus/dbus-message.c: (dbus_message_append_args_valist):
10723 * dbus/dbus-protocol.h:
10724 Make activation work better. Now pending activations will be queued
10725 and the daemon won't try to activate services that are already registered.
10727 2003-03-16 Havoc Pennington <hp@pobox.com>
10729 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10732 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10733 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10735 2003-03-16 Havoc Pennington <hp@pobox.com>
10737 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10738 this. always run the test suite before commit...
10740 * bus/*: adapt to DBusConnection API changes
10742 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10743 requires renaming stuff to avoid dbus_connection_dispatch name
10746 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10749 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10750 separate from _dbus_message_loader_return_buffer()
10752 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10753 this, because it's now always broken to use; the number of
10754 messages in queue vs. the number still buffered by the message
10755 loader is undefined/meaningless. Should use
10756 dbus_connection_get_dispatch_state().
10757 (dbus_connection_dispatch): rename from
10758 dbus_connection_dispatch_message
10760 2003-03-16 Havoc Pennington <hp@pobox.com>
10762 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10765 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10767 * dbus/dbus-connection.c:
10768 (dbus_connection_send_with_reply_and_block):
10769 Decrease connection->n_incoming when removing an entry
10771 * dbus/dbus-dict.c: (dbus_dict_entry_free),
10772 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10773 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10774 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10775 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10776 (dbus_dict_get_byte_array):
10777 Handle NULL arrays and strings. Also add support for byte arrays.
10779 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10780 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10781 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10782 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10783 (_dbus_demarshal_dict), (demarshal_and_validate_len),
10784 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10785 * dbus/dbus-marshal.h:
10786 Add support for marshalling and demarshalling empty arrays and strings.
10788 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10789 (dbus_message_append_string_array),
10790 (dbus_message_iter_get_boolean),
10791 (dbus_message_iter_get_boolean_array),
10792 (dbus_message_iter_get_int32_array),
10793 (dbus_message_iter_get_uint32_array),
10794 (dbus_message_iter_get_double_array),
10795 (dbus_message_iter_get_byte_array),
10796 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10797 (check_message_handling):
10798 Add support for getting empty arrays and dicts.
10800 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10801 Don't do any validation at all for now, that's better than just checking
10804 * test/data/valid-messages/emptiness.message:
10805 New test message with lots of empty arrays.
10807 2003-03-16 Havoc Pennington <hp@pobox.com>
10809 * dbus/dbus-connection.c
10810 (_dbus_connection_queue_received_message_link): new function that
10811 can't fail due to OOM
10813 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10814 new function pops a message together with a list link
10817 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10818 message queuing functions to avoid needing to alloc memory
10820 2003-03-16 Havoc Pennington <hp@pobox.com>
10822 Oops - test code was only testing failure of around 30 of the
10823 mallocs in the test path, but it turns out there are 500+
10824 mallocs. I believe this was due to misguided linking setup such
10825 that there was one copy of dbus_malloc etc. in the daemon and one
10826 in the shared lib, and only daemon mallocs were tested. In any
10827 case, the test case now tests all 500+ mallocs, and doesn't pass
10828 yet, though there are lots of fixes in this patch.
10830 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10831 this so that it doesn't need to allocate memory, since it
10832 has no way of indicating failure due to OOM (and would be
10833 annoying if it did).
10835 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10837 * bus/Makefile.am: rearrange to create two self-contained
10838 libraries, to avoid having libraries with overlapping symbols.
10839 that was resulting in weirdness, e.g. I'm pretty sure there
10840 were two copies of global static variables.
10842 * dbus/dbus-internals.c: move the malloc debug stuff to
10845 * dbus/dbus-list.c (free_link): free list mempool if it becomes
10848 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10850 * dbus/dbus-address.c (dbus_parse_address): free list nodes
10853 * bus/dispatch.c (bus_dispatch_add_connection): free
10854 message_handler_slot when no longer using it, so
10855 memory leak checkers are happy for the test suite.
10857 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10859 * bus/bus.c (new_connection_callback): disconnect in here if
10860 bus_connections_setup_connection fails.
10862 * bus/connection.c (bus_connections_unref): fix to free the
10864 (bus_connections_setup_connection): if this fails, don't
10865 disconnect the connection, just be sure there are no side
10868 * dbus/dbus-string.c (undo_alignment): unbreak this
10870 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10872 (_dbus_auth_new): fix the order in which we free strings
10875 * bus/connection.c (bus_connection_disconnected): fix to
10876 not send ServiceDeleted multiple times in case of memory
10879 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10880 get the base service name
10881 (dbus_bus_register_client): don't return base service name,
10882 instead store it on the DBusConnection and have an accessor
10884 (dbus_bus_register_client): rename dbus_bus_register()
10886 * bus/dispatch.c (check_hello_message): verify that other
10887 connections on the bus also got the correct results, not
10888 just the one sending hello
10890 2003-03-15 Havoc Pennington <hp@pobox.com>
10892 Make it pass the Hello handling test including all OOM codepaths.
10893 Now to do other messages...
10895 * bus/services.c (bus_service_remove_owner): fix crash when
10896 removing owner from an empty list of owners
10897 (bus_registry_ensure): don't leave service in the list of
10898 a connection's owned services if we fail to put the service
10901 * bus/connection.c (bus_connection_preallocate_oom_error): set
10902 error flag on the OOM error.
10904 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10905 handle _dbus_transport_set_connection failure
10907 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10908 to create watches up front and simply enable/disable them as
10910 (unix_connection_set): this can now fail on OOM
10912 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10913 of enabling/disabling a watch or timeout.
10915 * bus/loop.c (bus_loop_iterate): don't touch disabled
10918 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10920 2003-03-15 Havoc Pennington <hp@pobox.com>
10922 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10923 write useful test code, after all that futzing around ;-)
10925 Test does not yet pass because we can't handle OOM in
10926 _dbus_transport_messages_pending (basically,
10927 dbus_connection_preallocate_send() does not prealloc the write
10928 watch). To fix this, I think we need to add new stuff to
10929 set_watch_functions, namely a SetEnabled function so we can alloc
10930 the watch earlier, then enable it later.
10932 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10933 dbus-memory.c to the convenience lib
10935 * bus/test.c: rename some static functions to keep them clearly
10936 distinct from stuff in connection.c. Handle client disconnection.
10938 2003-03-14 Havoc Pennington <hp@pobox.com>
10940 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10941 transport, tests more of the real codepath. Set up clients
10942 with bus_setup_debug_client.
10944 * bus/test.c (bus_setup_debug_client): function to set up debug
10945 "clients" on the main loop
10947 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10950 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10953 * dbus/dbus-server-debug.c: support a debug server based on pipes
10955 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10956 (_dbus_close): new function
10958 * configure.in: check for socketpair
10960 2003-03-14 Havoc Pennington <hp@redhat.com>
10962 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10965 * dbus/dbus-transport-debug.c: rework this a good bit to be
10966 less complicated. hopefully still works.
10968 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10971 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10974 * dbus/dbus-message.c (dbus_message_copy): rename from
10975 dbus_message_new_from_message, fix it up to copy
10976 all the message fields, add test case
10978 * bus/dispatch.c (bus_dispatch_test): add some more test code,
10979 not quite passing yet
10981 2003-03-14 Havoc Pennington <hp@pobox.com>
10983 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10984 until no work remains" in test code. (the large diff here
10985 is just code movement, no actual changes)
10987 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10988 1, no point waiting around for test code.
10989 (_dbus_server_debug_accept_transport): unref the timeout
10990 after adding it (right?)
10992 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10994 2003-03-13 Havoc Pennington <hp@redhat.com>
10996 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10999 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11002 * dbus/dbus-connection.h: Make AddWatchFunction and
11003 AddTimeoutFunction return a bool so they can fail on out-of-memory
11005 * bus/bus.c (bus_context_new): set up timeout handlers
11007 * bus/connection.c (bus_connections_setup_connection): set up
11010 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11013 * bus/bus.c (bus_context_new): adapt to changes
11015 * bus/connection.c: adapt to changes
11017 * test/watch.c: adapt to DBusWatch changes
11019 * bus/dispatch.c (bus_dispatch_test): started adding this but
11022 2003-03-14 Anders Carlsson <andersca@codefactory.se>
11024 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11026 2003-03-13 Havoc Pennington <hp@pobox.com>
11028 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11029 set up a test framework as for the library
11031 2003-03-12 Havoc Pennington <hp@pobox.com>
11033 Throughout: purge global variables, introduce BusActivation,
11034 BusConnections, BusRegistry, etc. objects instead.
11036 * bus/bus.h, bus/bus.c: introduce BusContext as a global
11039 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11040 going to redo this a bit differently I think
11042 2003-03-12 Havoc Pennington <hp@redhat.com>
11044 Mega-patch that gets the message bus daemon initially handling
11045 out-of-memory. Work still needed. Also lots of random
11046 moving stuff to DBusError instead of ResultCode.
11048 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11050 * dbus/dbus-connection.c
11051 (dbus_connection_send_with_reply_and_block): use DBusError
11053 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11056 * dbus/dbus-connection.c (dbus_connection_send): drop the result
11057 code here, as the only failure possible is OOM.
11059 * bus/connection.c (bus_connection_disconnect):
11060 rename bus_connection_disconnected as it's a notification only
11062 * bus/driver.c (bus_driver_handle_acquire_service): don't free
11063 "name" on get_args failure, should be done by get_args;
11064 don't disconnect client for bad args, just return an error.
11065 (bus_driver_handle_service_exists): ditto
11067 * bus/services.c (bus_services_list): NULL-terminate returned array
11069 * bus/driver.c (bus_driver_send_service_lost)
11070 (bus_driver_send_service_acquired): send messages from driver to a
11071 specific client to the client's unique name, not to the broadcast
11074 * dbus/dbus-message.c (decode_header_data): reject messages that
11075 contain no name field
11076 (_dbus_message_get_client_serial): rename to
11077 dbus_message_get_serial and make public
11078 (_dbus_message_set_serial): rename from set_client_serial
11079 (_dbus_message_set_reply_serial): make public
11080 (_dbus_message_get_reply_serial): make public
11082 * bus/connection.c (bus_connection_foreach): allow stopping
11083 iteration by returning FALSE from foreach function.
11085 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11086 (dbus_connection_free_preallocated_send)
11087 (dbus_connection_preallocate_send): new API for sending a message
11088 without possibility of malloc failure.
11089 (dbus_connection_send_message): rename to just
11090 dbus_connection_send (and same for whole function family)
11092 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11094 * dbus/dbus-sysdeps.c (_dbus_exit): new function
11096 * bus/activation.c: handle/return errors
11098 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11100 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11101 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11102 (_dbus_result_from_errno): move to this file
11104 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11106 * dbus/dbus-marshal.c:
11107 (_dbus_marshal_set_string):
11108 Take a length argument so we can marshal the correct string
11111 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11112 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11113 (_dbus_marshal_test):
11114 * dbus/dbus-marshal.h:
11115 Add support for marshalling and demarshalling dicts.
11117 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11118 Add support for TYPE DICT.
11120 * dbus/dbus-message.c: (set_string_field):
11121 Adjust header padding.
11123 (dbus_message_append_args_valist), (dbus_message_append_dict),
11124 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11125 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11126 (check_message_handling), (check_have_valid_message):
11127 * dbus/dbus-message.h:
11128 Add functions for setting and getting dicts.
11130 * dbus/dbus-protocol.h:
11131 Add DBUS_TYPE_DICT.
11136 * doc/dbus-specification.sgml:
11137 Add information about how dicts are marshalled.
11139 * test/data/invalid-messages/dict-with-nil-value.message:
11140 * test/data/invalid-messages/too-short-dict.message:
11141 * test/data/valid-messages/dict-simple.message:
11142 * test/data/valid-messages/dict.message:
11143 Add sample messages containing dicts.
11145 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11147 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11149 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11151 * dbus/Makefile.am:
11152 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11153 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11154 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11155 (dbus_dict_set_double), (dbus_dict_set_string),
11156 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11157 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11158 (dbus_dict_set_string_array), (_dbus_dict_test):
11159 * dbus/dbus-dict.h:
11160 Fix according to comments from Havoc.
11162 2003-03-06 Michael Meeks <michael@server.home>
11164 * configure.in: if we don't have kde-config, disable have_qt.
11166 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11168 * dbus/Makefile.am:
11171 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11172 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11173 (dbus_dict_remove), (dbus_dict_get_value_type),
11174 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11175 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11176 (dbus_dict_put_double), (dbus_dict_put_string),
11177 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11178 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11179 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11180 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11181 (dbus_dict_get_double), (dbus_dict_get_string),
11182 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11183 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11184 (dbus_dict_get_string_array), (_dbus_dict_test):
11185 * dbus/dbus-dict.h:
11186 Add DBusDict implementation
11188 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11189 * dbus/dbus-test.h:
11190 Add _dbus_dict_test
11192 2003-03-04 Havoc Pennington <hp@pobox.com>
11194 * test/data/auth/*: adapt to changes
11196 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11197 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11200 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11201 more stuff from being in a context name, to make the protocol
11202 simpler to deal with
11204 * dbus/dbus-errors.c (dbus_error_has_name): new function
11205 (dbus_error_is_set): new function
11207 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11208 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11210 * dbus/dbus-connection.c (dbus_connection_flush): also read
11211 messages during a flush operation
11213 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11215 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11217 * configure.in: Check for gethostbyname on Solaris.
11219 * dbus/dbus-transport.c: (_dbus_transport_open):
11220 Remove duplicate "tcp" entry.
11222 * doc/dbus-specification.sgml:
11223 Clarify some things.
11225 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11227 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11228 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11229 (_dbus_keyring_test):
11230 * dbus/dbus-md5.c: (_dbus_md5_compute):
11231 * dbus/dbus-sha.c: (_dbus_sha_compute):
11234 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11236 * README: Add some things.
11238 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11240 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11241 after case DBUS_TYPE_BOOELAN.
11243 2003-03-02 Havoc Pennington <hp@pobox.com>
11245 * test/break-loader.c (randomly_set_extreme_ints): add test that
11246 sets really huge and small integers
11248 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11249 that length of boolean array fits in the string, and that
11250 string has room for boolean value in single-bool case.
11252 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11253 optional value to "ALIGN" command which is what to fill the
11256 * test/data/valid-messages/no-padding.message: add regression
11257 test for the message padding problem
11259 2003-03-02 Havoc Pennington <hp@pobox.com>
11261 * dbus/dbus-message.c (decode_header_data): fix to always init
11262 message_padding, from Benjamin Dauvergne
11264 2003-03-02 Havoc Pennington <hp@pobox.com>
11266 * configure.in: 0.5
11270 2003-03-01 Joe Shaw <joe@assbarn.com>
11272 * configure.in: Check for "struct cmsgcred" and try to access its
11273 members for BSD-like unices.
11275 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11276 _dbus_read_credentials_unix_socket().
11277 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11278 read() for reading the credential byte off the unix socket. Use
11279 struct cmsgcred on systems that support it.
11281 2003-02-27 Alexander Larsson <alexl@redhat.com>
11283 * glib/Makefile.am:
11285 Make gthreads-2.0 dependency optional. Don't build thread test if
11288 2003-02-27 Havoc Pennington <hp@pobox.com>
11290 * dbus/dbus-connection.c
11291 (dbus_connection_send_message_with_reply_and_block): fix doh!
11292 doh! doh! bug that resulted in never removing a reply from the
11293 queue, no wonder we called get_reply_serial so much ;-)
11295 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11296 and client serial instead of demarshaling them every time
11298 2003-02-27 Havoc Pennington <hp@pobox.com>
11300 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11301 more inlined, using dbus-string-private.h, speeds things up
11304 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11305 when freeing the string
11306 (_dbus_string_steal_data): fix for align offset
11307 (undo_alignment): new function
11309 2003-02-26 Havoc Pennington <hp@redhat.com>
11311 All kinds of audit fixes from Owen, plus initial attempt to
11312 handle unaligned memory returned from malloc.
11314 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11315 leave room for align_offset and nul byte
11316 (fixup_alignment): function to track an align_offset and
11317 ensure real->str is aligned
11318 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11319 to allow a nul byte plus align offset
11320 (_dbus_string_lock): fix overflow issue
11321 (_dbus_string_init_const_len): add assertions on sanity of len,
11322 assign allocated to be ALLOCATION_PADDING larger than len
11323 (set_length): fixup the overflow handling
11324 (_dbus_string_get_data_len): fix overflow in assertion
11325 (open_gap): detect overflow in size of gap to be opened
11326 (_dbus_string_lengthen): add overflow check
11327 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11328 (_dbus_string_append): add overflow check
11329 (_dbus_string_append_unichar): overflow
11330 (_dbus_string_delete): fix overflow in assertion
11331 (_dbus_string_copy_len): overflow in assertion
11332 (_dbus_string_replace_len): overflows in assertions
11333 (_dbus_string_find): change to implement in terms of
11334 _dbus_string_find_to
11335 (_dbus_string_find_to): assorted fixage
11336 (_dbus_string_equal_c_str): assert c_str != NULL,
11337 fix logic so the function works
11338 (_dbus_string_ends_with_c_str): fix overflow thingy
11339 (_dbus_string_base64_encode): overflow fix
11340 (_dbus_string_validate_ascii): overflow
11341 (_dbus_string_validate_nul): overflow
11343 2003-02-26 Havoc Pennington <hp@redhat.com>
11345 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11347 2003-02-26 Alexander Larsson <alexl@redhat.com>
11350 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11352 * dbus/dbus-connection.c:
11353 * dbus/dbus-connection.h:
11354 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11355 Add dbus_connection_set_wakeup_main_function and use it when queueing
11356 incoming and outgoing messages.
11359 * dbus/dbus-dataslot.c:
11360 Threadsafe usage of DBusDataSlotAllocator
11362 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11365 * dbus/dbus-server-unix.c:
11368 * glib/dbus-gmain.c:
11369 Implement the new wakeup functions for glib.
11371 * glib/Makefile.am:
11372 * glib/test-thread-client.c:
11373 * glib/test-thread-server.c:
11374 * glib/test-thread.h:
11375 Initial cut at some thread test code. Not really done yet.
11377 2003-02-26 Havoc Pennington <hp@pobox.com>
11379 * dbus/dbus-connection.c
11380 (dbus_connection_send_message_with_reply_and_block): fix crash
11381 where we ref'd the outgoing message instead of the returned reply
11383 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11384 at the end of this function, so if we didn't need to read for
11385 authentication, we reinstall it for receiving messages
11387 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11388 a NULL sender for peer-to-peer case
11390 * dbus/dbus-transport-unix.c (check_read_watch): handle
11391 !authenticated case correctly
11393 * glib/dbus-gmain.c: add support for DBusServer
11395 * dbus/dbus-server.c: add data slot support
11397 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11398 return values and handle errors
11400 * dbus/dbus-dataslot.c: factor out the data slot stuff from
11403 * Doxyfile.in (INPUT): add glib subdir
11405 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11406 setup_with_g_main instead of hookup_with_g_main; write docs
11408 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11410 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11411 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11412 * dbus/dbus-message.c: (dbus_message_append_boolean),
11413 (dbus_message_append_boolean_array),
11414 (dbus_message_get_args_valist), (_dbus_message_test):
11415 * dbus/dbus-message.h:
11416 * doc/dbus-specification.sgml:
11417 Various fixes as pointed out by Havoc.
11419 * test/data/invalid-messages/bad-boolean-array.message:
11420 * test/data/invalid-messages/bad-boolean.message:
11421 Add invalid boolean value test cases.
11423 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11425 * dbus/dbus-internals.c: (_dbus_type_to_string):
11426 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11427 (_dbus_marshal_validate_arg):
11428 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11429 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11430 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11431 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11432 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11433 (dbus_message_iter_get_double),
11434 (dbus_message_iter_get_boolean_array), (message_iter_test):
11435 * dbus/dbus-message.h:
11436 * dbus/dbus-protocol.h:
11437 * doc/dbus-specification.sgml:
11438 * test/data/valid-messages/lots-of-arguments.message:
11439 Add support for boolean and boolean array types.
11441 2003-02-23 Havoc Pennington <hp@pobox.com>
11443 * dbus/dbus-keyring.c: finish most of this implementation and
11446 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11447 these barf if the error isn't cleared to NULL
11449 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11450 (_dbus_create_directory): new function
11452 * dbus/dbus-errors.c (dbus_set_error): fix warning
11454 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11455 (_dbus_string_hex_decode): new function
11456 (test_hex_roundtrip): test code
11458 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11460 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11462 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11463 the save-to-temp/rename trick to atomically write the new file
11464 (_dbus_string_parse_uint): new function
11466 2003-02-22 Havoc Pennington <hp@pobox.com>
11468 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11470 2003-02-22 Havoc Pennington <hp@pobox.com>
11472 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11473 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11475 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11477 * dbus/test/data/sha-1: add US government test suite for SHA-1
11479 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11481 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11482 Make string arrays NULL-terminated.
11484 * dbus/dbus-memory.c: (dbus_free_string_array):
11485 * dbus/dbus-memory.h:
11486 New function for freeing NULL-terminated string arrays.
11488 * dbus/dbus-message-builder.c: (append_quoted_string),
11489 (_dbus_message_data_load):
11490 Add support for array types.
11492 * dbus/dbus-message.c: (check_message_handling):
11493 Add more types as test cases.
11495 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11496 (_dbus_string_parse_double):
11497 Add the start offset to the end offset.
11499 * test/data/valid-messages/lots-of-arguments.message:
11500 New test message with lots of arguments.
11502 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11504 * dbus/dbus-message.c: (dbus_message_append_nil),
11505 (dbus_message_append_int32), (dbus_message_append_uint32),
11506 (dbus_message_append_double), (dbus_message_append_string),
11507 (dbus_message_append_int32_array),
11508 (dbus_message_append_uint32_array),
11509 (dbus_message_append_double_array),
11510 (dbus_message_append_byte_array),
11511 (dbus_message_append_string_array):
11512 Fix all out-of-memory handling in these functions.
11514 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11516 * dbus/dbus-message.c: (dbus_message_append_nil):
11519 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11521 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11522 (dbus_message_append_nil), (dbus_message_append_int32_array),
11523 (dbus_message_append_uint32_array),
11524 (dbus_message_append_double_array),
11525 (dbus_message_append_byte_array),
11526 (dbus_message_append_string_array), (dbus_message_get_args_valist),
11527 (dbus_message_iter_get_int32_array),
11528 (dbus_message_iter_get_uint32_array),
11529 (dbus_message_iter_get_double_array),
11530 (dbus_message_iter_get_byte_array),
11531 (dbus_message_iter_get_string_array):
11533 * dbus/dbus-message.h:
11534 Add functions for appending and getting arrays.
11536 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11538 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11539 element size at least 8 bytes, fixes mempool tests on
11542 2003-02-20 Alexander Larsson <alexl@redhat.com>
11544 * dbus/dbus-transport-unix.c (unix_do_iteration):
11545 Unlock the connection mutex during a blocking select call.
11546 Add todo about how we need a way to wake up the select.
11548 * dbus/dbus-connection-internal.h:
11549 * dbus/dbus-connection.c:
11550 Add _dbus_connection_lock and _dbus_connection_unlock.
11552 2003-02-19 Havoc Pennington <hp@pobox.com>
11554 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11555 Doxyfile.in, not Doxyfile
11557 * dbus/dbus-keyring.c: do some hacking on this
11559 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11561 * dbus/dbus-errors.c (dbus_set_error_const): do not call
11563 (dbus_set_error): remove dbus_error_init, check for message ==
11564 NULL *before* we sprintf into it, and add @todo about including
11565 system headers in this file
11567 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11569 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11571 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11572 get various bits of user information based on either username
11574 (_dbus_homedir_from_username): new function
11576 2003-02-19 Anders Carlsson <andersca@codefactory.se>
11579 Add check for nonposix getpwnam_r
11581 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11582 Align the pool element size to a sizeof (void *) boundary.
11584 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11585 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11586 General Solaris fixes.
11588 * test/data/valid-messages/simplest-manual.message:
11589 Explicitly state that we want little-endian packing.
11591 2003-02-19 Mikael Hallendal <micke@codefactory.se>
11593 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11595 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11596 Added to create a transport connecting using a tcp/ip socket.
11598 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11599 to a tcp socket at given host and port.
11600 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11603 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11605 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11606 Added to create a server listening on a TCP/IP socket.
11608 2003-02-19 Havoc Pennington <hp@pobox.com>
11610 Throughout: mop up all the Doxygen warnings and undocumented
11613 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11614 to search any paths.
11616 * dbus/dbus-threads.c: move global mutex initializers to
11617 dbus-internals.h, multiple prototypes was confusing doxygen
11618 besides being kind of ugly
11620 * Doxyfile (PREDEFINED): have Doxygen define
11621 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11622 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11623 (do not abuse the feature! it's for stuff like the autogenerated
11624 macros in dbus-md5.c, not just for things you don't feel like
11627 2003-02-18 Havoc Pennington <hp@pobox.com>
11629 * dbus/dbus-string.c (_dbus_string_zero): new function
11631 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11632 wrap it in some dbus-friendly API
11634 * dbus/dbus-types.h: add 16-bit types
11636 2003-02-18 Joe Shaw <joe@assbarn.com>
11638 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11639 credentials from our currently running process.
11640 (get_word): Fix a buglet where we were copying the entire length
11641 instead of relative to our position.
11643 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11644 keys on the stack... it's 640k of data.
11646 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11647 read the credentials byte off the socket, even if we don't have
11649 (_dbus_poll): Implement poll() using select() for systems which
11652 * glib/test-dbus-glib.c (main): Print out an error if no
11653 parameters are given.
11655 * test/data/auth/fallback.auth-script: Added. Tests that a client
11656 can fallback to a secondary auth mechanism if the first fails.
11658 2003-02-18 Havoc Pennington <hp@pobox.com>
11660 * AUTHORS: add Alex
11662 2003-02-17 Havoc Pennington <hp@pobox.com>
11664 * doc/dbus-specification.sgml: lots of cosmetic
11665 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11666 env variable to DBUS_BUS_ADDRESS, s/client/application/,
11667 s/server/bus/ (except in authentication section). Add a section
11668 "Message Bus Message Routing"
11670 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
11676 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11678 * doc/dbus-specification.sgml:
11679 Specification updates.
11681 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11683 * bus/activation.c: (bus_activation_init), (child_setup),
11684 (bus_activation_activate_service):
11685 * bus/activation.h:
11686 * bus/main.c: (main):
11687 Set DBUS_ADDRESS environment variable.
11689 * dbus/dbus-errors.c: (dbus_set_error):
11690 Don't use va_copy since that's a C99 feature.
11692 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11693 (_dbus_spawn_async):
11694 * dbus/dbus-sysdeps.h:
11695 Add child_setup_func to _dbus_spawn_async.
11697 * doc/dbus-specification.sgml:
11698 Update specification.
11700 * test/spawn-test.c: (setup_func), (main):
11703 2003-02-17 Alexander Larsson <alexl@redhat.com>
11705 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11708 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11712 * doc/dbus-test-plan.sgml:
11713 Add test plan document.
11715 * test/Makefile.am:
11718 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11720 * dbus/dbus-message.c: (decode_header_data),
11721 (_dbus_message_loader_return_buffer):
11722 Set the header padding amount when loading a message.
11724 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11726 * bus/dispatch.c: (send_one_message):
11727 Only send broadcast messages to registered connections.
11729 * dbus/dbus-message.c: (dbus_message_name_is):
11730 * dbus/dbus-message.h:
11731 New convenience function.
11733 * dbus/dbus-transport-debug.c: (do_reading):
11734 Only dispatch one message per run.
11736 * test/Makefile.am:
11737 * test/bus-test.c: (new_connection_callback), (die),
11738 (test_hello_client1_handler), (test_hello_client2_handler),
11739 (test_hello_replies), (main):
11741 * test/bus-test-loop.[ch]:
11744 2003-02-16 Havoc Pennington <hp@pobox.com>
11746 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11747 backward conditional
11749 2003-02-16 Alexander Larsson <alexl@redhat.com>
11751 * dbus/dbus-connection.c:
11752 Implement sent_message_with_reply. (with_reply_and block is still
11754 Made dispatch_message not lose message if OOM.
11756 * dbus/dbus-errors.h:
11757 Add NoReply error (for reply timeouts).
11759 2003-02-16 Alexander Larsson <alexl@redhat.com>
11761 * dbus/dbus-hash.c (_dbus_hash_table_unref):
11762 Actually free keys and values when destroying hashtable.
11764 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11766 * dbus/dbus-auth.c: (client_try_next_mechanism):
11769 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11770 Return TRUE if there's no thread implementation around.
11772 * glib/dbus-gmain.c: (free_source),
11773 (dbus_connection_hookup_with_g_main):
11774 Make sure to remove the GSource when the connection is finalized.
11776 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11778 * bus/dispatch.c: (bus_dispatch_message_handler):
11779 * dbus/dbus-errors.h:
11780 Return an error if someone tries to send a message to a service
11781 that doesn't exist.
11783 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11785 * bus/activation.c: (load_directory), (bus_activation_init),
11786 (bus_activation_activate_service):
11787 * bus/activation.h:
11789 (bus_driver_handle_activate_service), (bus_driver_handle_message):
11790 More work on the activation handling.
11792 * dbus/dbus-errors.h:
11793 Add some error messages
11795 * dbus/dbus-message.c: (dbus_message_new_error_reply):
11796 * dbus/dbus-message.h:
11797 New function that creates an error message.
11799 * dbus/dbus-protocol.h:
11800 Add ACTIVATE_SERVER message.
11802 * dbus/dbus-server-unix.c: (unix_handle_watch),
11803 (_dbus_server_new_for_domain_socket):
11804 Call _dbus_fd_set_close_on_exec.
11806 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11807 (_dbus_spawn_async), (_dbus_disable_sigpipe),
11808 (_dbus_fd_set_close_on_exec):
11809 * dbus/dbus-sysdeps.h:
11810 Add _dbus_fd_set_close_on exec function. Also add function that checks
11811 that all open fds are set to close-on-exec and warns otherwise.
11813 * dbus/dbus-transport-unix.c:
11814 (_dbus_transport_new_for_domain_socket):
11815 Call _dbus_fd_set_close_on_exec.
11817 2003-02-16 Havoc Pennington <hp@pobox.com>
11819 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11820 allow people to avoid setting SIGPIPE to SIG_IGN
11821 (_dbus_connection_new_for_transport): disable SIGPIPE unless
11822 we've been asked not to
11824 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11826 * dbus/dbus-list.c: (_dbus_list_append_link),
11827 (_dbus_list_prepend_link):
11828 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11832 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11835 * bus/activation.c: (bus_activation_entry_free),
11836 (add_desktop_file_entry), (load_directory), (bus_activation_init):
11837 * bus/activation.h:
11838 * bus/main.c: (main):
11839 Add simple activation support, doesn't work yet though.
11841 2003-02-15 Zack Rusin <zack@kde.org>
11843 * qt/dbus-qthread.cpp: small casting fix
11845 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11847 * dbus/dbus-errors.c: (dbus_set_error):
11848 * dbus/dbus-errors.h:
11849 Add a few errors and make dbus_set_error void.
11851 * dbus/dbus-sysdeps.c:
11852 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11853 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11854 * dbus/dbus-sysdeps.h:
11855 Add _dbus_spawn_async.
11857 * test/spawn-test.c: (main):
11858 Test for _dbus_spawn_async.
11860 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11862 * dbus/dbus-internals.h:
11863 Fix build without tests.
11865 * dbus/dbus-list.c: (alloc_link):
11866 Fix a segfault when a malloc fails.
11868 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11869 (dbus_malloc0), (dbus_realloc):
11870 Add support for malloc debugging.
11872 2003-02-15 Alexander Larsson <alexl@redhat.com>
11874 * dbus/dbus-threads.c:
11875 * dbus/dbus-threads.h:
11876 Add condvars. Remove static mutext from API.
11877 Implement static mutexes by initializing them from threads_init.
11879 * glib/dbus-gthread.c:
11880 * qt/dbus-qthread.cpp:
11881 Update with the thread api changes.
11884 * dbus/dbus-list.c:
11885 * dbus/dbus-list.h:
11886 Turn StaticMutex into normal mutex + init function.
11887 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11888 _dbus_list_append_link, _dbus_list_prepend_link
11891 * dbus/dbus-sysdeps.c:
11892 * dbus/dbus-sysdeps.h:
11893 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11894 _dbus_atomic_dec. Only slow fallback implementation at the moment.
11896 * dbus/dbus-protocol.h:
11897 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11899 * dbus/dbus-message.c:
11900 Make ref/unref atomic.
11903 * dbus/dbus-connection-internal.h:
11904 * dbus/dbus-connection.c:
11905 * dbus/dbus-connection.h:
11907 Change _peek to _borrow,_return & _steal_borrowed.
11908 Change disconnect callback to event.
11909 Make dbus_connection_dispatch_messages reentrant.
11911 * dbus/dbus-transport.c:
11912 Don't ref the connection on calls to the transport
11915 * dbus/dbus-message-handler.c:
11918 * glib/dbus-gmain.c:
11919 Don't use peek_message anymore
11921 * test/Makefile.am:
11922 * test/debug-thread.c:
11923 * test/debug-thread.h:
11924 Simple thread implementation that asserts() on deadlocks in
11925 single-threaded code.
11928 (main) Call debug_threads_init.
11931 Use disconnect message instead of disconnect callback.
11933 * bus/connection.c:
11934 * bus/connection.h:
11935 Don't call dbus_connection_set_disconnect_function. Instead export
11936 bus_connection_disconnect.
11939 Call bus_connection_disconnect when we get a disconnected message.
11941 2003-02-15 Havoc Pennington <hp@pobox.com>
11943 * dbus/dbus-message.c (dbus_message_new): fool around with the
11946 2003-02-14 Havoc Pennington <hp@pobox.com>
11948 * dbus/dbus-mempool.c: fail if the debug functions so indicate
11950 * dbus/dbus-memory.c: fail if the debug functions indicate we
11953 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11954 (_dbus_decrement_fail_alloc_counter): debug functions to
11955 simulate memory allocation failures
11957 2003-02-14 Havoc Pennington <hp@pobox.com>
11959 * dbus/dbus-errors.h (struct DBusError): add a word of padding
11962 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11964 * bus/driver.c: (bus_driver_handle_hello):
11966 * bus/services.c: (bus_service_lookup):
11967 Reorder message sending so we get a more sane order.
11969 * test/bus-test.c: (message_handler):
11972 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11974 * bus/driver.c: (bus_driver_send_service_deleted),
11975 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11976 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11977 (bus_driver_send_welcome_message),
11978 (bus_driver_handle_list_services),
11979 (bus_driver_handle_acquire_service),
11980 (bus_driver_handle_service_exists):
11981 * dbus/dbus-bus.c: (dbus_bus_register_client),
11982 (dbus_bus_acquire_service), (dbus_bus_service_exists):
11983 * dbus/dbus-errors.c: (dbus_result_to_string):
11984 * dbus/dbus-errors.h:
11985 * dbus/dbus-message.c: (dbus_message_append_args),
11986 (dbus_message_append_args_valist), (dbus_message_get_args),
11987 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11988 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11989 (dbus_message_iter_get_byte_array),
11990 (dbus_message_iter_get_string_array), (message_iter_test),
11991 (check_message_handling), (_dbus_message_test):
11992 * dbus/dbus-message.h:
11993 * test/bus-test.c: (main):
11994 Change fields to arguments in messages, so that they won't be
11995 confused with header fields.
11997 * glib/test-dbus-glib.c: (main):
11998 Remove append_fields from hello message.
12000 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12002 * dbus/dbus-errors.c:
12003 * dbus/dbus-message.c:
12004 * dbus/dbus-string.c:
12005 Documentation fixes.
12007 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12009 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12011 Implement support for timeouts in dbus-glib.
12013 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12015 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12016 * dbus/dbus-message.c: (process_test_subdir):
12017 * test/break-loader.c: (find_breaks_based_on):
12018 Plug some memory leaks.
12020 2003-02-13 Richard Hult <rhult@codefactory.se>
12022 * bus/main.c: Fix build.
12024 * dbus/dbus-errors.h:
12025 * dbus/dbus-errors.c: Fix copyright for Anders.
12027 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12032 * bus/connection.c: (bus_connection_foreach):
12035 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12036 (unescape_string), (new_section), (parse_section_start),
12037 (parse_key_value), (report_error), (bus_desktop_file_load),
12038 (bus_desktop_file_get_string):
12039 * bus/desktop-file.h:
12040 Use DBusError for error reporting.
12042 * bus/dispatch.c: (send_one_message),
12043 (bus_dispatch_message_handler):
12044 * bus/driver.c: (bus_driver_send_service_deleted),
12045 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12046 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12047 (bus_driver_send_welcome_message),
12048 (bus_driver_handle_list_services),
12049 (bus_driver_handle_acquire_service),
12050 (bus_driver_handle_service_exists):
12051 * bus/loop.c: (bus_loop_run):
12053 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12055 * bus/utils.c: (bus_wait_for_memory):
12057 New files with general utility functions.
12059 * dbus/dbus-internals.h:
12060 Remove _DBUS_HANDLE_OOM.
12062 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12064 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12065 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12066 * dbus/dbus-errors.h:
12067 Add DBusError structure.
12069 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12071 * test/data/valid-messages/standard-acquire-service.message:
12072 * test/data/valid-messages/standard-hello.message:
12073 * test/data/valid-messages/standard-list-services.message:
12074 * test/data/valid-messages/standard-service-exists.message:
12075 Add some standard messages.
12077 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12079 * bus/driver.c: (bus_driver_send_welcome_message),
12080 (bus_driver_handle_list_services),
12081 (bus_driver_handle_acquire_service),
12082 (bus_driver_handle_service_exists), (bus_driver_handle_message):
12083 Update for API changes in libdbus.
12085 * dbus/dbus-message.c: (dbus_message_new_reply):
12086 * dbus/dbus-message.h:
12087 Remove the name argument. The spec states that replies shouldn't
12090 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12092 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12093 (report_error), (bus_desktop_file_load), (lookup_section),
12094 (lookup_line), (bus_desktop_file_get_raw),
12095 (bus_desktop_file_get_string):
12096 * bus/desktop-file.h:
12097 Some fixes, and new functions for getting a key value from a section.
12099 2003-02-13 Havoc Pennington <hp@pobox.com>
12101 * test/data/auth/fail-after-n-attempts.auth-script: new test
12103 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12106 2003-02-13 Havoc Pennington <hp@pobox.com>
12108 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12109 dbus_credentials_match were backward
12111 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12112 NO_CREDENTIALS and ROOT_CREDENTIALS
12114 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12115 into here. Never process more commands after we've reached an
12116 end state; store further data as unused bytes.
12118 * test/data/auth/*: add more auth tests
12120 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12121 command to match exact string and EXPECT_UNUSED to match unused
12124 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12126 2003-02-12 Havoc Pennington <hp@pobox.com>
12128 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12129 \r off of popped lines
12131 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12134 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12137 2003-02-12 Havoc Pennington <hp@pobox.com>
12139 * dbus/Makefile.am: remove break-loader from the build, since it
12142 * configure.in: add --enable-gcov to turn on coverage profiling
12143 flags and disable optimization
12145 2003-02-10 Havoc Pennington <hp@pobox.com>
12147 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12148 initial cut at test framework for DBusAuth from laptop.
12149 Doesn't quite work yet but it compiles and I need to get
12150 it off the 266mhz laptop. ;-)
12152 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12153 fix a memleak in error case
12155 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12158 * bus/desktop-file.c:
12159 * bus/desktop-file.h:
12160 Add a desktop file parser.
12162 2003-02-11 Zack Rusin <zack@kde.org>
12164 * qt/message.[h|cpp]: sample implementation
12165 of the KDE wrapper for DBusMessage
12167 2003-02-09 Zack Rusin <zack@kde.org>
12169 * test/bus-test.c: make_it_compile
12170 * doc/dbus-specification.sgml: minimal semantic fix
12172 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12178 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12180 * dbus/Makefile.am:
12181 * dbus/dbus-break-loader.c:
12182 * test/Makefile.am:
12183 * test/break-loader.c:
12184 Move dbus-break-loader to test/ and rename it to break-loader.
12186 2003-02-02 Havoc Pennington <hp@pobox.com>
12188 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12189 for code to manage cookies in your home directory
12191 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12193 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12194 to authenticate, then disconnect the client.
12196 2003-02-03 Alexander Larsson <alexl@redhat.com>
12198 * dbus/dbus-message.c (dbus_message_append_fields):
12201 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12203 * doc/dbus-specification.sgml:
12204 Update address format section.
12206 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12208 * test/Makefile.am:
12209 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12210 (message_handler), (new_connection_callback), (loop_quit),
12211 (loop_run), (main):
12214 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12216 * bus/driver.c: (bus_driver_handle_service_exists):
12217 Simplify the code a bit.
12219 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12222 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12225 Add libdbus-daemon.la and link to it.
12227 2003-02-01 James Willcox <jwillcox@gnome.org>
12229 * bus/driver.c: (bus_driver_handle_own_service):
12230 Actually include the service reply code in the message.
12232 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12234 * bus/driver.c: (bus_driver_handle_service_exists):
12235 Don't unref the incoming message.
12237 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12239 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12241 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12243 * dbus/dbus-server.c: (dbus_server_listen):
12244 * dbus/dbus-transport.c: (_dbus_transport_open):
12245 ifdef out the calls to the debug transport and server.
12247 2003-02-02 Alexander Larsson <alexl@redhat.com>
12249 * dbus/dbus-watch.c (dbus_watch_get_flags):
12250 Add note in the docs that ERROR or HANGUP won't be returned
12251 and are assumed always on.
12253 * glib/dbus-gmain.c (add_watch):
12254 Always add IO_ERR | IO_HUP
12256 * dbus/dbus-message.h:
12257 Add semicolon after dbus_message_iter_get_string_array().
12258 Makes qt code build again
12260 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12262 * bus/driver.c: (create_unique_client_name),
12263 (bus_driver_handle_hello):
12264 Don't take a name, just use a numeric id to identify
12267 * dbus/Makefile.am:
12268 * dbus/dbus-bus.c: (dbus_bus_register_client),
12269 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12271 Add new convenience functions for communicating with the bus.
12273 * dbus/dbus-message.h:
12275 * dbus/dbus-protocol.h:
12278 2003-02-01 Alexander Larsson <alexl@redhat.com>
12280 * dbus/dbus-message.c (dbus_message_append_fields):
12281 Add some more doc comments.
12283 2003-02-01 Havoc Pennington <hp@pobox.com>
12285 * dbus/dbus-break-loader.c (randomly_modify_length): change
12286 a 4-byte value in the message as if it were a length
12288 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12289 execute bit on saved files
12291 2003-02-01 Havoc Pennington <hp@pobox.com>
12293 * dbus/dbus-break-loader.c (main): new program to find messages
12294 that break the loader.
12296 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12297 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12299 * dbus/dbus-string.c (_dbus_string_set_byte): new
12301 2003-01-31 Havoc Pennington <hp@pobox.com>
12303 * dbus/dbus-message.c: refactor the test code to be more general,
12304 in preparation for writing a "randomly permute test cases to
12305 try to break the loader" program.
12307 2003-01-31 Havoc Pennington <hp@pobox.com>
12309 * doc/dbus-specification.sgml: work on the specification
12311 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12312 the protocol version of the message.
12314 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12315 no longer specifies that.
12316 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12319 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12320 "break" for DBUS_TYPE_NIL, remove @todo
12322 2003-01-31 Havoc Pennington <hp@pobox.com>
12324 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12325 just set_is_error/get_is_error as this is a commonly-used
12326 function, and write docs.
12328 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12330 * dbus/dbus-address.c: (dbus_address_entry_free):
12331 Free key and value lists.
12333 * dbus/dbus-internals.c: (_dbus_type_to_string):
12334 Add the types we didn't have.
12336 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12337 (_dbus_marshal_validate_arg):
12340 * dbus/dbus-message.c: (dbus_message_set_sender):
12341 Remove todo about being able to set sender to NULL.
12343 (dbus_message_set_is_error_reply),
12344 (dbus_message_get_is_error_reply):
12345 * dbus/dbus-message.h:
12348 * dbus/dbus-protocol.h:
12349 Add error reply flag.
12351 * test/data/valid-messages/opposite-endian.message:
12352 Add NIL type to test.
12354 2003-01-31 Havoc Pennington <hp@pobox.com>
12356 * doc/dbus-specification.sgml: fully specify the header. Add
12357 flags and major protocol version, and change header/body len to
12360 * dbus/dbus-message-builder.c (append_saved_length): append length
12363 * dbus/dbus-message.c (dbus_message_create_header): change header
12364 length and body length to unsigned. Add the new fields from the
12366 (_dbus_message_loader_return_buffer): unsigned header/body len
12368 2003-01-30 Havoc Pennington <hp@pobox.com>
12370 * dbus/dbus-auth.c: rework to use only REJECTED, no
12373 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12374 use REJECTED, suggested by Mark McLoughlin
12376 2003-01-30 Havoc Pennington <hp@pobox.com>
12378 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12379 a better way to report errors here. e.g. "unix address lacks
12380 path" or something. also "no such file" when the path doesn't
12383 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12385 (dbus_parse_address): add @todo about documenting address format,
12386 and allowing , and ; to be escaped
12388 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12390 * dbus/Makefile.am:
12391 Add dbus-address.[ch]
12393 * dbus/dbus-address.c: (dbus_address_entry_free),
12394 (dbus_address_entries_free), (create_entry),
12395 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12396 (dbus_parse_address), (_dbus_address_test):
12397 * dbus/dbus-address.h:
12398 New files for dealing with address parsing.
12400 * dbus/dbus-connection.c:
12401 Document timeout functions.
12403 * dbus/dbus-message.c:
12404 Document dbus_message_new_from_message.
12406 * dbus/dbus-server-debug.c:
12409 * dbus/dbus-server.c: (dbus_server_listen):
12410 Parse address and use correct server implementation.
12412 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12413 * dbus/dbus-string.h:
12414 New function with test.
12416 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12417 * dbus/dbus-test.h:
12420 * dbus/dbus-transport-debug.c:
12423 * dbus/dbus-transport.c: (_dbus_transport_open):
12424 Parse address and use correct transport implementation.
12426 2003-01-30 Havoc Pennington <hp@pobox.com>
12428 * dbus/dbus-message.c: use message->byte_order instead of
12429 DBUS_COMPILER_BYTE_ORDER throughout.
12430 (dbus_message_create_header): pad header to align the
12431 start of the body of the message to 8-byte boundary
12433 * dbus/dbus-marshal.h: make all the demarshalers take const
12434 DBusString arguments.
12436 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12437 validate message args here, so we don't have to do slow validation
12438 later, and so we catch bad messages as they are incoming. Also add
12439 better checks on header_len and body_len. Also fill in
12440 message->byte_order
12442 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12443 implemented properly)
12444 (_dbus_string_validate_nul): new function to check all-nul
12446 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12447 get_arg_end_pos and remove all validation
12448 (_dbus_marshal_validate_arg): actually do validation here.
12450 2003-01-29 Havoc Pennington <hp@pobox.com>
12452 * dbus/dbus-message.c (check_message_handling): fix assertion
12453 failure on set_client_serial
12455 2003-01-28 Havoc Pennington <hp@pobox.com>
12457 * dbus/dbus-server-debug.c: Add doc section comments
12459 * dbus/dbus-transport-debug.c: add doc section comments
12461 2003-01-28 Havoc Pennington <hp@redhat.com>
12463 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12464 the reverse order from how I had it
12465 (_dbus_string_base64_encode): reverse encoding order. I was
12466 basically byteswapping everything during encoding.
12468 2003-01-28 Anders Carlsson <andersca@codefactory.se>
12470 * dbus/dbus-connection-internal.h:
12471 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12472 (_dbus_connection_remove_timeout):
12473 Add functions for adding and removing timeouts.
12475 * dbus/dbus-message.c: (dbus_message_new_from_message):
12476 Add new function that takes a message and creates an exact
12477 copy of it, but with the refcount set to 1.
12478 (check_message_handling):
12481 * dbus/dbus-server-protected.h:
12482 * dbus/dbus-server.c: (_dbus_server_init_base),
12483 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12484 (dbus_server_set_timeout_functions):
12485 (_dbus_server_remove_timeout):
12486 New functions so that a server can add and remove timeouts.
12488 (dbus_server_listen):
12489 Add commented out call to dbus_server_debug_new.
12491 * dbus/dbus-timeout.c: (_dbus_timeout_new):
12492 Actually set the handler, doh.
12494 * dbus/dbus-transport.c: (_dbus_transport_open):
12495 Add commented out call to dbus_transport_debug_client_new.
12497 * dbus/Makefile.am:
12498 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12500 2003-01-28 Havoc Pennington <hp@pobox.com>
12502 * dbus/dbus-message.c (check_message_handling): function to check
12503 on the loaded message, iterates over it etc.
12505 2003-01-28 Havoc Pennington <hp@pobox.com>
12507 * test/Makefile.am (dist-hook): fix make distdir
12509 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12511 2003-01-27 Havoc Pennington <hp@pobox.com>
12513 * dbus/dbus-mempool.c (time_for_size): replace printf with
12516 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12517 empty lines; fix the SAVE_LENGTH stuff to be
12518 START_LENGTH/END_LENGTH so it actually works; couple other
12521 * test/Makefile.am (dist-hook): add dist-hook for .message files
12523 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12524 can be constant or locked.
12525 (_dbus_string_free): allow freeing a const string as
12526 documented/intended
12528 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12530 * dbus/dbus-test-main.c (main): take an argument which is the
12531 directory containing test data
12533 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12534 argument to this and load all the messages in test/data/
12535 checking that they can be loaded or not loaded as appropriate.
12537 2003-01-27 Anders Carlsson <andersca@codefactory.se>
12539 * bus/dispatch.c: (bus_dispatch_message_handler):
12540 Dispatch messages sent to services.
12542 * bus/driver.c: (bus_driver_send_service_deleted),
12543 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12544 (bus_driver_send_service_acquired):
12545 Add helper functions for sending service related messages.
12547 (bus_driver_send_welcome_message):
12548 Send HELLO_REPLY instead of WELCOME.
12550 (bus_driver_handle_list_services):
12551 Send LIST_SERVICES_REPLY instead of SERVICES.
12553 (bus_driver_handle_own_service),
12554 (bus_driver_handle_service_exists):
12555 New message handlers.
12557 (bus_driver_handle_message):
12558 Invoke new message handlers.
12560 (bus_driver_remove_connection):
12561 Don't remove any services here since that's done automatically
12562 by bus_service_remove_owner now.
12565 New function signatures.
12567 * bus/services.c: (bus_service_add_owner):
12568 Send ServiceAcquired message if we're the only primary owner.
12570 (bus_service_remove_owner):
12571 Send ServiceAcquired/ServiceLost messages.
12573 (bus_service_set_prohibit_replacement),
12574 (bus_service_get_prohibit_replacement):
12575 Functions for setting prohibit replacement.
12577 (bus_service_has_owner):
12578 New function that checks if a connection is in the owner queue of
12582 Add new function signatures.
12584 * dbus/dbus-list.c: (_dbus_list_test):
12585 Add tests for _dbus_list_remove_last and traversing the list backwards.
12587 * dbus/dbus-list.h:
12588 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12589 go any further, so return NULL then.
12591 * dbus/dbus-protocol.h:
12592 Add new messages, service flags and service replies.
12594 2003-01-26 Havoc Pennington <hp@pobox.com>
12596 * dbus/dbus-message-builder.c: implement, completely untested.
12598 * test/data/*: add data to be used in testing.
12599 ".message" files are our simple loadable text format.
12600 ".message-raw" will be binary dumps of messages.
12602 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12604 2003-01-26 Havoc Pennington <hp@pobox.com>
12606 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12608 * dbus/dbus-errors.c (dbus_result_to_string): add
12611 * dbus/dbus-message-builder.c: new file, will contain code to load
12612 up messages from files. Not implemented yet.
12614 2003-01-26 Havoc Pennington <hp@pobox.com>
12616 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12617 the sender by setting to NULL
12619 2003-01-26 Havoc Pennington <hp@pobox.com>
12621 The unit tests pass, but otherwise untested. If it breaks, the
12622 tests should have been better. ;-)
12624 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12627 * dbus/dbus-message.c: redo everything so we maintain
12628 message->header as the only copy of the various fields.
12629 This avoids the possibility of out-of-memory in some cases,
12630 for example dbus_message_lock() can't run out of memory anymore,
12631 and avoids extra copying. Figured I may as well go ahead and do
12632 this since it was busted for dbus_message_lock to not return
12633 failure on OOM, and dbus_message_write_header was totally
12634 unchecked for OOM. Also fixed some random other bugs.
12636 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12637 that strings are nul-terminated. Also, end_pos can be equal
12638 to string length just not greater than, I think.
12639 (_dbus_marshal_set_int32): new function
12640 (_dbus_marshal_set_uint32): new function
12641 (_dbus_marshal_set_string): new function
12643 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12644 a warning, init timeout_list to NULL
12645 (dbus_connection_send_message): don't use uninitialized variable
12648 * dbus/dbus-string.c (_dbus_string_replace_len): new function
12650 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12652 * bus/driver.c: (bus_driver_handle_hello),
12653 (bus_driver_send_welcome_message):
12656 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12658 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12659 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12660 (dbus_connection_unref):
12661 * dbus/dbus-marshal.c: (_dbus_marshal_test):
12662 * dbus/dbus-message.c: (dbus_message_unref),
12665 (dbus_message_get_fields):
12666 Remove debugging printout.
12668 (_dbus_message_loader_return_buffer):
12669 Don't store the header string.
12671 (_dbus_message_test):
12674 2003-01-26 Richard Hult <rhult@codefactory.se>
12676 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12677 the file descriptor list, since it can change under us.
12679 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12681 * glib/dbus-gmain.c: (dbus_connection_prepare),
12682 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12683 (remove_watch), (dbus_connection_hookup_with_g_main):
12684 Rewrite the glib handling to use its own GSource instead of a
12685 GIOChannel so we can catch messages put in the queue while waiting
12688 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12691 * bus/connection.c: (connection_disconnect_handler),
12692 (connection_watch_callback), (bus_connection_setup):
12693 * bus/dispatch.c: (send_one_message),
12694 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12695 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12697 * bus/driver.c: (bus_driver_send_service_deleted),
12698 (bus_driver_send_service_created), (bus_driver_handle_hello),
12699 (bus_driver_send_welcome_message),
12700 (bus_driver_handle_list_services), (bus_driver_remove_connection),
12701 (bus_driver_handle_message):
12703 Refactor code, put the message dispatching in its own file. Use
12704 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12707 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12709 * dbus/dbus-internals.h:
12710 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12712 * dbus/dbus-message.c: (dbus_message_get_sender):
12713 * dbus/dbus-message.h:
12714 Implement dbus_message_get_sender.
12716 * dbus/dbus-protocol.h:
12717 Add message and service defines.
12719 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12721 * dbus/dbus-connection.c: (dbus_connection_send_message):
12722 * dbus/dbus-message-internal.h:
12723 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12724 (dbus_message_write_header):
12725 Remove _dbus_messag_unlock and don't set the client serial on a
12726 message if one already exists.
12728 2003-01-24 Havoc Pennington <hp@pobox.com>
12730 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12733 * bus/driver.c (bus_driver_handle_list_services): fix a leak
12736 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12738 * dbus/dbus-list.c: (alloc_link), (free_link):
12739 Use a memory pool for the links.
12741 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12743 * bus/connection.c: (bus_connection_foreach):
12744 * bus/connection.h:
12745 Add new bus_connection_foreach function.
12747 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12748 Add function that broadcasts a message to all clients.
12750 (bus_driver_send_service_created), (bus_driver_handle_hello),
12751 (bus_driver_send_welcome_message),
12752 (bus_driver_handle_list_services), (bus_driver_message_handler):
12753 Implement functions that take care of listing services, and notifying
12754 clients when new services are created.
12756 * bus/services.c: (bus_services_list):
12758 Add new function that returns an array of strings with the currently
12759 registered services.
12761 * glib/dbus-glib.h:
12762 * glib/dbus-gmain.c:
12763 Update copyright year.
12765 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12767 * dbus/dbus-connection.c: (dbus_connection_send_message):
12768 Unlock the message in case it was sent earlier.
12770 (dbus_connection_send_message_with_reply_and_block):
12771 Remove the reply message from the list.
12773 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12774 Set array_len and new_pos correctly.
12776 (_dbus_marshal_test):
12777 Remove debug output.
12779 * dbus/dbus-message-internal.h:
12780 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12781 New function that returns the reply serial.
12783 (_dbus_message_unlock):
12784 New function that unlocks a message and resets its header.
12786 (dbus_message_append_string_array),
12787 (dbus_message_get_fields_valist),
12788 (dbus_message_iter_get_field_type),
12789 (dbus_message_iter_get_string_array),
12790 (dbus_message_get_fields),
12791 (dbus_message_append_fields_valist):
12792 Handle string arrays.
12794 (dbus_message_set_sender):
12795 Make this function public since the bus daemon needs it.
12797 (decode_header_data):
12798 Set the reply serial to -1 initially.
12800 * dbus/dbus-message.h:
12801 Add dbus_message_set_sender.
12803 2003-01-24 Havoc Pennington <hp@pobox.com>
12805 * doc/dbus-specification.sgml: add some stuff
12807 2003-01-22 Havoc Pennington <hp@pobox.com>
12809 * doc/dbus-specification.sgml: Start to document the protocol.
12811 2003-01-22 Havoc Pennington <hp@pobox.com>
12813 * dbus/dbus-connection.c
12814 (dbus_connection_send_message_with_reply_and_block): add some @todo
12816 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12818 2003-01-21 Havoc Pennington <hp@pobox.com>
12820 (patch untested because can't compile)
12822 * bus/driver.c (create_unique_client_name): make this function
12823 never recycle client names. Also, caller should initialize
12826 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12828 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12830 * dbus/dbus-marshal.c: (_dbus_marshal_double),
12831 (_dbus_marshal_int32), (_dbus_marshal_uint32),
12832 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12833 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12834 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12835 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12836 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12837 * dbus/dbus-marshal.h:
12838 * dbus/dbus-protocol.h:
12839 Add support for marshalling and demarshalling integer, double
12842 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12847 * bus/connection.c: (connection_disconnect_handler):
12848 Remove the connection from the bus driver's list.
12850 (connection_watch_callback): Dispatch messages.
12852 (free_connection_data): Free connection name.
12854 (bus_connection_setup): Add connection to the bus driver's list.
12855 (bus_connection_remove_owned_service):
12856 (bus_connection_set_name), (bus_connection_get_name):
12857 Add functions for setting and getting the connection's name.
12859 * bus/connection.h:
12860 Add function headers.
12862 * bus/driver.c: (create_unique_client_name),
12863 (bus_driver_handle_hello_message),
12864 (bus_driver_send_welcome_message), (bus_driver_message_handler),
12865 (bus_driver_add_connection), (bus_driver_remove_connection):
12868 * bus/services.c: (bus_service_free):
12870 New file that handles communication and registreation with the bus
12873 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12875 * dbus/dbus-connection.c: (dbus_connection_send_message):
12876 Add a new client_serial parameter.
12878 (dbus_connection_send_message_with_reply):
12879 Remove a @todo since we've implemented the blocking function.
12881 (dbus_connection_send_message_with_reply_and_block):
12882 New function that sends a message and waits for a reply and
12883 then returns the reply.
12885 * dbus/dbus-connection.h:
12888 * dbus/dbus-errors.c: (dbus_result_to_string):
12889 * dbus/dbus-errors.h:
12890 Add new DBUS_RESULT.
12892 * dbus/dbus-message-internal.h:
12893 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12894 (_dbus_message_set_sender), (dbus_message_write_header),
12895 (dbus_message_new_reply), (decode_header_data),
12896 (_dbus_message_loader_return_buffer), (_dbus_message_test):
12897 * dbus/dbus-message.h:
12898 Add new functions that set the reply serial and sender.
12899 Also marshal and demarshal them correctly and add test.
12901 * dbus/dbus-protocol.h:
12902 Add new DBUS_MESSAGE_TYPE_SENDER.
12904 * glib/dbus-glib.h:
12905 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12906 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12907 (dbus_connection_hookup_with_g_main):
12908 * glib/test-dbus-glib.c: (main):
12909 Rewrite to use GIOChannel and remove the GSource crack.
12911 * test/echo-client.c: (main):
12912 * test/watch.c: (check_messages):
12913 Update for changed APIs
12915 2003-01-19 Anders Carlsson <andersca@codefactory.se>
12917 * dbus/Makefile.am: Add dbus-timeout.[cħ]
12919 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12920 Create a DBusTimeoutList.
12921 (dbus_connection_set_timeout_functions): Add new function to
12922 set timeout callbacks
12924 * dbus/dbus-connection.h: Add public DBusTimeout API.
12926 * dbus/dbus-message.c: (dbus_message_get_service):
12927 * dbus/dbus-message.h: New function.
12929 * dbus/dbus-server.c: Fix small doc typo.
12931 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12933 2003-01-19 Anders Carlsson <andersca@codefactory.se>
12935 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12936 of the string, just as long as specified.
12938 2003-01-19 Havoc Pennington <hp@pobox.com>
12940 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12943 * dbus/dbus-server.c (dbus_server_set_max_connections)
12944 (dbus_server_get_max_connections, dbus_server_get_n_connections):
12945 keep track of current number of connections, and add API for
12946 setting a max (but haven't implemented enforcing the max yet)
12948 2003-01-18 Havoc Pennington <hp@pobox.com>
12950 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12951 reading/writing if read_watch != NULL or write_watch != NULL.
12953 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12954 the message loader code to actually load message->header and
12955 message->body into the newly-created message.
12957 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12960 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12961 (dbus_connection_get_max_message_size)
12962 (dbus_connection_set_max_live_messages_size)
12963 (dbus_connection_get_max_live_messages_size): implement some
12964 resource limitation functions
12966 * dbus/dbus-resources.c: new file implementing some of the
12967 resource limits stuff
12969 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12970 missing docs, add @todo to handle OOM etc.
12972 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12975 2003-01-18 Havoc Pennington <hp@pobox.com>
12977 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12978 connection if it hasn't been already.
12980 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12981 replace with DisconnectFunction.
12983 2003-01-18 Havoc Pennington <hp@pobox.com>
12985 Building --disable-verbose-mode --disable-asserts --disable-tests
12986 cuts the library from 112K to 45K or so
12988 * configure.in: check for varargs macro support,
12989 add --enable-verbose-mode, --enable-asserts.
12991 * dbus/dbus-internals.h (_dbus_assert): support
12992 DBUS_DISABLE_ASSERT
12993 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12995 2003-01-18 Havoc Pennington <hp@pobox.com>
12997 * dbus/dbus-test.c: include config.h so that tests actually run
12999 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13000 so the failure mode when that assumption fails will be plenty
13003 2003-01-18 Havoc Pennington <hp@pobox.com>
13005 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13007 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13010 * test/Makefile.am: don't use special variable "TESTS" for echo-*
13011 since we don't want to use those in make check
13013 2003-01-15 Havoc Pennington <hp@redhat.com>
13019 2003-01-15 Havoc Pennington <hp@redhat.com>
13021 * test/Makefile.am: fix so that test source code ends up in the
13022 distribution on make distcheck
13024 2003-01-15 Havoc Pennington <hp@redhat.com>
13030 2003-01-15 Havoc Pennington <hp@redhat.com>
13032 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13033 fix build when --disable-tests
13035 * Makefile.am (EXTRA_DIST): put HACKING in here
13037 * HACKING: document procedure for making a tarball release.
13039 2003-01-14 Anders Carlsson <andersca@codefactory.se>
13041 * bus/connection.c: (connection_error_handler),
13042 (bus_connection_setup):
13043 * bus/main.c: (main):
13044 Make sure that the DBusConnectionData struct is NULLed
13045 out to prevent a segfault.
13047 * dbus/dbus-errors.c: (dbus_result_to_string):
13048 * dbus/dbus-errors.h:
13049 * dbus/dbus-message.c: (dbus_message_get_fields),
13050 (dbus_message_get_fields_valist), (_dbus_message_test):
13051 * dbus/dbus-message.h:
13052 Make dbus_message_get_fields return a result code so we can
13053 track invalid fields as well as oom.
13055 2003-01-11 Havoc Pennington <hp@pobox.com>
13057 * configure.in: change --enable-test/--enable-ansi action-if-given
13058 to enable_foo=$enableval instead of enable_foo=yes
13060 2003-01-08 Havoc Pennington <hp@pobox.com>
13062 * dbus/dbus-string.c (_dbus_string_align_length): new function
13064 * dbus/dbus-test-main.c: move main() for test app here
13066 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13067 symbol to run tests, because dbus-test isn't in the main
13070 Code review nitpicks.
13072 * dbus/dbus-message.c (dbus_message_write_header): add newlines
13073 for people with narrow emacs ;-). Assert client_serial was filled
13074 in. Assert message->name != NULL.
13075 (dbus_message_append_fields): have "first_field_type" arg separate
13076 from va list, needed for C++ binding that also uses varargs IIRC
13077 and helps with type safety
13078 (dbus_message_new): add @todo about using DBusString to store
13079 service/name internally
13080 (dbus_message_new): don't leak ->service and ->name on OOM later
13082 (dbus_message_unref): free the service name
13083 (dbus_message_get_fields): same change to varargs
13084 i.e. first_field_type
13085 (_dbus_message_loader_return_buffer): assert that the message data
13086 is aligned (if not it's a bug in our code). Put in verbose griping
13087 about why we set corrupted = TRUE.
13088 (decode_header_data): add FIXME that char* is evil. Was going to
13089 add FIXME about evil locale-specific string.h strncmp, but just
13090 switched to wacky string-as-uint32 optimization. Move check for
13091 "no room for field name" above get_const_data_len() to avoid
13092 assertion failure in get_const_data_len if we have trailing 2
13093 bytes or the like. Check for service and name fields being
13094 provided twice. Don't leak service/name on error. Require field
13095 names to be aligned to 4 bytes.
13097 * dbus/dbus-marshal.c: move byte swap stuff to header
13098 (_dbus_pack_int32): uscore-prefix
13099 (_dbus_unpack_int32): uscore-prefix
13100 (_dbus_unpack_uint32): export
13101 (_dbus_demarshal_string): add @todo complaining about use of
13103 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13104 handling allowing corrupt data to go unchecked
13106 2003-01-08 Havoc Pennington <hp@redhat.com>
13108 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13109 to the select() as needed for authentication. (should be using
13110 _dbus_poll() not select, but for another day)
13112 * dbus/dbus.h: include dbus/dbus-protocol.h
13114 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13116 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13119 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13121 * dbus/dbus-internals.c: (_dbus_type_to_string):
13122 New function that returns a string describing a type.
13124 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13125 * dbus/dbus-marshal.h:
13126 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13127 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13128 (dbus_message_iter_get_byte_array):
13129 * dbus/dbus-message.h:
13130 Add new convenience functions for appending and getting message fields.
13131 Also add demarshalling routines for byte arrays.
13133 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13135 * dbus/dbus-connection-internal.h:
13136 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13137 (_dbus_connection_get_next_client_serial),
13138 (dbus_connection_send_message):
13139 * dbus/dbus-internals.h:
13140 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13141 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13142 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13143 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13144 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13145 (_dbus_verbose_bytes), (_dbus_marshal_test):
13146 * dbus/dbus-marshal.h:
13147 * dbus/dbus-message-internal.h:
13148 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13149 (dbus_message_write_header), (_dbus_message_lock),
13150 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13151 (dbus_message_get_name), (dbus_message_append_int32),
13152 (dbus_message_append_uint32), (dbus_message_append_double),
13153 (dbus_message_append_string), (dbus_message_append_byte_array),
13154 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13155 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13156 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13157 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13158 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13159 (decode_header_data), (_dbus_message_loader_return_buffer),
13160 (message_iter_test), (_dbus_message_test):
13161 * dbus/dbus-message.h:
13162 * dbus/dbus-protocol.h:
13163 * dbus/dbus-test.c: (main):
13164 * dbus/dbus-test.h:
13165 * glib/test-dbus-glib.c: (message_handler), (main):
13166 * test/echo-client.c: (main):
13167 * test/watch.c: (check_messages):
13168 Make messages sendable and receivable for real.
13170 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13172 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13173 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13174 * dbus/dbus-message.c: (dbus_message_append_int32),
13175 (dbus_message_append_uint32), (dbus_message_append_double),
13176 (dbus_message_append_string), (dbus_message_append_byte_array):
13177 Handle OOM restoration.
13179 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13181 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13182 (_dbus_demarshal_string), (_dbus_marshal_test):
13183 * dbus/dbus-marshal.h:
13184 * dbus/dbus-message.c: (dbus_message_get_name),
13185 Document these functions.
13187 (dbus_message_append_int32), (dbus_message_append_uint32),
13188 (dbus_message_append_double), (dbus_message_append_string),
13189 (dbus_message_append_byte_array):
13190 * dbus/dbus-message.h:
13191 Add functions for adding message fields of different types.
13193 * dbus/dbus-protocol.h:
13194 Add the different types.
13196 2003-01-05 Havoc Pennington <hp@pobox.com>
13198 * bus/connection.c: implement routines for handling connections,
13199 first thing is keeping a list of owned services on each connection
13200 and setting up watches etc.
13202 * bus/services.c: implement a mapping from service names to lists
13205 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13207 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13208 to use static mutexes for global data
13210 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13211 collection of functions to set/get application-specific data
13212 on the DBusConnection.
13214 2003-01-04 Havoc Pennington <hp@pobox.com>
13216 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13217 (_dbus_poll): new function
13219 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13222 * bus/loop.c: initial code for the daemon main loop
13224 2003-01-04 Havoc Pennington <hp@pobox.com>
13226 * test/watch.c (error_handler): make it safe if the error handler
13227 is called multiple times (if we s/error handler/disconnect
13228 handler/ we should just guarantee it's called only once)
13230 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13231 error handler on disconnect (it's quite possible we should
13232 just change the error handler to a "disconnect handler," I'm
13233 not sure we have any other meaningful errors)
13235 * configure.in: check for getpwnam_r
13237 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13238 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13239 mechanism as in SASL spec, using socket credentials
13241 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13242 (_dbus_send_credentials_unix_socket): new function
13244 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13246 (_dbus_write): only check errno if <0 returned
13247 (_dbus_write_two): ditto
13249 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13251 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13252 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13253 (_dbus_marshal_test):
13254 * dbus/dbus-marshal.h:
13255 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13256 to _dbus_marshal_utf8_string. Also fix some tests.
13258 2002-12-28 Harri Porten <porten@kde.org>
13260 * configure.in: added check for C++ compiler and a very cheesy
13261 check for the Qt integration
13263 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13265 * qt/Makefile.am: added
13267 * qt/.cvsignore: added
13269 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13270 latter, added #ifdef QT_THREAD_SUPPORT guard.
13272 * dbus/Makefile.am: added missing headers for make dist
13274 2002-12-28 Kristian Rietveld <kris@gtk.org>
13276 * dbus/Makefile.am: fixup export-symbols-regex.
13278 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13280 * acinclude.m4: Add this file and put the
13281 PKG_CHECK_MODULE macro in it.
13283 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13285 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13286 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13287 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13288 (_dbus_marshal_test):
13289 Make the demarshalling routines align the pos argument.
13290 Add string marshalling tests and fix the obvious bugs
13293 2002-12-26 Havoc Pennington <hp@pobox.com>
13295 * dbus/dbus-auth.c: fixes fixes fixes
13297 * dbus/dbus-transport-unix.c: wire up support for
13298 encoding/decoding data on the wire
13300 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13301 (_dbus_auth_decode_data): append to target string
13302 instead of nuking it.
13304 2002-12-26 Havoc Pennington <hp@pobox.com>
13306 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13307 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13310 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13311 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13312 now). Main point is because I wanted unpack_uint32 to implement
13313 _dbus_verbose_bytes
13314 (_dbus_verbose_bytes): new function
13316 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13318 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13319 mechanism to handle a corrupt message stream
13320 (_dbus_message_loader_new): fix preallocation to only prealloc,
13323 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13324 (_dbus_string_test): enhance tests for copy/move and fix the
13327 * dbus/dbus-transport-unix.c: Hold references in more places to
13328 avoid reentrancy problems
13330 * dbus/dbus-transport.c: ditto
13332 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13333 leak reference count in no-message case
13335 * test/watch.c (do_mainloop): handle adding/removing watches
13336 during iteration over the watches. Also, ref the connection/server
13337 stored on a watch, so we don't try to mangle a destroyed one.
13339 * dbus/dbus-transport-unix.c (do_authentication): perform
13342 * dbus/dbus-auth.c (get_state): add a state
13343 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13344 (_dbus_auth_get_unused_bytes): append the unused bytes
13345 to the passed in string, rather than prepend
13347 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13348 the auth conversation DBusAuth
13350 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13351 (_dbus_transport_new_for_domain_socket): when creating a
13352 transport, pass in whether it's a client-side or server-side
13353 transport so we know which DBusAuth to create
13355 2002-12-03 Havoc Pennington <hp@pobox.com>
13357 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13358 _after_ finalizing the derived members
13359 (unix_connection_set): unref watch if we fail to add it
13361 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13362 transport first, so that the connection owned by the
13363 transport will be valid as the transport finalizes.
13365 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13366 if necessary, and remove watches from the connection.
13368 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13370 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13372 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13373 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13374 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13375 (_dbus_marshal_test):
13376 * dbus/dbus-marshal.h:
13377 Add string marshal functions and have the demarshal functions
13378 return the new position.
13380 2002-12-25 Havoc Pennington <hp@pobox.com>
13382 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13383 it is a simple protocol that just maps directly to SASL.
13385 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13386 initial implementation, not actually used yet.
13388 * dbus/dbus-string.c (_dbus_string_find): new function
13389 (_dbus_string_equal): new function
13390 (_dbus_string_base64_encode): new function
13391 (_dbus_string_base64_decode): new function
13393 2002-12-25 Anders Carlsson <andersca@codefactory.se>
13395 * dbus/Makefile.am:
13396 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13397 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13398 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13399 (_dbus_demarshal_uint32), (_dbus_marshal_test):
13400 * dbus/dbus-marshal.h:
13401 * dbus/dbus-protocol.h:
13402 * dbus/dbus-test.c: (main):
13403 * dbus/dbus-test.h:
13404 Add un-optimized marshalling/demarshalling routines.
13406 2002-12-25 Harri Porten <porten@kde.org>
13408 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13410 2002-12-24 Zack Rusin <zack@kde.org>
13412 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13413 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13416 2002-12-24 Havoc Pennington <hp@pobox.com>
13418 * glib/dbus-gthread.c: fix include
13420 * glib/dbus-glib.h: rename DBusMessageHandler for now.
13421 I think glib API needs to change, though, as you don't
13422 want to use DBusMessageFunction, you want to use the
13423 DBusMessageHandler object. Probably
13424 dbus_connection_open_with_g_main_loop()
13425 and dbus_connection_setup_g_main_loop() or something like that
13426 (but think of better names...) that just create a connection
13427 that has watch/timeout functions etc. already set up.
13429 * dbus/dbus-connection.c
13430 (dbus_connection_send_message_with_reply): new function just to
13431 show how the message handler helps us deal with replies.
13433 * dbus/dbus-list.c (_dbus_list_remove_last): new function
13435 * dbus/dbus-string.c (_dbus_string_test): free a string that
13438 * dbus/dbus-hash.c: use memory pools for the hash entries
13439 (rebuild_table): be more paranoid about overflow, and
13440 shrink table when we can
13441 (_dbus_hash_test): reduce number of sprintfs and write
13442 valid C89. Add tests for case where we grow and then
13443 shrink the hash table.
13445 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13447 * dbus/dbus-connection.c (dbus_connection_register_handler)
13448 (dbus_connection_unregister_handler): new functions
13450 * dbus/dbus-message.c (dbus_message_get_name): new
13452 * dbus/dbus-list.c: fix docs typo
13454 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13455 an object representing a handler for messages.
13457 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13459 * glib/dbus-glib.h:
13460 * glib/dbus-gthread.c: (dbus_gthread_init):
13461 Don't use the gdbus prefix for public functions.
13463 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13467 Add GLib checks and fixup .pc files
13469 * glib/Makefile.am:
13470 * glib/dbus-glib.h:
13471 * glib/dbus-gmain.c: (gdbus_connection_prepare),
13472 (gdbus_connection_check), (gdbus_connection_dispatch),
13473 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13474 (dbus_connection_gsource_new):
13475 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13476 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13477 * glib/test-dbus-glib.c: (message_handler), (main):
13480 2002-12-15 Harri Porten <porten@kde.org>
13482 * autogen.sh: check for libtoolize before attempting to use it
13484 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13487 * .cvsignore: ignore more stamp files
13489 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13491 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13492 without make install.
13494 2002-12-15 Havoc Pennington <hp@pobox.com>
13496 * dbus/dbus-threads.c: add thread stubs that a higher library
13497 layer can fill in. e.g. the GLib wrapper might fill them in with
13498 GThread stuff. We still need to use this thread API to
13499 thread-safe-ize the library.
13501 2002-12-12 Havoc Pennington <hp@pobox.com>
13503 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13504 below new interfaces and include fewer system headers.
13506 * dbus/dbus-sysdeps.c (_dbus_read): new function
13507 (_dbus_write): new function
13508 (_dbus_write_two): new function
13509 (_dbus_connect_unix_socket): new function
13510 (_dbus_listen_unix_socket): new function
13512 * dbus/dbus-message-internal.h: change interfaces to use
13515 2002-12-11 Havoc Pennington <hp@pobox.com>
13517 * dbus/dbus-types.h: add dbus_unichar
13519 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13521 * dbus/dbus-connection.c (dbus_connection_send_message): return
13524 * dbus/dbus-transport.c: include dbus-watch.h
13526 * dbus/dbus-connection.c: include dbus-message-internal.h
13528 * HACKING: add file with coding guidelines stuff.
13530 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13531 handling here, for security purposes (as in vsftpd). Not actually
13532 using this class yet.
13534 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13535 system/libc usage here, as in vsftpd, for ease of auditing (and
13536 should also simplify portability). Haven't actually moved all the
13537 system/libc usage into here yet.
13539 2002-11-25 Havoc Pennington <hp@pobox.com>
13541 * dbus/dbus-internals.c (_dbus_verbose): fix to not
13542 always print the first verbose message.
13544 2002-11-24 Havoc Pennington <hp@pobox.com>
13546 * test/echo-client.c, test/echo-server.c: cheesy test
13549 * configure.in (AC_CHECK_FUNCS): check for writev
13551 * dbus/dbus-message.c (_dbus_message_get_network_data): new
13554 * dbus/dbus-list.c (_dbus_list_foreach): new function
13556 * dbus/dbus-internals.c (_dbus_verbose): new function
13558 * dbus/dbus-server.c, dbus/dbus-server.h: public object
13559 representing a server that listens for connections.
13561 * dbus/.cvsignore: create
13563 * dbus/dbus-errors.h, dbus/dbus-errors.c:
13564 public API for reporting errors
13566 * dbus/dbus-connection.h, dbus/dbus-connection.c:
13567 public object representing a connection that
13568 sends/receives messages. (Same object used for
13569 both client and server.)
13571 * dbus/dbus-transport.h, dbus/dbus-transport.c:
13572 Basic abstraction for different kinds of stream
13573 that we might read/write messages from.
13575 2002-11-23 Havoc Pennington <hp@pobox.com>
13577 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13580 * dbus/dbus-test.c (main): add list test, and include
13581 dbus-test.h as intended
13583 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13584 (_dbus_hash_table_remove_int): return value indicates
13585 whether the entry existed to remove
13587 * dbus/dbus-list.c: add linked list utility class,
13588 with docs and tests
13590 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13593 2002-11-23 Havoc Pennington <hp@pobox.com>
13595 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13596 DBUS_END_DECLS to nothing, that should fix this once and for all
13598 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13600 * dbus/dbus-message.c, dbus/dbus-hash.c:
13601 add some missing @brief
13603 2002-11-23 Havoc Pennington <hp@pobox.com>
13605 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13606 to avoid confusing Doxygen
13608 * dbus/dbus-hash.c: @} not }@
13610 * dbus/dbus-message.c (struct DBusMessage): split out
13613 2002-11-23 Havoc Pennington <hp@pobox.com>
13615 * configure.in: pile on more warning flags if using gcc
13617 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13618 to document static functions
13620 * configure.in: add summary to end of configure so it
13621 looks nice and attractive
13623 * dbus/dbus-hash.c: finish implementation and write unit
13626 * configure.in: add --enable-tests to enable unit tests
13628 * dbus/dbus-test.c: test program to run unit tests
13629 for all files in dbus/*, initially runs a test for
13632 * dbus/dbus-internals.h: file to hold some internal utility stuff
13634 2002-11-22 Havoc Pennington <hp@redhat.com>
13636 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13637 "ported" away from Tcl
13639 * dbus/dbus-types.h: header for types such as dbus_bool_t
13641 2002-11-22 Havoc Pennington <hp@redhat.com>
13643 * dbus/dbus.h: fixups for doc warnings
13645 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13647 (QUIET): make it quiet so we can see warnings
13649 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13651 2002-11-22 Havoc Pennington <hp@redhat.com>
13653 * Makefile.am: include "Doxyfile" target in all-local
13655 * configure.in: generate the Doxyfile
13657 * Doxyfile.in: move Doxyfile here, so we can use
13658 configure to generate a Doxyfile with the right
13659 version number etc.
13661 2002-11-22 Havoc Pennington <hp@redhat.com>
13663 * dbus/dbus-message.c: move inline docs into .c file
13665 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13666 so all docs are under doc/
13667 (MAN_EXTENSION): generate man pages. Use extension
13668 ".3dbus" which matches ".3qt" on my system,
13669 I guess this is OK, I don't know really.
13670 (FILE_PATTERNS): look for .c files not .h, makes sense
13671 for plain C I think
13673 2002-11-22 Havoc Pennington <hp@pobox.com>
13675 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13676 because any app can be a server, and any app can be a client,
13677 the bus is a special kind of server.
13679 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
13681 * Doxyfile : adding. Still needs Makefile rules to be generated
13682 automatically (just run "doxygen" in the toplevel dir for now to
13685 * dbus/dbus-message.h : Adding sample docs (javadoc since
13686 resembles gtk-doc a little more)
13688 * dbus/dbus.h : Adding sample docs
13690 2002-11-21 Havoc Pennington <hp@redhat.com>
13692 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13693 so we can allow ourselves to include files directly,
13694 instead of having to use dbus.h
13696 * dbus/dbus.h: fill in
13698 * dbus/dbus-message.h: sketch out a sample header file.
13699 Include griping if you include it directly instead of
13702 * dbus/dbus-macros.h: new file with macros for extern "C",
13703 TRUE/FALSE, NULL, etc.
13705 * doc/file-boilerplate.c: put include guards in here
13707 2002-11-21 Havoc Pennington <hp@redhat.com>
13709 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13711 * COPYING: include the GPL as well, and license code
13712 under both AFL and GPL.
13714 2002-11-21 Havoc Pennington <hp@redhat.com>
13716 * acconfig.h: get rid of this
13718 * autogen.sh (run_configure): add --no-configure option
13720 * configure.in: remove AC_ARG_PROGRAM to make
13721 autoconf complain less. add AC_PREREQ.
13722 add AC_DEFINE third arg.
13724 2002-11-21 Anders Carlsson <andersca@codefactory.se>
13727 Fix references so we can distcheck.
13729 2002-11-21 Havoc Pennington <hp@redhat.com>
13731 * Initial module creation