1 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
5 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
7 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
8 break pedantic builds. Closes bug 6043 (patch approved by
9 Havoc back in February).
11 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
13 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
14 that took a QDBusMessage parameter.
15 * qt/src/qdbusbus.h: Add a default flag for RequestName.
16 * qt/tools/dbus.cpp: Don't use automatic call because we might
17 be calling an async method: request a reply.
19 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
21 * test/qt/*: Update the testcases, including testing the new
22 functionality of sending null QByteArray and QString over the
23 bus. Add new headertest test and restore the old
26 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
28 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
29 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
31 * qt/examples/Makefile.am:
32 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
35 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
36 QByteArray() (nulls) over the bus.
37 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
38 the one that has the signature suffix stripped.
39 * qt/src/qdbusreply.h: Make some methods const.
41 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
43 Patch from Timo Hoenig <thoenig@suse.de>.
45 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
46 required during build to EXTRA_DIST.
47 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
48 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
49 * configure.in: Fix "make dist", take care that the Makefile for
50 qt/dbus is being generated.
52 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
54 * bus/bus.c: Fix eavesdropping on method calls
56 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
59 * dbus/dbus-userdb-util.c:
60 Add Solaris console owner patch from Artem Kachitchkine
62 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
65 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
66 reorganisation. Thanks to Timo Hoenig for pointing this out.
68 2006-06-06 Robert McQueen <robot101@debian.org>
70 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
71 call to dbus_g_type_get_struct.
73 2006-06-06 Robert McQueen <robot101@debian.org>
75 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
76 pointers were put into a GPtrArray-based specialised collection, and
77 then freed along with the array. GValues which you add into
78 collections or maps which have the NOCOPY flag set are assumed to not
79 belong to the caller, so rather than the existing pointer-stealing
80 semantics, they are copied instead. Given that the main consumers of
81 this abstraction are the bindings themselves, I don't think this is
82 too bad, but others should watch their choice of take vs set_static.
84 2006-06-06 Robert McQueen <robot101@debian.org>
86 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
87 of g_slist_prepend not being used. Fixed copying of slist-based
88 specialised collections, then wrote a test case and found that it was
89 all broken. Went on to fix iterating and appending too. Good thing
90 nobody uses this code yet.
92 2006-06-06 Robert McQueen <robot101@debian.org>
94 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
95 the iterators use gvalue_take_ptrarray_value (the GValues themselves
96 are discarded without unsetting, so it makes no difference whether
97 we take or set_static). Remove cases for G_TYPE_POINTER because
98 there really is nothing useful we can do with them in our
99 specialised types - we *need* boxed copy/free functions at the very
102 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
104 * qt/dbus: Add directory. I had forgotten to add this
105 yesterday after the move...
107 * qt/examples/Makefile.am:
108 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
110 * qt/tools/Makefile.am:
111 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
112 Added feature to get and set properties.
113 Added validation of service, object path and interface names.
115 * qt/tools/dbusidl2cpp.cpp: Two new features:
116 1) Allow specifying both the header and the source file names,
117 by separating them with a colon.
118 2) Don't write an interface output if the -p switch wasn't
119 given, but the -a was.
121 * qt/src/*: Fix usage of Iterators and ConstIterators.
122 Fix shadowing of variables by other variables (-Wshadow).
123 Fix keyword-cleanliness in headers.
124 Fix ASCII-cast (QLatin1String, QLatin1Char).
125 Fix validation of member names.
126 Add extra checking of introspection data during XML parsing.
129 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
132 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
135 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
137 * configure.in: Make --disable-qt actually do
138 something. Patch inspired by Zack Rusin.
140 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
142 * qt/: Update to Subversion r548032.
143 This includes a big reorganisation of the files inside the
146 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
148 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
150 "Failed to connect to socket <host>:<port> <error>" instead of
151 "Failed to connect to socket <host>: <error>:<port>"
153 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
156 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
158 * qt/*: Update the QtDBus bindings up to revision 546310 in
160 This adds the dbuscpp2xml tool, that parses a C++ header and
161 outputs a D-BUS Introspection XML.
163 2006-05-21 Havoc Pennington <hp@redhat.com>
165 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
166 is not NULL when it shouldn't be. Also a couple of possible fixes
167 for #4637 though I don't understand why the bug happens, to be
168 honest... also the object constructor has an assert name != NULL
169 and the name is only currently NULL for peer-to-peer proxies that
170 I don't think anyone uses? So it should be asserting.
171 Anyway, for now at least see if we get an earlier assertion failure.
173 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
174 apparently broken code to be sure the tests fail and someone
177 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
179 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
180 and arrays when they had a single element: has_next returns
181 false, even before you read the element. So, instead, check
184 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
186 * qt/qdbusmessage.cpp:
187 * qt/qdbustypehelper_p.h:
188 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
189 the list is a const-reference
191 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
193 * Adding old doc patch that never got applied
195 * dbus/bus.c (dbus_bus_add_match): Add documentation
197 * doc/dbus-specification.xml: Add documentation for the match rules
198 and the AddMatch and RemoveMatch methods
200 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
202 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
205 * qt/dbusidl2cpp.cpp:
206 * qt/qdbusabstractadaptor.cpp:
207 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
208 sibling of the QDBusAbstractAdaptor objects instead of the
211 * qt/dbusidl2cpp.cpp:
212 * qt/qdbusabstractinterface.cpp:
213 * qt/qdbusabstractinterface.h:
214 * qt/qdbusabstractinterface_p.h:
215 * qt/qdbusinterface.cpp: Make properties in interfaces
216 actually work. The code that was generated would not compile,
217 due to moc calls to functions that did not exist. They now
220 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
224 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
225 Thanks to Brad Hards for providing the patch
227 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
229 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
232 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
234 * qt/examples/dbus.cpp: Enhance error messages and use
237 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
239 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
240 and disable the copy operators. (r533772, r534746)
242 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
244 * qt/qdbusabstractinterface.cpp:
245 * qt/qdbusabstractinterface.h: Change the default call mode to
246 not use the event loop. Add convenience call() methods that
247 take a CallMode parameter. (r534042)
249 * qt/qdbusconnection.h: Change the default call mode to not
250 use the event loop. (r534042)
252 * qt/qdbusinterface.cpp:
253 * qt/qdbusinterface.h: Add a method to tell us if the
254 interface is valid (since we don't return a null pointer
257 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
260 * qt/qdbusinternalfilters.cpp: Decouple the introspection
261 function in two so taht we get the chance to introspect
262 without having a QDBusMessage (r534102)
265 * qt/qdbusconnection.cpp:
266 * qt/qdbusconnection_p.h:
267 * qt/qdbusintegrator.cpp: Keep a list of our own names to
268 avoid a round-trip to the server when attempting to introspect
269 one of our own objects. Also make sure the filter functions
270 match the empty interface as well. (r534108)
271 Don't keep the connection names. Instead, trust the unique
272 connection name (r534111)
273 Remove event loop usage (r534112)
275 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
277 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
280 2006-04-28 Robert McQueen <robot101@debian.org>
282 * glib/dbus-gproxy.c: Fix properties so that they can be given in
283 any order, making it easier for people who inherit from this
286 2006-04-28 Robert McQueen <robot101@debian.org>
288 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
289 of memory from within pointer arrays and lists. Fixes bug #6300.
291 2006-04-28 Robert McQueen <robot101@debian.org>
293 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
294 generating struct signatures. Fixes bug #6083.
296 2006-04-28 Robert McQueen <robot101@debian.org>
298 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
299 to qdbusconnection_p.moc.
301 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
303 * README, INSTALL: Doc fixes
304 Patch from Brad Hards <bradh at frogmouth.net>
306 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
308 * qt/examples/dbus.cpp: Use the new merged-interface mode for
309 the dynamic meta object. No need to guess which interface to
312 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
314 * qt/qdbusconnection_p.h:
315 * qt/qdbusmetaobject.cpp:
316 * qt/qdbusmetaobject_p.h:
317 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
318 for the dynamic meta object. No need to guess which
320 * qt/qdbusabstractinterface_p.h:
321 * qt/qdbusconnection.cpp:
322 * qt/qdbusintegrator.cpp:
323 * qt/qdbusinterface.cpp:
324 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
325 Add a QDBusRef that looks and behaves like DCOPRef.
327 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
329 * dbus/dbus-connection.c: Interfaces are optional in method
330 calls, so don't give up if the interface parameter is NULL.
331 Patch reviewed by Havoc Pennington.
333 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
335 * qt/qdbusreply.h: Add default constructor and operator=
337 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
338 in public headers (r532952)
339 * qt/qdbusabstractinterface.cpp:
340 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
341 make it the default (r532951)
343 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
345 * dbus/dbus-connection.c: Fix asserts
346 Patch from Tim Moloney <t.moloney at verizon.net>
348 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
350 * mono/Connection.cs, mono/Message.cs: Check Target type
351 Patch from Aaron Bockover (abockover at novell.com)
353 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
355 * INSTALL: fine-tune the requirements for the Qt4 binding.
357 2006-04-16 Daniel P. Berrange <dan@berrange.com>
359 * tools/dbus-print-message.c: Added support for printing of all
360 remaining data types. Fixed logic for indentation of compound
363 2006-04-15 Daniel P. Berrange <dan@berrange.com>
365 * INSTALL: fill out content of file providing DBus specific
366 build installations, followed by generic Auto* INSTALL file
369 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
371 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
372 Patch by Stefan Eilers. (r529537)
374 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
376 * qt/qdbusinternalfilters.cpp: Don't show the parent's
379 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
381 * qt/Makefile.am: fix the dependency for
382 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
383 not in qdbusconnection.cpp.
384 Thanks to Jakub Stachowski <stachowski@hypair.net> for
387 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
389 * qt/examples/listnames.cpp:
390 * qt/examples/Makefile.am: Three ways to list the names on the
393 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
395 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
396 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
398 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
400 Merge from Subversion:
401 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
402 something that exists (r526315)
403 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
404 slots/signals (r526316)
405 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
406 also return an unknown-method error if the parameters don't
407 match for org.freedesktop.DBus.Properties. (r526842)
408 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
409 * qt/qdbusintegrator.cpp: Restore the proper order of
410 delivery: don't make method returns be delivered on priority
413 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
415 * configure.in qt/Makefile.am: add qt/examples
416 * qt/examples: Add QtDBus example programs:
417 - hello: Hello, World
418 - ping: Simple method-calling program
419 - pong: Simple object-exporting program (not using adaptors)
420 - complexping: Interactive method-calling program
421 (also gets and sets properties).
422 - complexpong: Sample program exporting methods, signals and
423 properties, using adaptors.
424 - dbus: Simple implementation of a generic method-calling
425 program, similar to 'dbus-send', but with semantics
427 - chat: Simplistic chat program, implemented using signals
428 and the system bus. Looks like IRC.
430 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
432 * configure.in: Detect QtGui (necessary for one of the
433 example programs). Note: this increases the minimum required
434 version of Qt to 4.1.3.
436 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
438 * test/qt/*: Sync with KDE Subversion revision 523647.
439 Update the testcases to the new API. Remove testcases for
440 classes that are no longer public or have been removed.
442 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
445 * dbus/qdbus.h: Sync with KDE Subversion revision
446 523647. Hopefully, this will be the last of the
447 source-incompatible changes. Documentation has been improved;
448 support for QList<basic-types> has been added; QDBusObject is
449 gone; QDBus(Abstract)Interface is now a QObject with
450 auto-generated meta-object; QDBusIntrospection is marked
451 private, since QMetaObject can be used now; lots of bugfixes.
453 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
455 Patch from Milosz Derezynski <internalerror at gmail.com>
458 Output the service directory in the configure summary
461 Add session_bus_services_dir
463 2006-03-10 Ross Burton <ross@openedhand.com>
465 * tools/dbus-print-message.c:
466 Add support for object paths and signatures.
468 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
470 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
472 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
474 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
475 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
476 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
477 * dbus/dbus-userdb.h: Add function to flush all user/group information
480 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
482 * qt/dbusidl2cpp.cpp:
483 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
484 for dcopidl2cpp, found in the KDE installations (or the more
485 modern kalyptus): generate Qt4 C++ code for the input XML
486 introspection. Currently no IDL parsing.
488 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
490 * test/qt/*: Update the self-tests.
492 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
495 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
496 represents the first feature-complete version of the Qt4
497 bindings since I took ove maintainership.
499 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
501 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
502 dir. This is C++, so we can't use the DBus ones.
504 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
506 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
507 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
509 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
511 * dbus/dbus-connection.c:
512 (_dbus_connection_block_pending_call):
513 Check to see if our data has already been read off the connection
514 by another blocking pending call before we block in poll.
515 (check_for_reply_and_update_dispatch_unlocked):
516 Code taken from _dbus_connection_block_pending_call - checks for
517 an already read reply and updates the dispatch if there is one.
519 * test/name-test/test-pending-call-dispatch.c:
520 New test for making sure we don't get stuck polling a
521 dbus connection which has no data on the socket when
522 blocking out of order on two or more pending calls.
524 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
526 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
527 make/automake don't detect that we're talking about the same
528 .lo file if I specify the full path to the source files.
530 2006-02-26 Havoc Pennington <hp@redhat.com>
532 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
534 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
535 session bus variable is unset, suggest "man dbus-launch" and "man
536 dbus-daemon" to figure out how to fix the problem
538 2006-02-25 Havoc Pennington <hp@redhat.com>
540 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
541 should make this thing use the new glib options parser
543 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
545 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
546 .lo files taking moc sources.
548 2006-02-25 Havoc Pennington <hp@redhat.com>
550 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
551 and install it as a public header
553 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
557 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
559 * proxies.py: Fix the callchain
561 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
563 * patch from Sjoerd Simons <sjoerd at debian.org>:
565 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
568 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
569 call _dbus_group_info_free_allocated which causes infinite loop,
570 correctly call _dbus_group_info_free
572 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
574 * qt/qdbusinterface_p.h:
575 * qt/qdbusinterface.cpp: Use the standard
576 org.freedesktop.DBus.Method.NoReply annotation for the "async"
577 calls instead of creating one for us.
579 * qt/qdbusconnection_p.h:
580 * qt/qdbusintegrator.cpp: Remove debugging code.
582 * qt/qdbusintegrator.cpp:
583 * qt/qdbusmessage.cpp:
584 * qt/qdbusmessage_p.h:
585 * qt/qdbusmessage.h: Change the behaviour of automatic
586 reply-sending: now a reply is always sent, unless the caller
587 didn't request one or if the user slot has already sent one.
589 2006-02-16 Robert McQueen <robot101@debian.org>
591 * configure.in: Patch from Debian packages by Sjoerd Simons
592 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
593 arguments so it's possible to build both bindings in the
596 * qt/Makefile.am: Fix truncated value so that make dist works.
598 2006-02-16 Robert McQueen <robot101@debian.org>
600 * acinclude.m4, configure.in: Patch from Brad Hards
601 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
602 improving quoting, re-ordering a few checks, and a few other
605 2006-02-16 Robert McQueen <robot101@debian.org>
607 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
608 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
609 assertion that the next element to read from the iter is fixed in
610 size. This is not the case when you are at the end of the iter,
611 because the next element type is INVALID.
613 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
614 a bogus assert which means that you may not initialise a 0-length
615 string unless you provide a non-NULL pointer. This prevented
616 you from marshalling messages containing zero-length arrays in
619 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
620 from Rob to correct bogus asserts when trying to demarshal an
621 array and get_fixed_array got you 0 elements. Append nothing to
622 the GArray in this case.
624 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
625 an empty array via the glib bindings. Without all of the above
626 patches, this new test fails.
628 2006-02-16 Robert McQueen <robot101@debian.org>
630 * glib/dbus-gmain.c: Make the previous commit compile.
632 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
633 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
634 specify sender_keyword="foo", path_keyword="bar" when adding
635 a signal listener, so that you can bind to signals generically
636 but still do something useful in your callback.
638 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
639 chars so that they're not cast to chars and made negative. Thanks
640 to Jakub Stachowski for reporting this and testing the fix.
642 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
646 (dbus_g_connection_open): new method for openning
647 a connection to an arbitrary address in the glib bindings
649 * ChangeLog: checkin last entry which doesn't seem to be commited
651 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
653 * tools/dbus-launch.c: Fixed sh syntax output
655 2006-02-13 Robert McQueen <robot101@debian.org>
657 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
658 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
659 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
660 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
661 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
662 missing piece of the glib bindings jigsaw puzzle. This modifies
663 the existing specialised types to have N type parameters (rather
664 than the current 1 or 2 for arrays and dictionaries respectively).
665 You can then use this to get a glib type to represent any arbitrary
666 D-Bus struct type using dbus_g_type_get_struct. The only
667 implementation of these types is with GValueArrays as before,
668 but it's now possible to store these in arrays, emit them in
671 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
673 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
674 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
675 <thiago.macieira at trolltech.com>
677 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
679 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
680 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
682 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
684 * bus/connection.c (bus_connections_expect_reply): Make
685 pending reply limit not common to all connections (Bug #5416)
686 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
688 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
690 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
692 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
694 * gcj/Makefile.am: point to correct jar command (Bug #4529)
695 patch from Doug Goldstein <cardoe at gentoo.org>
697 2006-02-09 Joe Shaw <joeshaw@novell.com>
699 * mono/Arguments.cs: Fix a magic number in the mono bindings
700 that doesn't work on 64 bit arches. Patch from Peter Johanson.
702 2006-01-27 Robert McQueen <robot101@debian.org>
704 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
705 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
706 when generating the client-side methods, instead of overloading
707 CSymbol which broke everything horribly. My apologies.
709 2006-01-27 Robert McQueen <robot101@debian.org>
711 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
712 by me and Rob Taylor to add a simple_free function to D-Bus map
713 and collection types, which allows those types which can be freed
714 with a GDestroyNotify (such as GHashTables and GArrays, but not
715 GPtrArrays) to be stored as the values in hashtables.
717 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
718 Patch by Rob Taylor to add nested dicts to the glib tests to check
719 the above code works, and appears not to leak when called repeatedly.
721 2006-01-27 Robert McQueen <robot101@debian.org>
723 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
724 to free a D-Bus allocated string with dbus_free () instead of
727 2006-01-27 Iain Holmes <iain@openedhand.com>
729 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
730 method from being called multiple times.
732 2006-01-19 Robert McQueen <robot101@debian.org>
734 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
735 <rob.taylor@collabora.co.uk> to add support for generating bindings
736 to arrays that are represented as GPtrArrays rather than GArrays (ie
737 size-variable things, such as strings, objects, structs, etc).
739 2006-01-05 Robert McQueen <robot101@debian.org>
741 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
742 <ricardo.kekki@movial.fi> to make it possible to inherit from
743 DBusGProxy, by splitting the DBusGProxy struct into a public part and
744 a private part, and moving the setting of the DBusGProxyManager into a
745 connection property, allowing proper GObject construction.
747 2006-01-05 Robert McQueen <robot101@debian.org>
749 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
750 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
751 annotations when generating glib client bindings.
753 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
755 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
757 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
759 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
761 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
763 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
765 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
767 2005-12-19 Ross Burton <ross@openedhand.com>
769 * doc/dbus-tutorial.xml:
770 Document the Glib client-side bindings, and list all possible annotations.
772 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
774 * dbus/bus.c (dbus_bus_release_name): Add documentation
776 2005-12-06 Robert McQueen <robot101@debian.org>
778 * python/service.py: s/sucessful/successful/ so we're allocating to
779 and reading from the same variable. Oops.
781 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
785 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
787 * test/qt/Makefile.am: build from srcdir
789 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
790 Note - this code is wrong and needs to be fixed by the Qt binding
791 developers. The flags should be treated as bitfields and not enums.
793 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
795 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
797 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
798 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
801 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
803 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
804 method for getting messages off the bus in the absence of a
805 mainloop. This method is much like
806 dbus_connection_read_write_dispatch except it does not dispatch
807 the messages to a registered filter function. Instead it
808 allows a developer to process messages by directly popping
811 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
813 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
814 the parser to continue instead of returning error
815 (bus_desktop_file_load): Do not free parser data when
816 parse_section_start or parse_key_value fails because it was
817 already freed by parser_free (patch from Carlos Garcia Campos
818 <carlosgc at gnome.org>)
820 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
822 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
823 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
824 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
825 test/test-segfault.c, test/test-utils.c,
826 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
827 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
828 Various cleanup of dead code and compiler warnings (patch from
829 Kjartan Maraas <kmaraas at gnome.org>)
831 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
833 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
834 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
836 2005-11-27 Robert McQueen <robot101@debian.org>
838 * python/dbus_bindings.pyx: Repair my previous commit which reverted
839 part of the preceding one. Oops. Merge patch by Johan Hedberg
840 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
841 on big-endian platforms.
843 * test/python/test-client.py: Add some 16-bit integers to the test
846 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
848 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
849 method return message for property getters
851 2005-11-27 Robert McQueen <robot101@debian.org>
853 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
854 with type v of an instance of dbus.Variant(foo, type='x') caused
855 it to be boxed twice before sending over the bus.
857 * python/dbus_bindings.pyx, python/service.py,
858 test/python/test-client.py: Update the constants for the new
859 request_name flags, and update comments/test cases now that queueing
860 is the default action.
862 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
865 - Change version to 0.60 for impending release
866 - upped the sonames because of ABI and API breakage
868 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
870 * configure.in: Add test/name-test/Makefile to the generated
873 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
874 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
875 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
876 not to queue an ower if it can't be the primary owner
878 * bus/bus.h: Add new internal BusOwner struct
880 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
881 to bus_registry_ensure and don't set the prohibit_replacement flag
882 since they are now set per BusOwner and not per name.
883 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
884 that returns the list of connections in a name's connection queue
886 * bus/services.c (struct BusService): remove prohibit_replacement field
887 (struct BusOwner): new struct for keeping track of queued connections
888 and their associated flags for the queue
889 (struct BusRegistry): add a BusOwner memory pool
890 (bus_registry_new): initialize the BusOwner memory pool
891 (bus_registry_unref): free the BusOwner memory pool
892 (_bus_service_find_owner_link): new internal method for
893 searching the queue for a specific connection
894 (bus_owner_set_flags): new method for adding setting the flags on a
896 (bus_owner_new): new method that creates a BusOwner object from the
897 pool and sets its flags
898 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
899 (bus_registry_ensure): Add the flags parameter
900 (bus_registry_acquire_service): Switch from using raw connections to
901 using the BusOwner struct
902 Add new state machine for dealing with the new set of flags
903 (bus_registry_set_service_context_table, struct OwnershipCancelData,
904 cancel_ownership, free_ownership_cancel_data,
905 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
906 restore_ownership, free_ownership_restore_data,
907 add_restore_ownership_to_transaction): Switch to using BusOwner
908 instead of raw connections
909 (bus_service_add_owner): Add flags parameter
910 Switch to using BusOwner instead of raw connections
911 Add state machine for dealing with the new set of flags
912 (bus_service_swap_owner): Swaps the first and second owners in the
913 queue. Used to make sure proper signals are sent when a service looses
914 or gains primary ownership. We never insert an owner at the top of the
915 queue. Instead we insert it in the second position and then swap.
916 (bus_service_remove_owner): Remove the owner from the queue sending
917 out the NameLost and NameOwnerChanged signals if the we were the
919 (bus_service_get_primary_owners_connection): New method that extracts
920 the connection from the primary owner
921 (bus_service_get_primary_owner): Returns the BusOwner instead of the
923 (bus_service_get_allow_replacement): Changed from the old
924 bus_service_get_prohibit_replacement method. Checks the flags of the
925 primary owner and returns if it can be replaced or not
926 (bus_service_set_prohibit_replacement): removed
927 (bus_service_has_owner): returns TRUE if and owner with
928 the specified connection exists in the queue
930 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
931 method that only compiles if tests are enabled. Allows us to get the
932 unique name of a connection so we can check it against the queue when
933 doing regression tests
935 * bus/activation.c (bus_activation_send_pending_auto_activate),
936 bus/dispatch.c (bus_dispatch),
937 bus/driver.c (bus_driver_handle_get_service_owner,
938 bus_driver_handle_get_connection_unix_user,
939 bus_driver_handle_get_connection_unix_process_id,
940 bus_driver_handle_get_connection_selinux_security_context),
941 bus/signals.c (connection_is_primary_owner):
942 use bus_service_get_primary_owners_connection instead of
943 bus_service_get_primary_owner
945 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
946 _dbus_listen_unix_socket): Calculate the length of the socket
947 path and use that instead of using a fixed length which was
948 causing socket names to contain many trailing Nul bytes.
950 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
951 (dbus_g_method_get_sender): New method for extracting the sender
952 from a DBusGMethodInvocation
953 (dbus_g_method_return_get_reply): changed name to
954 dbus_g_method_get_reply
955 (dbus_g_method_return_send_reply): changed name to
956 dbus_g_method_send reply
958 * doc/dbus-specification.xml: New docs that describe how the new
959 queueing system works and talks about the changes to the how
960 we specify socket names
962 * glib/examples/example-service.c,
963 glib/examples/example-signal-emitter.c,
964 glib/examples/statemachine/statemachine-server.c:
965 Changed the RequestName flags to the new system
967 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
968 regression test suite for testing various states of the new
971 2005-11-15 Robert McQueen <robot101@debian.org>
973 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
974 Taylor to add two methods, dbus_g_method_return_get_reply and
975 dbus_g_method_return_send_reply, to allow you to get the reply
976 message from a DBusGMethodInvocation, append arbitrary stuff to it,
977 and send it. The GLib bindings can't marshal a return value of
978 something like a(s) if the array is empty - ultimately they should be
979 made to heed the signature of the out arguments as the Python bindings
980 now can, but this is a workable interim solution which might have
983 2005-11-15 Robert McQueen <robot101@debian.org>
985 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
986 method to org.freedesktop.DBus to release a bus name or give up
987 waiting in the queue for it.
989 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
990 dbus_bus_release_name method to send the ReleaseName method calls.
991 Add constants for the return values to dbus/dbus-shared.h.
993 * doc/dbus-specification.xml: Document the new ReleaseName method
994 in the specification.
996 * python/dbus_bindings.pyx: Add a low-level python binding for the
999 * python/exceptions.py, python/service.py: Make freeing BusName
1000 objects release the name. Add a NameExistsException, and fix a
1001 bug with creating UnknownMethodException.
1003 * test/python/test-client.py: Add tests for freeing BusName
1004 objects causing names to be released.
1006 2005-11-14 Robert McQueen <robot101@debian.org>
1008 * python/service.py: Include the traceback in the error reply when we
1009 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1011 2005-11-14 David Zeuthen <davidz@redhat.com>
1013 Patch from Timo Hoenig <thoenig@suse.de>.
1015 * bus/bus.c: I've recently investigated why the automatic reload
1016 of configuration files does not work as expected.
1018 Currently, reloading configuration files does only work when
1019 running dbus-daemon with --nodaemon. If we are running as daemon
1020 we're hitting a dnotify bug once we fork the process.
1022 We're initializing the dnotify fds before calling fork(). Once
1023 the child process forked it does still have the fds (and they
1024 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1025 getting SIGIO as changes are made to the configuration files.
1027 The attached patch moves the initialization of the dnotify fds to
1028 process_config_postinit(). This is safe for all current code
1029 paths and solves the dnotify disfunction. If we're running
1030 dbus-daemon as daemon the fds for dnotify are now being
1031 initialized after fork() for the child process.
1033 * configure.in: The current configure.in check for dnotify probes
1034 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1035 match for 'xlinux', too. Additionally I have adapted the configure
1036 option's style to match with the others.
1038 2005-11-14 Robert McQueen <robot101@debian.org>
1040 * python/decorators.py, python/service.py: Add a new argument to the
1041 dbus.service.method decorator called sender_keyword, which if set,
1042 specifies the name of an argument which will be provided the bus
1043 name of the method caller.
1045 * test/python/test-client.py, test/python/test-service.py: Add a
1046 method and test to check the sender_keyword functionality.
1048 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1050 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1051 empty reply so blocking calls don't block forever (Patch from Sjoerd
1052 Simons <sjoerd at luon.net>)
1054 * AUTHORS: Add Robert McQueen for his work on the Python
1055 Bindings and other parts of D-Bus
1057 2005-11-07 Robert McQueen <robot101@debian.org>
1059 * python/decorators.py: Change emit_signal function to use the
1060 signature annotation of the signal when marhsalling the arguments from
1061 the service. Fix a bug where the code checking signature length
1062 against argument length referenced the wrong variable.
1064 * python/introspect_parser.py: Avoid adding the type signature of
1065 signal arguments to any methods which occur after them in the
1066 introspection data (!) by making the parser a little more careful
1067 about its current state.
1069 * python/service.py: Remove debug prints from last commit (again :D).
1071 * test/python/test-client.py, test/python/test-service.py: Add test
1072 signals with signature decorators to test the strict marshalling code
1073 gives errors at the right time. Could do with checking the signals
1074 actually get emitted too, given that the test does nothing with
1075 signals at the moment...
1077 2005-11-07 Robert McQueen <robot101@debian.org>
1079 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1080 instances to stop madness of creating new instances representing
1081 the same bus connection all the time, rendering any tracking of
1082 match rules and bus names quite meaningless. Caught a bug where
1083 the private argument to SessionBus() and friends was being passed
1084 in as use_default_mainloop by mistake. Still some problems with
1085 multiple dbus_binding.Connection instances representing the same
1086 low-level connection (eg when you use both SessionBus() and
1087 StarterBus() in same process), but it's a lot better now than it
1090 * python/dbus_bindings.pyx: Add constants with the return values
1091 for bus_request_name().
1093 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1094 and retrieve the same instances for the same name, so deletion can be
1095 done with refcounting. Also now throws some kind of error if you
1096 don't actually get the name you requested, unlike previously...
1098 * test/python/test-client.py: Add tests for instance caching of buses
1099 and bus name objects.
1101 2005-11-04 Robert McQueen <robot101@debian.org>
1103 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1104 marshalling of boolean values. Add some booleans to the values in
1107 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1108 argument to the dbus.service.method decorator, which allows you to
1109 name arguments to take two callback functions for replying with
1110 return values or an exception.
1112 * test/python/test-client.py, test/python/test-service.py: Add test
1113 case using asynchronous method reply functions, both return values and
1114 errors, and from within both the function itself and from a mainloop
1117 * python/decorators.py, python/service.py: Perform checking that the
1118 number of method/signal arguments matches the number of types in the
1119 signature at class loading time, not when you first introspect the
1122 * python/service.py: Remove debug print left by the last commit.
1124 2005-11-03 Robert McQueen <robot101@debian.org>
1126 * python/service.py: Heavy refactoring of method invocation, with
1127 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1128 in favour of a new _message_cb that uses seperate functions for
1129 looking up the method to call, marshalling the return values, and
1130 sending exceptions as errors, and is easier to follow as a
1131 consequence. Fixes some corner cases about returning things that
1132 don't match your declared out_signature, allows exceptions to define
1133 _dbus_error_name and have it be sent over the bus as the error name,
1134 and paves the way for cool stuff like heeding the message no reply
1135 flag, asynchronous method implementations, informing the method of the
1136 sender, and including backtraces in the error messages.
1138 * test/python/test-client.py: Catch and print exceptions thrown in the
1139 async callback tests, rather than passing them to the low-level
1140 bindings to be ignored in a noisy and frustrating manner.
1142 2005-11-03 Robert McQueen <robot101@debian.org>
1144 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1145 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1146 tweak others to be consistent.
1148 * test/python/test-client.py: Tweak output of testInheritance.
1150 2005-10-29 Robert McQueen <robot101@debian.org>
1152 * python/service.py: Major changes to allow multiple inheritance
1153 from classes that define D-Bus interfaces:
1155 1. Create a new Interface class which is the parent class of
1156 Object, and make the ObjectType metaclass into InterfaceType.
1158 2. Patch written with Rob Taylor to replace use of method_vtable
1159 with code that walks the class's __MRO__ (method resolution order)
1160 to behave like Python does when invoking methods and allow
1161 overriding as you'd expect. Code is quite tricky because
1162 we have to find two methods, the one to invoke which has the
1163 right name and isn't decorated with the /wrong/ interface,
1164 and the one to pick up the signatures from which is decorated
1165 with the right interface.
1167 The same caveats apply as to normal multiple inheritance -
1168 this has undefined behaviour if you try and inherit from two
1169 classes that define a method with the same name but are
1170 decorated with different interfaces. You should decorate
1171 your overriding method with the interface you want.
1173 3. Replace grungy introspection XML generation code in the metaclass
1174 with dictionaries that cope correctly with multiple inheritance
1175 and the overriding of methods. This also uses the signature
1176 decorations to provide correct introspection data, including
1177 the debut appearance of the types of your return values. :D
1179 * test/python/test-client.py, test/python/test-service.py: Add a test
1180 case to try invoking an method that overrides one inherited from a
1181 D-Bus interface class.
1183 2005-10-29 Robert McQueen <robot101@debian.org>
1185 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1186 Add checking for the end of struct character when marshalling a
1187 struct in MessageIter.append_strict.
1189 * python/examples/example-service.py,
1190 python/examples/gconf-proxy-service.py,
1191 python/examples/gconf-proxy-service2.py: Update to use gobject
1192 mainloop directly rather than appearing to depend on gtk.
1194 * python/test/test-client.py, python/test/test-server.py: Remove
1195 obsolete and broken test scripts for old bindings. We have up to date
1196 and working tests in test/python/.
1198 2005-10-29 Robert McQueen <robot101@debian.org>
1200 * python/decorators.py: Add optional arguments to the method and
1201 signal decorators to allow you to specify the signature of arguments
1202 and return values. Preserve the doc strings of signal functions in the
1203 decorated version, for pydoc and friends.
1205 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1206 parse_signature_block function with an iterable dbus.Signature()
1207 type. Fix a bug in MessageIter.append_strict where you could append
1208 anything by claiming it was a string.
1210 * python/service.py: Use the out_signature decoration on methods to
1211 marshal return values, meaning you no longer require dbus.Array()
1212 or dbus.Dictionary() to indicate the type when returning empty
1213 arrays or dictionaries. Fix a bug where exceptions which are defined
1214 in __main__ are not turned into error replies.
1216 * test/python/test-client.py, test/python/test-service.py: Add test
1217 for correct marshalling of return values according to out_signature.
1218 Fix a bug in the async call test where the error_handler is missing a
1221 2005-10-29 Robert McQueen <robot101@debian.org>
1223 * glib/Makefile.am, glib/examples/Makefile.am,
1224 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1225 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1227 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1229 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1230 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1233 2005-10-27 Ross Burton <ross@openedhand.com>
1235 * dbus/dbus-marshal-header.c:
1238 * glib/dbus-gobject.c:
1239 Stop compiler warning.
1241 2005-10-25 Ross Burton <ross@openedhand.com>
1244 * dbus/dbus-server-unix.c:
1245 * dbus/dbus-transport-unix.c:
1246 * glib/dbus-gmain.c:
1247 * glib/dbus-gobject.c:
1248 Add some const keywords.
1250 2005-10-25 Ross Burton <ross@openedhand.com>
1252 * doc/dbus-specification.xml:
1253 Document the NoReply annotation.
1255 * glib/dbus-binding-tool-glib.h:
1256 * glib/dbus-binding-tool-glib.c:
1257 Respect the NoReply annotation.
1259 2005-10-24 Robert McQueen <robot101@debian.org>
1261 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1262 derive from unicode instead of str, and encode/decode UTF-8 when
1263 marshalling/unmarshalling bus messages
1265 * python/introspect_parser.py: encode introspection data as UTF-8
1266 before passing the buffer into libxml2
1268 * test/python/test-client.py: add unicode test strings
1270 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1271 ignore generated python test files
1273 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1275 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1276 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1277 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1279 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1280 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1281 when constructing struct signatures
1283 * python/_dbus.py (Bus): handle private connections using the
1284 private keyword in the constructor. defaults to private=False
1285 (Bus::close): new method to close a connection to the bus
1287 * python/dbus_bindings.pyx (Connection::close): renamed method
1288 was previously called disconnect
1289 (bus_get): now supports getting a private connection
1291 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1292 keyword is set to True. if it is, execute the method without waiting
1294 (ProxyObject::_introspect_execute_queue): new method for executing
1295 all the pending methods that were waiting for the introspect to
1296 finish. this is called when introspect either succeeds or fails
1297 (ProxyObject::_introspect_error_handler): call queued methods
1299 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
1301 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1302 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1304 * python/service.py (Object::_message_cb): handle exceptions correctly
1305 by sending them over the wire to the calling app. This makes sure
1306 the client returns immediately instead of waiting the 15 seconds to
1309 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
1310 Add a test to benchmark how long it takes to introspect a service and
1311 call a method which returns a large element (pretty fast)
1313 * test/python/test-service.py (TestObject::GetComplexArray): new test
1314 method which pushes a lot of data
1316 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1318 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
1319 reclaim memory outside of the loop and use del istead of just setting
1322 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1324 * python/service.py (ObjectType::_reflect_on_signal): Always close
1325 signal tag even when there are no arguments
1327 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1329 * configure.in: Set mono, mono-docs and Qt3 to default
1330 to no instead of auto when building. These bindings do not
1331 have full time maintainers and will not be supported for the
1334 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
1336 patches from Michael Krivoruchko <misha at sun.com>:
1338 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1339 _dbus_connection_message_sent,
1340 _dbus_connection_send_preallocated_unlocked_no_update,
1341 _dbus_connection_pop_message_link_unlocked): handle the case when path
1342 is NULL when calling _dbus_verbose
1344 * configure.in: check for functions getpeerucred and getpeereid
1346 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
1347 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
1348 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
1349 Patch was only tested on Solaris 10 x86 so it might be issues
1350 with other platforms (i.e. BSDs and MacOSX)
1353 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
1355 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
1356 instead of marshal basic so we can handle recursive types in a variant
1358 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1361 * test/glib/test-service-glib.c, test-service-glib.xml
1362 (my_object_echo_variant [EchoVariant],
1363 my_object_process_variant_of_array_of_ints123
1364 [ProcessVariantOfArrayOfInts123]):
1365 Add two test methods
1367 * python/introspect_parser.py: New module for parsing introspect
1370 * python/dbus_bindings.pyx:
1371 (various places): when throwing errors fix to use errormsg instead
1372 of message local variable because Pyrex can get confused with other
1373 message variables (initial patch by Robert McQueen
1374 <robert.mcqueen at collabora.co.uk>)
1375 (MessageIter::parse_signature_block): new method for getting the next
1376 block in a signiture.
1377 (MessageIter::append_strict): new method for appending values strictly
1378 using the passed in signature instead of guessing at the type
1379 (MessageItter:: append_dict, append_struct, append_array): use
1380 signatures to marshal children if the signature is available
1382 * python/exceptions.py (IntrospectionParserException): new exception
1384 * python/proxies.py (ProxyMethod::__call__): Marshal args with
1385 introspected signatures if available, else we fall back to the
1386 old way of doing things.
1387 (ProxyObject::_introspect_reply_handler ): parse introspection data
1389 * python/service.py (ObjectType::_reflect_on_method): Properly
1390 terminate <method> if there are no args in the reflection data
1392 * test/python/test-client.py: add tests for talking with the GLib
1393 test server. This gives us better coverage for introspection since
1394 python to python will always generate arguments as variants. It also
1395 allows us to test the robustness of the GLib bindings and interlanguage
1399 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
1401 * bus/driver.c (bus_driver_handle_introspect): Add signals
1402 to the introspect data. (patch from Daniel P. Berrange
1403 <dan at berrange.com>)
1405 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1407 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1408 _dbus_connection_run_builtin_filters): Changed these to
1409 be unlock_no_update functions and call
1410 _dbus_connection_send_unlocked_no_update instead of
1411 dbus_connection_send to avoid locking errors.
1413 * doc/TODO: Removed the make Ping test TODO
1415 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1417 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1418 We now copy the message from a DBusError and then free
1419 the error object befor throwing the error
1421 * glib/dbus-glib-tool.c: removed extra comma at the end of the
1422 DBusBindingOutputMode enum which was causing a warning.
1423 #include <time.h> so using time_t is explicitly defined
1425 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1427 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1429 (internal_bus_get): new method that take over the heavy lifting
1430 of dbus_bus_get and adds the ability to get a private connection
1432 (dbus_bus_get): wrapper to internal_bus_get that provides the same
1433 interface as in previous versions
1434 (dbus_bus_get_private): new method that is a wrapper to
1435 internal_bus_get to get a private connection to the bus
1438 (dbus_bus_get_private): add as a public libdbus interface
1440 - dbus-1.pc.in: output system_bus_default_address and
1441 sysconfdir variables so apps can use them when compiling
1443 2005-09-23 Harald Fernengel <harry@kdevelop.org>
1444 * dbus/qt: New Qt bindings
1446 2005-09-12 Waldo Bastian <bastian@kde.org>
1448 * dbus/dbus-marshal-validate.c,
1449 doc/dbus-specification.xml, test/Makefile.am,
1450 test/test-names.c: allow hyphens in bus names.
1452 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1454 * test/data/auth/fallback.auth-script: we don't
1455 retry the EXTERNAL method when we know its going
1458 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1460 * dbus/dbus-connection-internal.h: rename
1461 (add|remove|toggle)_(watch|timeout) to unlocked()
1463 * dbus/dbus-connection.c: ditto.
1465 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1466 Update some callers for the renaming.
1468 2005-09-10 Mark McLoughlin <mark@skynet.ie>
1470 * dbus/dbus-auth.c: (record_mechanisms): don't
1471 retry the first auth mechanism because we know
1472 we're just going to get rejected again.
1474 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1475 Fix thinko ... and what a nasty little bugger to
1476 track down you were ...
1478 * dbus/dbus-connection.c:
1479 (_dbus_connection_add_watch),
1480 (_dbus_connection_remove_watch): add note about
1481 these needing the connection to be locked.
1482 (_dbus_connection_get_dispatch_status_unlocked):
1483 set status to DATA_REMAINS when we queue the
1484 disconnected message.
1487 (bus_dispatch): fix warning.
1488 (check_existent_service_no_auto_start):
1489 Expect ChildSignaled error too.
1490 (check_existent_hello_from_self): fix another
1493 2005-09-08 Joe Shaw <joeshaw@novell.com>
1495 Patches from James Willcox <snorp@snorp.net>
1497 * mono/Makefile.am: Add Int16.cs and UInt16.cs
1499 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1500 support array "out" parameters.
1502 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1503 for 16-bit int support.
1505 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
1509 * Patch from Steve Grubb:
1510 - bus/activation.c (bus_activation_service_reload_test): clean up
1512 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
1513 - dbus/dbus-message-factory.c (generate_special): fix a couple of
1514 buffer overflows in the test suite. This is non critical because
1515 it can not be exploited and this code is only run when doing a
1518 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1519 - configure.in: Don't check and link against kdecore, only qt headers
1520 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1521 - gcj/org/freedesktop/dbus/Makefile.am:
1522 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1523 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1524 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1525 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1526 - tools/Makefile.am: Add platform extentions to binaries
1527 (i.e. .exe on windows)
1530 - Make it so if no suitable version of python is found we only
1531 disable building python instead of exiting the configure script
1532 - Require version 2.4 of glib for glib bindings
1533 - Up version to 0.50
1535 * python/__init__.py: Sync version with libdbus to (0,50,0)
1537 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1539 * dbus/dbus-object-tree.c (find_subtree_recurse):
1540 a couple of optimizations (bug #710):
1541 - do a binary search in the tree
1542 - insert a new child at the right place directly, no need for
1544 - do the "double alloc" thing when allocating children
1546 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
1548 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1550 * python/dbus_bindings.pyx: Memory management foo
1551 (global): remove hacky _user_data_references global list
1552 (GIL_safe_cunregister_function_handler): userdata now stuffed into
1553 tuples. Unref user_data
1554 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1555 (Connection::__del__): Remove and replace with __dealloc__ method
1556 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
1557 to keep tuple from being deallocated instead of the global var hack
1558 (Connection::register_object_path): Stuff user_data into a tuple.
1559 Use Py_INCREF to keep tuple from being deallocated instead of the
1561 (Connection::register_fallback): Stuff user_data into a tuple.
1562 Use Py_INCREF to keep tuple from being deallocated instead of the
1564 (GIL_safe_pending_call_notification): Don't unref the message
1565 because it gets unreffed when going out of scope. Py_XDECREF
1567 (PendingCall::__del__): Remove and replace with __dealloc__ method
1568 (PendingCall::set_notify): ref the pending call because we will
1569 need it to stick around for when the notify callback gets called
1570 (Message::__del__): Remove and replace with __dealloc__ method
1572 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
1573 gthreads_init to match up with the dbus call
1575 * python/glib.py (init_threads): Changed to threads_init to match
1576 up with gobject.threads_init(). init_threads is kept for backwards
1577 compat but will most likely be deprecated in the future
1579 * test/python/test-client.py:
1580 - revamp to use Python's unittest functionality
1581 - add async call tests
1582 - setup threads in glib and dbus so we make sure locks are working
1584 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1586 * python/dbus_bindings.pyx
1587 (_pending_call_notification, cunregister_function_handler,
1588 cmessage_function_handler): All callback functions have been rearranged
1589 to workaround a bug in Pyrex when working with the GIL which is Python's
1590 global lock when dealing with threads. They have been split into
1591 a wrapper function (which assumes the name of the old function) and
1592 a _GIL_safe_<function name> function which contains the functionality
1593 of the old function. This ensures that Pyrex does not write code
1594 the lock is released.
1597 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1599 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1600 GIL global lock when calling back into Python
1602 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
1606 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1608 * bus/policy.c (bus_policy_allow_user): change default "user is
1609 allowed" to be "user has same uid as the bus itself"; any
1610 allow/deny rules will override.
1612 * bus/session.conf.in: don't allow all users, since now by default
1613 the user that ran the bus can connect.
1615 2005-08-26 Colin Walters <walters@verbum.org>
1617 * tools/dbus-print-message.c (print_message): Flush stdout
1618 after printing a message, so that redirecting to a file, then
1619 hitting Ctrl-C works.
1621 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
1623 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1624 (EmptyMessage): new class that subclasses Message. This is a workaround
1625 to a Pyrex bug that fails to call __del__ when the Message object goes out
1626 of scope. For some reason subclassing Message fixes this bug
1627 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1628 - s/Message(_create=0)/EmptyMessage everywhere else
1630 * test/python/test-{server|client}.py: add the python/.libs directory
1631 to the lookup path so dbus_bindings and dbus_glib_bindings don't
1632 get picked up from the system
1634 2005-08-25 Colin Walters <walters@verbum.org>
1636 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1637 to Ryan Lortie for the suggestion.
1639 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1641 * test/python: Add python regression test
1643 * configure.in: Add test/python/Makefile
1645 * test/Makefile.am: Add the python directory to SUBDIRS
1647 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1652 (Interface::connect_to_signal): propigate keywords for match on args
1653 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1655 * python/proxies.py (ProxyObject::connect_to_signal):
1656 propigate keywords for match on args
1658 * Makefile.am: point everything to pyexecdir since python borks
1661 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1665 2005-08-23 Colin Walters <walters@verbum.org>
1667 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1669 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1671 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1672 to fix some wranings. We now use dbus_bindings.DBusConnection instead
1673 of defining DBusConnection ourselves.
1675 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
1677 * python/dbus.pth: New path file to fix up problems when installing
1678 c libraries to lib64 and python files to lib.
1680 * python/Makefile.am: install dbus.pth in the correct spot
1682 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
1683 * ChangeLog: clean up my last entry a bit
1685 * doc/introspect.xsl: New stylesheet for converting introspection data
1686 into browser renderable xhtml. Contributed by Lennart Poettering.
1688 * doc/introspect.dtd: Fixups in the introspect format from Lennart
1691 * doc/dbus-tutorial.xml:
1692 - Add Colin Walter to the Authors section for authoring the GLib
1694 - Add descriptions of the new signature and type functionality
1695 in the Python complex type mapping section
1696 - Add a sidenote on the new args matching functionality in
1698 - Fixed up some of the examples to use the gobject.MainLoop
1702 (Bus::_create_args_dict): New. Converts a hash of arg matches
1703 to a more useable format
1704 (Bus::add_signal_receiver): add a **keywords parameter for catching
1705 arg match parameters
1706 (Bus::remove_signal_receiver): add a **keywords parameter for catching
1707 arg match parameters
1709 * python/matchrules.py:
1710 (MatchTree::exec_matches): Check for arg matches
1711 (SignalMatchRule::add_args_match): New method
1712 (SignalMatchRule::execute): Added args_list parameter as an optimization
1713 so we don't have to marshal the args more than once
1714 (SignalMatchRule::match_args_from_list): New method that checks to see
1715 if the rule's arg matches match an argument list. Only arguments
1716 set in the rule are checked.
1717 (SignalMatchRule::match_args_from_rule): New method that checks to see
1718 if the rule's arg matches match another rule's. All args have to match
1719 in order for this method to return true. If either rule has more args
1720 then it is not a match.
1721 (SignalMatchRule::is_match): Add args match
1722 (SignalMatchRule::repr): Add args to the final output if they exist
1724 2005-08-17 Ross Burton <ross@burtonini.com>
1726 * glib/dbus-gproxy.c:
1727 (dbus_g_proxy_call_no_reply): unref the message once sent.
1728 (dbus_g_proxy_call): protect against NULL proxy.
1730 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
1732 * python/__init__.py: Version updated (0, 43, 0)
1734 * python/dbus_bindings.pyx:
1735 - Fixed type objects to have self passed into __init__
1736 - Added the Variant type
1737 - Add the ability to specify types or signatures for Array, Variant
1739 (Connection::send_with_reply_handlers): return a PendingCall object
1740 (_pending_call_notification): handle the case when an error is returned
1741 without an error message in the body
1742 (MessageIter::get_boolean): return True or False instead of an integer
1743 (MessageIter::python_value_to_dbus_sig): add direct checking of types
1744 and add checks for objects with embeded signatures or types (Array,
1745 Variant and Dictionary)
1746 (MessageIter::append_byte): handle case when the value is a dbus.Byte
1747 (MessageIter::append_dict): handle embeded types or signatures
1748 (MessageIter::append_array): handle embeded types or signatures
1749 (MessageIter::append_variant): new method
1751 * python/proxies.py:
1752 (DeferedMethod): New. Dummy executable object used when queuing calls
1753 blocking on introspection data
1754 (ProxyMethod::__call__): add the timeout keyword for specifying longer
1755 or shorter timeouts for method calls
1756 (ProxyObject): Add first pass at an introspection state machine
1757 (ProxyObject::__init__): Add introspect keyword for turing off an on
1759 (ProxyObject::_Introspect): Internal Introspect call that bypasses
1760 the usual mechanisms for sending messages. This is to avoid a deadlock
1761 where the Intospect call would be queued waiting for the Introspect
1763 (ProxyObject::_introspect_reply_handler): New. This method is called
1764 when introspection returns with no error
1765 (ProxyObject::_introspect_error_handler): New. This method is called
1766 when introspection encounters an error
1767 (ProxyObject::__getattr__): Code to handle different introspection
1768 states. Queue async calls or block blocking calls if we are
1769 introspecting. Pass through as normal if we are not or are done with
1772 * python/service.py: Import signal and method from decorators.py
1774 * python/types.py: Add Variant type
1776 2005-08-16 Colin Walters <walters@verbum.org>
1778 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1779 DBusError message is NULL.
1781 2005-08-09 Havoc Pennington <hp@redhat.com>
1783 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1784 malloc'd copy of the name parameter
1786 2005-08-09 Havoc Pennington <hp@redhat.com>
1788 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1789 warning if the reply serial is set to 0
1791 2005-08-04 Colin Walters <walters@verbum.org>
1793 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1794 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1795 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1796 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1797 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1798 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1799 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1800 * glib/dbus-gvalue.h (dbus_g_value_types_init)
1801 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1802 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1804 Prefix name with _ to ensure they're not exported. All callers
1807 * glib/dbus-gvalue.c (typecode_to_gtype)
1808 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1809 (signature_iter_to_g_type_dict)
1810 (signature_iter_to_g_type_array)
1811 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1812 (dbus_gtypes_from_arg_signature):
1813 Move to dbus-gsignature.c.
1815 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1816 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1817 (dbus_binding_tool_output_glib_client): Ditto.
1819 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1820 and dbus-gsignature.h
1822 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1825 2005-08-03 Colin Walters <walters@verbum.org>
1827 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1828 catch any incompatible changes accidentally made.
1830 2005-08-03 Havoc Pennington <hp@redhat.com>
1832 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1833 typo, from Julien Puydt
1835 * bus/connection.c (bus_connection_disconnected): we were always
1836 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1838 2005-08-01 Colin Walters <walters@verbum.org>
1840 Patch from Joe Markus Clarke:
1842 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1845 2005-08-01 Colin Walters <walters@verbum.org>
1847 Patch from Joe Markus Clarke:
1849 * tools/dbus-send.c (main):
1851 Don't use C99 style initializers (bug #3933).
1853 2005-08-01 Colin Walters <walters@verbum.org>
1855 Patch from Joe Markus Clarke:
1857 * glib/dbus-gvalue.c (dbus_g_value_types_init):
1858 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
1859 * glib/dbus-gobject.c (write_interface):
1861 Don't use C99 style initializers (bug #3933).
1863 2005-07-31 Havoc Pennington <hp@redhat.com>
1865 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1866 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1868 2005-07-30 Havoc Pennington <hp@redhat.com>
1870 * fix a bunch of Doxygen warnings and mistakes
1872 2005-07-30 Havoc Pennington <hp@redhat.com>
1874 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1875 DBUS_BUILD_TESTS since it's now used in production code
1877 2005-07-29 Havoc Pennington <hp@redhat.com>
1879 * test/glib/test-profile.c (write_junk): initialize the junk
1880 buffer so valgrind doesn't have a breakdown
1882 2005-07-29 Havoc Pennington <hp@redhat.com>
1884 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1885 (match_rule_matches): remove unused arg
1886 (test_matching): add tests for match_rule_matches()
1888 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1889 do arg0='foo' arg5='bar' in the match rules
1890 (match_rule_matches): don't match if the arg0='foo' doesn't match.
1892 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1894 2005-07-29 Ross Burton <ross@openedhand.com>
1896 * dbus/dbus-connection.c:
1897 Don't create a DBusCondVar which is never used.
1899 2005-07-27 Ross Burton <ross@openedhand.com>
1901 * dbus/dbus-message.c:
1902 Reduce the size of the maximum cached message to 10K.
1904 2005-07-25 Ross Burton <ross@openedhand.com>
1906 * glib/dbus-gproxy.c:
1907 Remove matches when all proxies are unregistered.
1909 2005-07-24 Colin Walters <walters@verbum.org>
1911 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1912 typedata; recursive arrays won't have it.
1914 * test/glib/test-dbus-glib.c:
1915 * test/glib/test-service-glib.c:
1916 * test/glib/test-service-glib.xml: Add recursive arrays tests.
1918 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
1920 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1921 proxies.py, service.py: Cleanup of code after running it through the
1922 pyflakes code checker mostly dealing with undefined names.
1923 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1925 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
1927 * NEWS: Update to 0.35.2
1929 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
1931 * python/_dbus.py: Remove import of the dbus.services
1932 module as it no longer exists (patch from Dimitur Kirov)
1934 * python/service.py (Object::__init__): Fixed typo
1935 s/name/bus_name (patch from Dimitur Kirov)
1937 * python/examples/example-signal-emitter.py: import dbus.glib
1938 to get the main loop and use glib mainloop instead of gtk so
1939 X doesn't have to be running.
1941 * python/examples/example-signal-recipient.py: import dbus.glib
1942 to get the main loop and use glib mainloop instead of gtk so
1943 X doesn't have to be running. Import the decorators module
1946 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
1947 didn't pick up on but are needed to build
1949 * configure.in: upped version to 0.35.2
1951 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1952 added Colin Walters' SELinux API rename patch from head
1953 s/unix sercurity context/selinux security context/
1955 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
1957 * python/Makefile.am: dbus_binding.pxd.in should be included
1958 in EXTRA_DIST not dbus_binding.pxd
1959 fix up $(srcdir) hopefully for the last time
1961 * NEWS: Update to 0.35.1
1963 2005-07-16 Colin Walters <walters@verbum.org>
1965 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1966 from bus_driver_handle_get_connection_unix_security_context. Update for
1968 (message_handlers): Update for renames.
1970 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1971 _dbus_string_init failure correctly.
1972 (bus_selinux_append_context): Convert SID to context. Append it
1974 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1977 * bus/selinux.h: Update prototype.
1979 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1980 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1982 2005-07-15 Colin Walters <walters@verbum.org>
1984 * doc/TODO: Add note about convenience wrappers.
1986 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1988 * NEWS: Update to 0.35
1990 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1992 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1993 so distcheck doesn't fail
1995 * glib/examples/Makefile.am: Add example-service.xml and
1996 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1998 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1999 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2001 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2002 compiler looks in the right places during distcheck
2004 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2006 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2009 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2011 * python/examples/example-service.py,
2012 python/examples/example-signal-emitter.py: Fixed up examples
2015 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2017 * python/__init__.py: Upped to version (0,42,0) because of
2020 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2022 * ChangeLog: fix date in last entry
2024 * configure.in, bus/system.conf.in: add the ability to configure
2025 the system bus user at compiletime with the --with-dbus-user flag
2026 (patch from Kristof Vansant)
2028 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2030 * bus/dispatch.c, test/test-service.c: Add testcase
2031 for sending messages to oneself (TODO item).
2033 * python/service.py (class Object): Swap ordering of bus_name
2034 and object_path parameters to better support inheritance.
2036 * doc/dbus-tutorial.xml: change Python docs to reflect change
2037 in parameter ordering and fix the inheritance section.
2039 * doc/TODO: remove sending message to oneself TODO item
2041 2005-07-15 Ross Burton <ross@openedhand.com>
2043 * glib/dbus-gproxy.c:
2044 Fix a leak when calling methods via the proxy.
2046 2005-07-15 Colin Walters <walters@verbum.org>
2048 * bus/selinux.c (bus_selinux_append_context): Wrap in
2051 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2053 * python/_dbus.py (Bus::remove_signal_receiver):
2054 don't add a callback to the match if none has been passed in
2056 * python/matchrules.py (SignalMatchTree::remove): if the rule
2057 being matched does not have a callback treat it as a wildcard
2060 * doc/dbus-tutorial.xml: Add Python tutorial
2062 2005-07-14 Colin Walters <walters@verbum.org>
2065 (bus_driver_handle_get_connection_unix_security_context): New function.
2066 (message_handlers): Add.
2068 * bus/selinux.c (bus_selinux_append_context): New function; appends
2069 security context to message.
2071 * bus/selinux.h: Prototype.
2073 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2075 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2077 * bus/activation.c: clean up all tabs to be 8 spaces
2078 (bus_activation_activate_service): make sure we clean up
2081 * bus/dispatch.c: clean up all tabs to be 8 spaces
2082 (check_shell_fail_service_auto_start): New function
2083 tests to make sure we get fail properly when trying to auto start a service
2084 with a faulty command line
2085 (check_shell_service_success_auto_start): New function tests to make sure
2086 auto started services get the arguments on the command line
2088 * test/test-shell-service.c: Added service for testing auto-starting with
2089 command line arguments
2091 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2092 test/data/valid-service-files/debug-shell-echo-success.service.in:
2093 Added service files for testing auto-starting with command line arguments
2095 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2097 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2099 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2101 * dbus/Makefile.am: added new files to build.
2103 * bus/activation.c (bus_activation_activate_service): support
2104 activation commands with parameters.
2106 * test/shell-test.c: added test program for the shell parsing
2109 2005-07-13 David Zeuthen <davidz@redhat.com>
2111 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2112 64 bit signed and unsigned parameters
2114 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2116 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2118 * python/service.py (class Name): renamed BusName to make it clearer
2119 what the object is for (a name on the bus)
2121 * python/examples/example-service.py,
2122 python/examples/example-signal-emitter.py: change the Name object to
2125 2005-07-12 Colin Walters <walters@verbum.org>
2127 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2129 * tools/dbus-launch.c: Include sys/select.h.
2131 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2132 * python/dbus_bindings.pyx.in: removed
2134 * python/dbus_bindings.pyx: Added.
2135 - Fixed some memleaks (patch from
2136 Sean Meiners <sean.meiners@linspireinc.com>)
2137 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2138 own pxd file (Pyrex definition)
2139 - Broke out glib dependancies into its own pyx module
2141 * python/dbus_bindings.pdx: Added.
2142 - Defines C class Connection for exporting to other modules
2144 * python/dbus_glib_bindings.pyx: Added.
2145 - New module to handle lowlevel dbus-glib mainloop integration
2147 * python/glib.py: Added.
2148 - Registers the glib mainloop when you import this module
2150 * python/services.py: Removed (renamed to service.py)
2152 * python/service.py: Added.
2153 - (class Server): renamed Name
2155 * python/__init__.py: Bump ro version (0,41,0)
2156 -don't import the decorators or service module
2157 by default. These now reside in the dbus.service namespace
2159 * python/_dbus.py (Bus::__init__): Add code run the main loop
2160 setup function on creation
2162 * python/examples/example-service.py,
2163 python/examples/example-signal-emitter.py: update examples
2165 * python/examples/gconf-proxy-service.py,
2166 python/examples/gconf-proxy-service2.py: TODO fix these up
2168 * doc/TODO: Addition
2169 - Added a Python Bindings 1.0 section
2170 - added "Add match on args or match on details to match rules"
2173 2005-07-12 Colin Walters <walters@verbum.org>
2175 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2176 (statemachine-glue.h):
2177 * glib/examples/Makefile.am (example-service-glue.h)
2178 (example-signal-emitter-glue.h):
2179 * glib/Makefile.am (dbus-glib-error-switch.h):
2180 Add libtool --mode=execute so we use the built library instead
2181 of any installed one.
2183 2005-07-11 Colin Walters <walters@verbum.org>
2185 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2186 (dbus_g_value_types_init): Remove assertion.
2187 (dbus_g_value_get_g_type, dbus_g_value_open)
2188 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2189 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2190 functions related to DBusGValue. Now we marshal/demarshal
2191 structures as GValueArray.
2192 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2194 (signature_iter_to_g_type_array): Don't call
2195 signature_iter_to_g_type_struct.
2196 (signature_iter_to_g_type_struct): Delete.
2197 (dbus_gvalue_to_signature): Delete.
2198 (dbus_gvalue_to_signature): New function with same name as other
2199 one; we can convert structures to signatures.
2200 (demarshal_valuearray): New function.
2201 (get_type_demarshaller): Use it.
2202 (demarshal_recurse): Delete.
2203 (marshal_proxy): New function.
2204 (marshal_map): Warn if we can't determine signature from type.
2205 (marshal_collection_ptrarray): Ditto.
2206 (marshal_collection_array): Ditto.
2207 (get_type_marshaller): Use marshal_valuearray.
2208 (marshal_recurse): Delete.
2209 (_dbus_gvalue_test): Add some tests.
2211 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2212 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2213 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2214 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2215 (dbus_g_value_free): Remove prototypes.
2217 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2220 * glib/examples/example-service.c:
2221 * glib/examples/example-client.c: Implement GetTuple.
2223 * test/glib/test-dbus-glib.c:
2224 * test/glib/test-service-glib.c:
2225 * test/glib/test-service-glib.xml: Add structure tests.
2227 2005-07-10 Colin Walters <walters@verbum.org>
2229 * doc/TODO: Knock off some GLib items with this patch.
2231 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2232 (_dbus_gvalue_signals_error): New functions.
2234 * glib/dbus-gvalue-utils.h: Prototype them.
2236 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2237 and change to not output const/retval flags for input args. All
2239 (invoke_object_method): Refactor to handle return values. Add
2240 some more comments in various places. Remove debug g_print.
2242 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2244 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2246 (compute_gsignature): New function; refactored from code from
2247 compute_marshaller and compute_marshaller_name. Enhance to
2248 handle return values and async ops more cleanly. Update for
2249 async ops returning NONE instead of BOOLEAN.
2250 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2251 and output appropriate string.
2252 (generate_glue): Handle return value annotation. Also don't dump
2253 constness flag for input arguments.
2255 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2256 files shared between installed library and utilities.
2257 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2258 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2259 binding tool can access gtype utility functions.
2261 * test/glib/test-service-glib.c:
2262 * test/glib/test-service-glib.xml:
2263 * test/glib/test-dbus-glib.c: Add some tests for return values.
2265 2005-07-09 Colin Walters <walters@verbum.org>
2267 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2268 argument if available, not method.
2270 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2271 (invoke_object_method): First, remove some redundant
2272 GValues (object_value, error_value) in favor of working on
2273 array directly. Second, rework constness to be less buggy.
2274 Now we iterate directly over the argument metadata instead
2275 of parallel iterating over output signature and metadata.
2277 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2279 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2280 annotation on input args.
2282 2005-07-09 Colin Walters <walters@verbum.org>
2284 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2287 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2290 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2291 (method_dir_signature_from_object_info): Handle arg_iterate change.
2292 (write_interface): Ditto.
2293 (lookup_object_info): Don't barf if format_version is > 0.
2294 (invoke_object_method): Handle arg constness.
2296 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2297 (arg_info_new): Create.
2298 (arg_info_unref): Destroy.
2299 (arg_info_get_annotations, arg_info_get_annotation)
2300 (arg_info_add_annotation): New functions.
2302 * glib/dbus-gidl.h: Prototype them.
2304 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2305 args, disallow them in properties.
2306 (parse_annotation): Handle arg annotations.
2308 * test/glib/test-service-glib.xml:
2309 * test/glib/test-service-glib.c: Update to make some methods
2312 2005-07-08 Colin Walters <walters@verbum.org>
2314 * test/glib/test-service-glib.xml:
2315 * test/glib/test-service-glib.c:
2316 * test/glib/test-dbus-glib.c: Test a{sv}.
2318 * glib/examples/statemachine/statemachine.c:
2319 * glib/examples/statemachine/statemachine-server.c:
2320 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2321 add progress bar, etc.
2323 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2324 needed anymore due to generic array/map marshalling.
2325 (dbus_g_value_types_init): Don't register basic arrays or the
2327 (dbus_gtype_from_signature_iter): Don't try to recurse into
2329 (dbus_gtype_to_signature): Check collection/map before type
2331 (demarshal_garray_basic): Renamed to demarshal_collection_array.
2332 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2333 generic map creation/append functions instead of hash table
2335 (get_type_demarshaller): Handle maps.
2336 (demarshal_collection): Dispatch on collection type to either
2337 demarshal_collection_ptrarray or demarshal_collection_array.
2338 (get_type_marshaller): Handle maps.
2339 (marshal_collection): Dispatch collection type to either
2340 marshal_collection_ptrarray or marshal_collection_array.
2341 (_dbus_gvalue_test): New test.
2343 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2344 (hash_free_from_gtype): Use it to free GValues.
2345 (hashtable_append): New function.
2346 (ptrarray_append): Fix prototype.
2347 (slist_append): Ditto.
2348 (_dbus_gvalue_utils_test): Extend tests.
2350 * glib/dbus-gtype-specialized.c
2351 (dbus_g_type_specialized_init_append): Renamed from
2352 dbus_g_type_specialized_collection_init_append. Remove const from
2353 value, since we steal it.
2354 (dbus_g_type_specialized_map_append): New function.
2356 * glib/dbus-gtype-specialized.h: Update prototypes.
2357 Add DBusGTypeSpecializedMapAppendFunc.
2359 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2362 * glib/dbus-gtest.h: Prototype it.
2364 2005-07-08 Ross Burton <ross@openedhand.com>
2367 Add DBysGAsyncData for the async bindings.
2369 * glib/dbus-binding-tool-glib.c:
2370 Re-enable the async bindings.
2372 * test/glib/test-dbus-glib.c:
2373 Add a test for the generated async bindings.
2375 2005-07-08 Colin Walters <walters@verbum.org>
2377 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2380 2005-07-08 Colin Walters <walters@verbum.org>
2382 * tools/Makefile.am: Kill of print-introspect in favor of using
2383 dbus-send --print-reply=literal.
2385 * test/glib/test-service-glib.xml:
2386 * test/glib/test-service-glib.c (my_object_get_objs): New test
2389 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2390 (main): Test GetObjs.
2392 * glib/examples/statemachine/Makefile.am:
2393 * glib/examples/statemachine/sm-marshal.list:
2394 * glib/examples/statemachine/statemachine-client.c:
2395 * glib/examples/statemachine/statemachine-server.c:
2396 * glib/examples/statemachine/statemachine-server.xml:
2397 * glib/examples/statemachine/statemachine.c:
2398 * glib/examples/statemachine/statemachine.h:
2399 * glib/examples/statemachine/statemachine.xml:
2403 * glib/examples/example-service.c (main): Move invocation
2404 of dbus_g_object_type_install_info earlier, to emphasize it
2405 should only be done once.
2407 * glib/examples/example-signal-emitter.c (main): Ditto.
2409 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2411 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2412 (dbus_gvalue_marshal): Update prototypes.
2414 * glib/dbus-gvalue.c: Update all marshalling functions to take
2415 const GValue instead of GValue.
2416 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2418 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2420 (dbus_gtype_to_signature): Handle generic collecitons and maps.
2421 Return a newly-allocated string.
2422 (demarshal_proxy, demarshal_object_path, demarshal_object)
2423 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2424 we get the wrong types from message.
2425 (get_type_demarshaller): New function, extracted from
2426 dbus_gvalue_demarshal.
2427 (demarshal_collection): New function, demarshals generic
2429 (dbus_gvalue_demarshal): Just invoke result of
2430 get_type_demarshaller. Throw error if we don't have one.
2431 (marshal_garray_basic): Abort on OOM.
2432 (get_type_marshaller): New function, extracted from
2433 dbus_gvalue_marshal.
2434 (collection_marshal_iterator, marshal_collection): New functions;
2435 implements generic marshalling for an iteratable specialized
2437 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2439 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2441 (ptrarray_value_from_gvalue): Ditto.
2442 (ptrarray_append, ptrarray_free): New functions.
2443 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
2444 (slist_append, slist_end_append, slist_free): New functions.
2445 (dbus_g_type_specialized_builtins_init): Add append fuctions
2446 for GPtrArray and GSList. Register GSList.
2447 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2449 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2451 (dbus_g_type_specialized_collection_init_append)
2452 (dbus_g_type_specialized_collection_append)
2453 (dbus_g_type_specialized_collection_end_append): Prototype.
2454 (DBusGTypeSpecializedCollectionVtable): Add append_func and
2457 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
2458 (dbus_g_type_specialized_collection_append)
2459 (dbus_g_type_specialized_collection_end_append): New functions.
2460 (dbus_g_type_map_value_iterate): Take const GValue.
2461 (dbus_g_type_collection_value_iterate): Ditto.
2463 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2464 _dbus_gvalue_utils_test.
2466 * glib/dbus-gtest.h: Prototype it.
2468 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2469 using uninitialized owner_list.
2470 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2472 (dbus_g_proxy_end_call_internal): Update to use error set
2473 from dbus_gvalue_demarshal instead of setting it here.
2474 (dbus_g_proxy_begin_call): Move return_if_fail here.
2476 * glib/dbus-gobject.c (write_interface): Update for
2477 dbus_gtype_to_signature returning new string.
2479 * configure.in: Add glib/examples/statemachine.
2481 2005-07-08 Joe Shaw <joeshaw@novell.com>
2483 * configure.in: Add a configure option, --with-console-auth-dir
2485 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2486 new setting. Patch from Kay Sievers.
2488 2005-07-06 Colin Walters <walters@verbum.org>
2490 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2491 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2492 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2493 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2494 Delete in favor of dbus_g_proxy_begin_call and
2495 dbus_g_proxy_cancel_call.
2496 (DBusGProxyCall, DBusGProxyCallNotify): New.
2497 (dbus_g_proxy_begin_call): Change prototype to take callback, user
2498 data, and destroy function. This replaces
2499 dbus_g_pending_call_set_notify.
2500 (dbus_g_proxy_cancel_call): Prototype.
2501 (DBusGAsyncData): Delete, shouldn't be needed anymore.
2503 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2505 (struct _DBusGProxyManager): Add bus_proxy member, which is an
2506 internal proxy for calls to the bus. Remove
2507 pending_nameowner_calls, now the internal proxy keeps track.
2508 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2509 pending_nameowner_calls.
2510 (got_name_owner_cb): Update prototype, and use
2511 dbus_g_proxy_end_call.
2512 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2513 (dbus_g_proxy_manager_register): Delete directly libdbus code in
2514 favor of using internal proxy.
2515 (dbus_g_proxy_manager_unregister): Update to use
2516 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2517 (dbus_g_proxy_init): Initialize pending calls map.
2518 (dbus_g_proxy_constructor): New.
2519 (dbus_g_proxy_class_init): Add get/set property functions,
2520 constructor, and add NAME, PATH, and INTERFACE properties.
2521 (cancel_pending_call): New function.
2522 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2524 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2525 (GPendingNotifyClosure): New structure.
2526 (d_pending_call_notify, d_pending_call_free): Moved here from
2528 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2530 (manager_begin_bus_call): New internal function for talking to
2532 (dbus_g_proxy_new): Construct object using GObjet properties.
2533 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2534 Create closure of same, and insert call into map of pending calls.
2535 (dbus_g_proxy_end_call_internal): Take call id instead of pending
2536 call. Look up pending call in current set. Remove it when we've
2538 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2539 (dbus_g_proxy_begin_call): Change API to take callback, user data,
2540 and destroy function directly.
2541 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2542 (dbus_g_proxy_call): Invoke with NULL callback.
2543 (dbus_g_proxy_cancel_call): New function, replaces
2544 dbus_g_pending_call_cancel.
2546 * glib/dbus-gparser.c (validate_signature): Fix call to
2549 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2550 New quark for attaching metadata to GType.
2551 (info_hash): Delete.
2552 (lookup_object_info): Look up using quark.
2553 (dbus_g_object_type_install_info): Check that a type is classed,
2554 not that it's an object. Also just install type data using quark
2555 instead of using global hash.
2557 * glib/dbus-glib.c (dbus_g_pending_call_ref)
2558 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2559 (GPendingNotifyClosure): Delete.
2560 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2561 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2563 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2564 client method generation until we can fix it...
2566 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2567 (load_from_service_thread_func): Ditto.
2569 * tools/dbus-names-model.c (struct NamesModel): Hold
2571 (have_names_notify): Update prototype, use
2572 dbus_g_proxy_cancel_call.
2573 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2575 * tools/dbus-monitor.c (filter_func): Update for print_message
2578 * test/glib/test-dbus-glib.c: Add more tests for async
2579 invocations. Update many begin_call/end_call pairs to just use
2582 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
2583 allows us to dump print-introspect.c.
2585 * tools/dbus-print-message.h (print_message): Add literal argument
2586 to print_message which is intended to allow printing arguments without
2587 metadata like "string=".
2589 * tools/dbus-print-message.c (print_iter): Add literal argument.
2590 (print_message): Allow printing string messages literally.
2592 2005-07-05 Colin Walters <walters@verbum.org>
2594 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2595 Remove value refcount leak, original patch from Jorn Baayen
2596 <jorn@openedhand.com>. Also remove useless extra value in favor
2597 of prepending to value array directly.
2599 2005-07-02 Colin Walters <walters@verbum.org>
2601 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2603 2005-07-01 Colin Walters <walters@verbum.org>
2605 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2607 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2608 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2609 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2610 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2612 2005-06-30 Colin Walters <walters@verbum.org>
2614 * test/glib/test-dbus-glib.c:
2615 * test/glib/test-service-glib.c:
2616 * test/glib/test-service-glib.xml: Update tests for new error
2617 setting bits, also add async tests (patch from Ross Burton).
2619 * test/glib/Makefile.am (test_service_glib_LDADD): Add
2620 DBUS_GLIB_THREADS_LIBS.
2622 * glib/dbus-gproxy.c (get_name_owner)
2623 (dbus_g_pending_call_end_valist): Ditto.
2625 * glib/dbus-gobject.c (error_metadata): New mapping from GError
2626 domain (GQuark) to DBusGErrorInfo.
2627 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2628 quark in error_metadata. Take message interface as default
2629 error message interface.
2630 (gerror_to_dbus_error_message): Pass message interface.
2631 (dbus_set_g_error): Resurrected.
2632 (dbus_g_error_info_free): New function.
2633 (dbus_g_object_type_install_info): Use g_type_class_ref instead
2634 of _peek to actually create the object class if it hasn't been
2636 (dbus_g_error_domain_register): New function.
2638 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2640 * glib/dbus-gparser.c (validate_signature): Ditto.
2642 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2643 (dbus_g_error_domain_register): Prototype.
2645 * glib/dbus-glib.c (dbus_g_error_set): Delete.
2648 2005-06-29 Colin Walters <walters@verbum.org>
2650 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
2651 DBUS_TYPE_G_OBJECT_PATH.
2653 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2654 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2655 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
2656 (dbus_g_object_path_get_g_type): New function.
2657 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2658 to DBUS_TYPE_G_OBJECT_PATH by default.
2659 (demarshal_proxy): Remove unused name variable.
2660 (demarshal_object_path, marshal_object_path): New functions.
2661 (demarshal_proxy_array, marshal_proxy_array): Delete.
2663 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2664 DBUS_TYPE_G_OBJECT_PATH to char *.
2665 (dbus_g_type_get_lookup_function): Map builtin
2666 DBUS_TYPE_G_OBJECT_PATH.
2668 * test/glib/test-dbus-glib.c
2669 * test/glib/test-service-glib.c (my_object_objpath):
2670 Adapt tests to new object path marshalling.
2672 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
2674 * configure.in: force check for Python >= 2.4
2676 2005-06-29 Colin Walters <walters@verbum.org>
2678 Patch from Ross Burton <ross@openedhand.com>
2680 * glib/dbus-gobject.c (invoke_object_method): Unset object
2681 value in all cases, not only in async case.
2683 2005-06-29 Colin Walters <walters@verbum.org>
2685 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2686 name_call for keeping track of any outgoing GetNameOwner call.
2687 Also add for_owner and associated.
2688 (struct _DBusGProxyManager): Add owner_names, which is hash table
2689 that maps a base name to a list of names it owns (that we're
2690 interested in). Add pending_nameowner_calls which is a list of
2691 all outstanding GetNameOwner; avoids us having to iterate over
2692 every proxy. Add unassociated_proxies which keeps track of name
2693 proxies with no associated name owner.
2694 (dbus_g_proxy_manager_unref): Destroy owner_names.
2695 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2697 (find_name_in_info, name_owner_foreach)
2698 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2699 (dbus_g_proxy_manager_monitor_name_owner)
2700 (dbus_g_proxy_manager_unmonitor_name_owner)
2701 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2702 New functions; they manipulate the owner_names mapping.
2703 (got_name_owner_cb): New function.
2704 (get_name_owner): New function, extracted from
2705 dbus_g_proxy_new_for_name_owner.
2706 (dbus_g_proxy_manager_register): For now we need to keep track of
2707 all NameOwnerChanged. Also if the proxy is for a name, if we
2708 don't already know the name owner, queue a new GetNameOwner
2709 request and add it to our list of unassociated proxies. Otherwise
2711 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2712 cancel any pending GetNameOwner call, etc.
2713 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
2714 the owner_names mapping to look up the current names for the
2715 signal source, and dispatch to any proxies for that name.
2716 (dbus_g_proxy_new): Initialize new members.
2717 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2718 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2719 (dbus_g_pending_call_end_valist): New function, extracted from
2720 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
2721 but want to use the GLib infrastructure. Also note how many
2722 arguments in reply were over.
2723 (dbus_g_pending_call_end): New function, just call
2724 dbus_g_pending_call_end_valist.
2725 (dbus_g_proxy_end_call_internal): Just call
2726 dbus_g_pending_call_end_valist.
2728 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2729 of builtin marshaller for STRING_STRING_STRING.
2731 * test/glib/test-dbus-glib.c:
2732 * test/glib/test-service-glib.c:
2733 * test/glib/test-service-glib.xml:
2734 Extend tests to cover name proxies, destruction of owner proxies,
2737 * glib/examples/example-signal-recipient.c
2738 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2740 * tools/dbus-send.c (main): Print D-BUS error name in addition
2743 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
2745 * python/dbus_bindings.pyx.in (cunregister_function_handler,
2746 cmessage_function_handler): Patch from
2747 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2748 by using the Py_GILState_Ensure/Release to synchronize with the
2751 2005-06-28 Ray Strode <rstrode@redhat.com>
2753 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2754 babysitter helper process on last unref, bug #2813.
2756 2005-06-27 Colin Walters <walters@verbum.org>
2758 * test/glib/test-dbus-glib.c:
2759 * test/glib/test-service-glib.c:
2760 * test/glib/test-service-glib.xml:
2761 Test hash table signal emitting.
2763 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2764 types to their fundamental basis types, since this is what
2765 marshallers operate on. Also add an entry for VOID__BOXED.
2766 (dbus_g_object_register_marshaller_array): Convert to fundamental.
2768 2005-06-26 Havoc Pennington <hp@redhat.com>
2770 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2773 2005-06-26 Colin Walters <walters@verbum.org>
2775 * glib/dbus-glib.c (dbus_set_g_error): Delete.
2776 (dbus_g_error_set): New public function from its ashes; used by
2777 both service-side method implementation and GLib bindings
2779 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2780 (_dbus_glib_test): Add some tests.
2782 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2784 * test/glib/test-service-glib.c (my_object_throw_error): Use
2787 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2788 errors thrown by dbus_g_error_set.
2790 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2792 * glib/dbus-gparser.c (validate_signature): Ditto.
2794 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
2795 (dbus_g_proxy_end_call_internal): Ditto.
2797 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2798 converts DBUS_ERROR_x to DBUS_GERROR_x.
2799 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2801 * doc/TODO: Remove error TODO.
2803 * doc/dbus-tutorial.xml: Update with documentation about error
2806 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2807 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2808 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
2810 2005-06-22 Colin Walters <walters@verbum.org>
2812 Patch from Ross Burton <ross@openedhand.com>
2814 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2816 2005-06-20 Colin Walters <walters@verbum.org>
2818 * configure.in: Add glib/examples.
2820 * glib/Makefile.am: Add examples/
2822 * glib/examples/.cvsignore
2823 * glib/examples/Makefile.am
2824 * glib/examples/example-client.c
2825 * glib/examples/example-service.c
2826 * glib/examples/example-service.xml
2827 * glib/examples/example-signal-emitter.c
2828 * glib/examples/example-signal-emitter.xml
2829 * glib/examples/example-signal-recipient.c:
2830 New files; GLib binding examples, ported from
2833 2005-06-20 Colin Walters <walters@verbum.org>
2836 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2839 * glib/dbus-binding-tool-glib.c:
2840 * doc/dbus-tutorial.xml:
2841 * test/glib/test-dbus-glib.c: Update for rename.
2843 2005-06-20 Colin Walters <walters@verbum.org>
2845 Patch suggested by Ross Burton <ross@openedhand.com>
2847 * glib/dbus-gobject.c (export_signals): Free signal name.
2848 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2849 memory leak. Add a bit of documentation.
2850 (dbus_g_method_return_error): Free context, and note we do
2853 2005-06-18 Murray Cumming <murrayc@murrayc.com>
2856 * glib/dbus-gobject.c:
2857 * glib/dbus-gproxy.c:
2858 * glib/dbus-gvalue.c: Predeclare structs as
2859 typedef struct _Something Something instead of
2860 typedef struct Something Something, so we can
2861 redeclare the prototypes. Other GNOME libraries
2864 2005-06-17 Colin Walters <walters@verbum.org>
2866 * tools/dbus-names-model.c (have_names_notify): Fix call
2867 to dbus_g_proxy_end_call.
2869 2005-06-17 Colin Walters <walters@verbum.org>
2871 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2872 spew warnings if we get malformed remote signals.
2874 * glib/dbus-gobject.c (propsig_iterate): New function.
2875 (lookup_object_info): New function, extracted from
2876 lookup_object_and_method.
2877 (introspect_properties, introspect_signals): Delete; these
2878 are merged into write_interface.
2879 (write_interface): Write out signals and properties here;
2880 dump the org.gtk.object stuff and use the interface given
2881 in the introspection data blob. Also fix up property XML.
2882 (lookup_values): New function.
2883 (introspect_interfaces): Gather a mapping from interface to a
2884 list of its methods, signals, and properties, then write out
2886 (lookup_object_and_method): Use lookup_object_info.
2887 (struct DBusGSignalClosure): Add interface.
2888 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2889 we can just use the constant data.
2890 (dbus_g_signal_closure_finalize): Don't free signal name.
2891 (signal_emitter_marshaller): Use interface from signal closure.
2892 (export_signals): Only export signals mentioned in introspection
2894 (dbus_g_connection_register_g_object): Warn if we have no
2895 introspection data for an object.
2896 (funcsig_equal): Remove unused variable.
2897 (dbus_g_object_register_marshaller): Take varargs instead of
2899 (dbus_g_object_register_marshaller_array): New function,
2900 extracted from old dbus_g_object_register_marshaller.
2902 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2903 signals and property data.
2904 (write_quoted_string): New function, extracted from generate_glue.
2905 (generate_glue): Write signals and properties to introspection
2908 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2909 exported_signals and exported_properties.
2910 (dbus_g_object_register_marshaller): Update prototype.
2911 (dbus_g_object_register_marshaller_array): Prototype.
2913 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2915 * test/glib/test-service-glib.c: Add new test signals and method
2918 * test/glib/test-service-glib.xml: Add some test signals.
2920 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2921 and my-object-marshal.h
2922 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2923 my-object-marshal.c.
2924 (my-object-marshal.c, my-object-marshal.h): Implement.
2926 * test/glib/.cvsignore: Update.
2928 * doc/TODO: Remove two GLib TODO items fixed by this
2931 2005-06-16 Colin Walters <walters@verbum.org>
2933 * doc/TODO: Update for GLib bindings.
2935 2005-06-16 Colin Walters <walters@verbum.org>
2937 * glib/dbus-binding-tool-glib.c:
2938 * glib/dbus-gobject.c:
2939 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
2940 from Ross Burton, for his GLib bindings work.
2942 2005-06-16 Colin Walters <walters@verbum.org>
2944 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2945 to iterate instead of walking to G_TYPE_INVALID.
2947 Patch based on a patch from Ryan Gammon.
2949 2005-06-16 Colin Walters <walters@verbum.org>
2951 * bus/bus.c (bus_context_new): Set parser to NULL
2952 after we unref it (Patch from Chris Boscolo, #2174).
2954 2005-06-16 Colin Walters <walters@verbum.org>
2956 * python/dbus_bindings.pyx.in: Import size_t,
2957 __int64_t, __uint64_t, and __signed.
2959 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2960 Define cmsg struct, output it.
2961 (_dbus_read_credentials_unix_socket):
2964 Patch from Joe Markus Clarke for FreeBSD support.
2966 2005-06-16 Colin Walters <walters@verbum.org>
2968 * tools/dbus-send.c (append_array): Use strtok.
2969 (append_dict): New function.
2970 (type_from_name): New function, extracted from main.
2971 (main): Handle sending dicts.
2973 * tools/dbus-print-message.c (print_iter): Print dict
2976 2005-06-16 Colin Walters <walters@verbum.org>
2978 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2979 values as the empty string (#2948).
2981 2005-06-16 Colin Walters <walters@verbum.org>
2984 * mono/doc/Makefile.am:
2985 * test/glib/Makefile.am:
2987 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2989 2005-06-16 Colin Walters <walters@verbum.org>
2991 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2992 header byte order from expected byte order (Patch from Chris Wilson, #3475).
2994 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
2995 Increment pointer after swapping fixed array. Add assertion
2998 2005-06-15 Colin Walters <walters@verbum.org>
3000 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3001 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3003 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3005 * NEWS: Update to 0.34
3007 2005-06-15 David Zeuthen <davidz@redhat.com>
3009 * configure.in (LT_CURRENT): Revert back to 1 as the library
3010 hasn't changed and we've certainly not committed to protocol
3011 stability yet. All this does is to break ABI. See commit note
3012 from hp@redhat.com 2005-05-05 for details.
3014 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3016 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3017 (_dbus_connection_run_builtin_filters): New method
3018 (dbus_connection_dispatch): Run the builtin filters which in turn
3019 runs the peer filter which handles Ping messages.
3022 - Ping isn't handled: This patch fixes it
3024 - Add a test case for the Ping message: added TODO item
3026 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3028 * dbus/dbus-message.c:
3029 (dbus_message_has_path): New method
3030 (dbus_message_has_interface): New method
3031 (dbus_message_has_member): New method
3033 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3036 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3037 the keyring directory is private to the user
3040 - The convenience functions in dbus-bus.h should perhaps have
3041 the signatures that they would have if they were autogenerated
3042 stubs. e.g. the acquire service function. We should also evaluate
3043 which of these functions to include, in light of the fact that
3044 GLib/Qt native stubs will probably also exist.: Punted
3046 - add dbus_message_has_path(), maybe has_member/interface:
3049 - in dbus-keyring.c, enforce that the keyring dir is not
3050 world readable/writable: Fixed in this patch
3052 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3054 * dbus/dbus-marshal-validate.h: Added a new validation
3055 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3056 out of memory errors when validating signitures
3058 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3059 in places where we previously used DBUS_VALID and a FALSE return
3060 value to indicate OOM
3062 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3063 Use a stack to track the number of elements inside containers. The
3064 stack values are then used to validate that dict entries have only two
3065 elements within them.
3066 (validate_body_helper): check the reason for failure when validating
3069 * dbus/dbus-message.c (load_message): use
3070 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3071 DBUS_VALID and a FALSE return value to indicate OOM
3073 * doc/TODO: remove "- validate dict entry number of fields" as this
3076 2005-06-14 David Zeuthen <davidz@redhat.com>
3078 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3079 watches (if applicable) and add new watches
3081 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3082 (main): Setup SIGIO signal handler if using D_NOTIFY
3084 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3086 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3087 (merge_included): Also merge conf_dirs list
3088 (bus_config_parser_unref): Clear conf_dirs list
3089 (include_dir): Add directory to conf_dirs list
3090 (bus_config_parser_get_conf_dirs): New function
3092 * bus/dir-watch.[ch]: New files
3094 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3096 * configure.in: Add checks for D_NOTIFY on Linux
3098 2005-06-14 Colin Walters <walters@verbum.org>
3100 * glib/dbus-binding-tool-glib.c:
3101 * glib/dbus-gobject.c:
3102 * glib/dbus-gvalue.c: Fix indentation and brace style.
3104 2005-06-14 Ross Burton <ross@openedhand.com>.
3106 * glib/dbus-glib.h: Make DBusGMethodInvocation
3107 a private structure. Rearrange prototypes a bit.
3109 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3110 documentation for first_arg_type.
3112 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3113 here, add documentation. Move dbus_g_method_return
3114 and dbus_g_method_return_error into public API
3117 2005-06-14 Colin Walters <walters@verbum.org>
3119 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3120 Add missing return statements, noticed by Ross Burton.
3122 2005-06-13 Ross Burton <ross@openedhand.com>.
3124 * glib/dbus-gobject.c: Handle errors on message
3125 demarshalling by sending error message back.
3126 * glib/dbus-gvalue.c: Initialize return variables.
3128 2005-06-13 Colin Walters <walters@verbum.org>
3130 * glib/Makefile.am: Fix thinko in last patch.
3132 2005-06-13 Colin Walters <walters@verbum.org>
3134 * glib/Makefile.am: Move dbus-gtype-specialized.c
3135 and dbus-gtype-specialized.h into a _HEADERS variable,
3138 2005-06-12 Colin Walters <walters@verbum.org>
3140 Async signals and various bugfixes and testing by
3141 Ross Burton <ross@openedhand.com>.
3143 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3144 (dbus_gvalue_genmarshal_name_from_type)
3145 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3146 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3147 (dbus_g_value_types_init, dbus_gtype_from_signature)
3148 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3149 (dbus_gtypes_from_arg_signature): New function prototypes.
3150 (dbus_gvalue_demarshal): Take context and error arguments.
3151 (dbus_gvalue_demarshal_variant): New function.
3152 (dbus_gvalue_demarshal_message): New function.
3153 (dbus_gvalue_store): Delete.
3155 * glib/dbus-gvalue.c:
3157 File has been almost entirely rewritten; now we special-case
3158 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3159 hash tables correctly, etc. Full support for recursive values
3160 is not yet complete.
3162 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3163 argument of signal to G_TYPE_POINTER since we now pass a
3165 (lookup_g_marshaller): Delete in favor of
3166 _dbus_gobject_lookup_marshaller.
3167 (marshal_dbus_message_to_g_marshaller): Use
3168 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3169 to handle remote signal callbacks.
3170 (dbus_g_proxy_new_from_proxy): New function; creates a new
3171 DBusGProxy by copying an existing one.
3172 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3173 (dbus_g_proxy_get_path): New functions.
3174 (dbus_g_proxy_marshal_args_to_message): New function;
3175 factored out of existing code.
3176 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3177 from a varargs array.
3178 (dbus_g_proxy_begin_call_internal): New function.
3179 (dbus_g_proxy_end_call_internal): New function.
3180 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3181 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3182 after collecting args into value array.
3183 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3184 invoke dbus_g_proxy_end_call_internal.
3185 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3187 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3189 (array_free_all): New function.
3190 (dbus_g_proxy_add_signal): Take GTypes.
3192 * glib/dbus-gobject.h:
3193 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3194 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3197 * glib/dbus-gobject.c: Add a global marshal_table hash which
3198 stores mappings from type signatures to marshallers. Change lots
3199 of invocations of dbus_gtype_to_dbus_type to
3200 dbus_gtype_to_signature.
3201 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3202 (introspect_signals): Fix test for query.return_type.
3203 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3204 (invoke_object_method): Many changes. Handle asynchronous
3205 invocations. Convert arguments with
3206 dbus_gvalue_demarshal_message. Handle errors. Use
3207 DBusSignatureIter instead of strlen on args. Handle all arguments
3208 generically. Special-case variants.
3209 (dbus_g_method_return, dbus_g_method_return_error): New function.
3210 (DBusGSignalClosure): New structure, closes over signal
3212 (dbus_g_signal_closure_new): New function.
3213 (dbus_g_signal_closure_finalize): New function.
3214 (signal_emitter_marshaller): New function; is special marshaller
3215 which emits signals on bus.
3216 (export_signals): New function; introspects object signals and
3218 (dbus_g_object_type_install_info): Take GType instead of
3220 (dbus_g_connection_register_g_object): Invoke export_signals.
3221 (dbus_g_connection_lookup_g_object): New function.
3222 (DBusGFuncSignature) New structure; used for mapping type
3223 signatures to marshallers.
3224 (funcsig_hash): New function; hashes DBusGFuncSignature.
3225 (funcsig_equal): New function; compares DBusGFuncSignature.
3226 (_dbus_gobject_lookup_marshaller): New function.
3227 (dbus_g_object_register_marshaller): New function; used to
3228 register a marshaller at runtime for a particular signature.
3230 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3232 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3233 which notes a server method implementation should be
3236 * glib/dbus-binding-tool-glib.c
3237 (dbus_binding_tool_output_glib_server): Call
3238 dbus_g_value_types_init.
3239 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3241 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3242 of a lookup function.
3243 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3244 (write_untyped_out_args): New method; write output arguments.
3245 (write_formal_declarations_for_direction): Function for
3247 (write_formal_parameters_for_direction): Function for
3248 writing implementations.
3249 (write_typed_args_for_direction): Function for writing
3250 arguments prefixed with GTypes.
3251 (write_async_method_client): Write out async version
3254 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3255 (dbus_g_type_get_marshal_name): Move mapping from GType
3256 to marshal name into here.
3257 (dbus_g_type_get_c_name): Move into here.
3258 (compute_marshaller): Convert signature to type with
3259 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3260 (compute_marshaller_name): Ditto.
3261 (compute_marshaller): Handle async signal annotations.
3262 (gather_marshallers): Return if we don't have a known
3264 (generate_glue): Collect introspection blob here, and
3265 write all of the blob at the end. This allows an object
3266 with multiple interfaces to work.
3267 Mark async methods in introspection blob.
3269 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3270 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3271 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3273 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3274 avoids people accidentally using DBUS_TYPE_* which should
3275 not be necessary anymore.
3276 Do include dbus-gtype-specialized.h, which are utilities
3277 for GLib container types.
3278 Add various #defines for types such as
3279 DBUS_TYPE_G_BOOLEAN_ARRAY.
3280 (DBusGValueIterator, DBusGValue): Define, not fully used
3282 (dbus_g_value_get_g_type): Type for recursive value.
3283 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3284 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3285 (dbus_g_value_free): Prototypes.
3286 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3287 (dbus_g_proxy_set_interface): Prototype.
3288 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3289 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3291 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3293 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3294 doing async invocations.
3295 (dbus_g_method_return, dbus_g_method_return_error):
3297 * doc/dbus-tutorial.xml: Update GLib section.
3299 * tools/dbus-viewer.c (load_child_nodes): Update
3300 for new invocation type of dbus_g_proxy_end_call.
3301 (load_from_service_thread_func): Ditto.
3303 * tools/print-introspect.c (main): Ditto.
3305 * tools/dbus-names-model.c (have_names_notify)
3306 (names_model_reload, names_model_set_connection)
3309 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3310 needed since Python bindings use GLib bindings.
3312 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3313 Add --prefix argument.
3315 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
3316 unneeded --ignore-unsupported arg.
3318 * test/glib/test-service-glib.c:
3319 * test/glib/test-service-glib.xml:
3320 * test/glib/test-dbus-glib.c: Add many more tests.
3322 2005-06-06 David Zeuthen <davidz@redhat.com>
3324 * doc/TODO: Add item about need to remove deprecated functions.
3326 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3328 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3329 to repair the ABI which was broken with the last commit.
3331 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
3333 * dbus/dbus-connection.c, dbus/dbus-connection.h
3334 (dbus_connection_disconnect): renamed to dbus_connection_close
3335 for API symmetry with dbus_connection_open
3336 (_dbus_connection_open_internal):
3337 s/dbus_connection_disconnect/dbus_connection_close
3339 * dbus/dbus-bus.c (dbus_bus_get):
3340 s/dbus_connection_disconnect/dbus_connection_close
3342 * bus/connection.c (bus_connections_unref,
3343 bus_connections_setup_connection, bus_connections_expire_incomplete):
3344 s/dbus_connection_disconnect/dbus_connection_close
3346 * bus/dispatch.c (bus_dispatch, kill_client_connection,
3347 kill_client_connection_unchecked, check_hello_connection):
3348 s/dbus_connection_disconnect/dbus_connection_close
3350 * bus/bus.c (new_connection_callback):
3351 s/dbus_connection_disconnect/dbus_connection_close
3353 * tools/dbus-send.c (main):
3354 s/dbus_connection_disconnect/dbus_connection_close
3356 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3357 s/dbus_connection_disconnect/dbus_connection_close
3359 * test/test-service.c (path_message_func, filter_func):
3360 s/dbus_connection_disconnect/dbus_connection_close
3362 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
3364 2005-05-25 Colin Walters <walters@verbum.org>
3366 * dbus/dbus-protocol.h: Move various bus service #defines such
3367 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3369 * dbus/dbus-shared.h: Various defines moved here.
3370 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3372 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
3374 * python/__init__.py: Python bindings deserve a minor version
3375 update. Upped to (0, 40, 2)
3377 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
3379 * python/decorators.py: add explicitly_pass_message decorator
3380 for passing in the dbus message as keyword for edge case signal
3383 * python/matchrules.py (SignalMatchRule.__repr__): fix output
3384 to conform with what dbus expects for match rules
3385 (SignalMatchRule.execute): add the dbus message as a keyword
3386 if the signal handler has requested it
3388 * python/examples/example/signal-recipient.py: added some more
3389 examples on how to hook up to signals
3391 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
3393 * python/decorators.py: import dbus_bindings
3395 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
3396 SignalMatchNode): new classes that implement wildcard signal
3397 callback matching using a tree lookup. Heavily modified from a
3398 patch sent by Celso Pinto (fd.o bug #3241)
3400 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3401 use new match classes to handle signals.
3403 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
3405 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3407 2005-05-18 Havoc Pennington <hp@redhat.com>
3409 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3410 gettext. Not really worth requiring yet perhaps, but any
3411 production quality 1.0 would require it so we should go ahead and
3412 get things set up. We do have a couple token calls to
3413 bindtextdomain in the code already.
3415 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
3417 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3418 when using recursive g_main_loops
3420 * python/_dbus.py (class Bus): add the ProxyObjectClass
3421 alias for ProxyObject to make it easier for the Twisted
3422 networking framework to integrate dbus.
3424 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3425 alias for ProxyMethod to make it easier for the Twisted
3426 networking framework to integrate dbus.
3428 2005-05-11 Ross Burton <ross@openedhand.com>
3430 * glib/dbus-glib-tool.c: Add --prefix argument.
3431 * glib/dbus-binding-tool-glib.h: Add prefix argument.
3432 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3433 Add prefix argument.
3434 (generate_glue): Pass prefix argument down.
3435 (dbus_binding_tool_output_glib_server): Pass prefix to
3438 2005-05-11 Colin Walters <walters@verbum.org>
3440 * tools/dbus-send.c (append_array): New function.
3441 (append_arg): Broken out from main.
3442 (main): Add cheesy hack to send arrays and variants.
3444 * tools/dbus-print-message.c (print_iter): Broken out
3447 2005-05-11 Colin Walters <walters@verbum.org>
3449 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3450 New function, returns signature string for signature iter.
3451 * dbus/dbus-signature.h: Prototype it.
3452 * dbus/dbus-message.c (dbus_message_iter_get_signature):
3453 New function, returns signature string for message iter.
3454 (dbus_message_iter_get_array_len): New function, returns
3456 (dbus_message_iter_get_fixed_array): Fix assertion; this
3457 function should be used when the iter is pointing to the
3458 contents of an array
3459 * dbus/dbus-message.h: Prototypes.
3460 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3461 New function; returns length of an array.
3462 * dbus/dbus-marshal-recursive.h: Prototype it.
3464 2005-05-11 Colin Walters <walters@verbum.org>
3466 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3469 2005-05-08 Havoc Pennington <hp@redhat.com>
3471 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3472 daemon's pid, not the parent's pid, to the file descriptor.
3473 Reported by Taj Morton.
3475 2005-05-05 Havoc Pennington <hp@redhat.com>
3477 * configure.in (LT_*): add notes on how the libtool versioning
3478 works to save thinking. Increment soname to indicate protocol
3479 breakage (though really the library interface hasn't changed I
3482 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3483 verify the GUID received from server matches what we were
3484 expecting, if we had an expectation
3486 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3487 (_dbus_auth_get_guid_from_server): new function
3488 (send_begin): parse the OK args
3490 * doc/dbus-specification.xml: add GUID to the auth protocol
3492 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
3494 * Fix my name in previous changelog ;)
3496 * python/proxies.py (ProxyObject.__getattr__): add further patch
3497 from Anthony Baxter to throw an AttributeError when python
3498 __special__ functions are called instead of marshling them over
3499 the bus (Bug#1685 comment 3).
3501 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
3503 * python/Makefile.am: changed to use pyexecdir for the binding
3504 shared libraries (Bug#2494)
3506 * python/exceptions.py: bring exceptions over from the bindings
3507 so they can be used in applications (Bug#2036)
3508 Make all exceptions derive from DBusException
3510 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3511 of classes so that print obj doesn't throw an exception (Bug #1685)
3513 2005-05-03 Ross Burton <ross@openedhand.com>
3515 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3516 Return if we get an error during registration. Set up a
3517 weak reference on object to unregister if object is destroyed.
3518 (unregister_gobject): New function.
3520 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
3522 * python/dbus_bindings.pyx.in:
3523 - added new type classes for hinting to the marashaler what type
3524 to send over the wire
3525 - added int16 and uint16 marshalers
3526 - Fixed a bug in the type constants that caused int32 to go out
3527 as uint16 over the wire
3528 * python/dbus.py: split up into different files and renamed _dbus.py
3529 * python/__init__.py, python/_util.py, python/decorators.py,
3530 python/exceptions.py, python/proxies.py, python/services.py,
3531 python/types.py: new files split off from dbus.py
3532 * python/Makefile.am: Add new files, remove dbus.py and
3533 install all python files to <python module dir>/dbus
3534 * python/examples/*: Added #!/usr/bin/env python to the top of
3535 every example. Patch provided by Tatavarty Kalyan
3537 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3539 * NEWS: Update to 0.33
3541 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3543 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3544 method for doing async calls
3545 (_pending_call_notification): New C function for handling pendning call
3547 (set_notify): New method for setting pending call notification
3549 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3550 Async capabilities added to remote method calls
3551 (Sender): class removed
3552 (RemoteService): class removed
3553 (ObjectTree): class removed for now
3554 (RemoteObject): Renamed to ProxyObject
3555 (RemoteMethod): Renamed to ProxyMethod
3556 (method): Decorator added for decorating python methods as dbus methods
3557 (signal): Decorator added for decorating python methods as signal emitters
3558 (ObjectType): Metaclass added for generating introspection data and the
3559 method callback vtable
3560 (Interface): Wrapper class added to wrap objects in a dbus interface
3561 (Object): Uses ObjectType as its metaclass and exports Introspect
3562 of the org.freedesktop.DBus.Introspectable interface
3563 (ValidationException, UnknownMethodException): new exceptions
3565 * python/examples/*: Modified to fit with the new bindings
3567 2005-04-23 Havoc Pennington <hp@redhat.com>
3569 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3570 reported by Tony Houghton
3572 * test/test-service.c (main): test
3573 dbus_connection_get_object_path_data()
3575 * dbus/dbus-object-tree.c (find_handler): be sure we always init
3577 (_dbus_object_tree_get_user_data_unlocked): new function used by
3578 dbus_connection_get_object_path_data()
3579 (do_register): add assertion test for get_user_data_unlocked
3580 (object_tree_test_iteration): more tests
3582 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3583 new function from Dan Reed to let you get the user data from
3584 dbus_connection_register_object_path()
3586 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
3588 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3589 in numerous places that did not account for the NULL terminator
3590 (signature_from_seed): changed the manual string copy loop to
3591 just use strcpy instead
3592 make check should now pass
3594 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
3596 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3597 so that it allows messages that are not signals to pass in
3598 NULL as the interface.
3600 2005-04-18 David Zeuthen <davidz@redhat.com>
3602 * glib/dbus-gmain.c (io_handler_destroy_source):
3603 (timeout_handler_destroy_source, connection_setup_free):
3604 Also unref the source to avoid memory leaks.
3606 2005-04-13 David Zeuthen <davidz@redhat.com>
3608 * bus/config-parser.c (bus_config_parser_new): Bump this to a
3609 more reasonable, yet still totally arbitrary, value :-).
3611 2005-04-13 David Zeuthen <davidz@redhat.com>
3613 * doc/TODO: Added an "important for 1.0" item about selinux
3616 2005-04-13 David Zeuthen <davidz@redhat.com>
3618 * bus/selinux.c: Add c-file-style to top of file
3619 (log_audit_callback): Don't free the data here anymore
3620 (bus_selinux_check): Don't take spid and tpid since appending
3621 that to auxdata may OOM.
3622 (bus_selinux_allows_acquire_service): Handle OOM and signal back
3623 to the caller if we are OOM by taking an error object.
3624 (bus_selinux_allows_send): -do-
3626 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3627 and bus_selinux_allows_send
3629 * bus/bus.c (bus_context_check_security_policy): Pass error and
3630 pass on OOM thrown by bus_selinux_allows_send()
3632 * bus/services.c (bus_registry_acquire_service): Pass error and
3633 pass on OOM thrown by bus_selinux_allows_acquire_service()
3635 2005-04-13 Havoc Pennington <hp@redhat.com>
3637 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3638 message at a time to avoid monopolizing the main loop, bug
3639 #2953 from Benjamin Otte
3641 2005-04-09 Havoc Pennington <hp@redhat.com>
3643 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3644 possible overlap, fix from Daniel Reed
3645 (fixup_alignment): fix signedness warnings
3646 (_dbus_string_append_unichar): ditto
3648 2005-04-09 Havoc Pennington <hp@redhat.com>
3650 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3652 * glib/dbus-glib-tool.c (main): fix warning
3654 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3656 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3657 add a new function that can be used in simple applications that
3658 don't have a main loop and are willing to block
3660 2005-04-05 David Zeuthen <davidz@redhat.com>
3662 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3664 * glib/dbus-gmain.c:
3665 (io_handler_destroy_source): Remove from list of IO handlers
3666 of the ConnectionSetup object
3667 (timeout_handler_destroy_source): -do- for timeout handlers
3668 (io_handler_source_finalized): Don't remove from list since
3669 we now do that in io_handler_destroy_source(). Renamed from
3670 io_handler_source_destroyed
3671 (timeout_handler_source_destroyed): -do- for timeout handlers
3672 (connection_setup_free): It is now safe to iterate over all
3673 IO and timeout handlers as the _destroy_source removes them
3674 from the list synchronously
3676 2005-03-30 Havoc Pennington <hp@redhat.com>
3678 * configure.in: change check to gtk 2.4
3680 * tools/dbus-viewer.c (name_combo_changed_callback): remove
3681 gtk_combo_box_get_active_text() usage to decrement GTK requirement
3684 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3688 * HACKING: Fixed realease instructions. configure.in should be updated to
3689 the next release by the person who made the last release.
3691 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3693 * python/lvalue_cast_post_process.py - removed. Patch has been
3694 submitted to Pyrex maintainers that fixes gcc4.0 errors
3696 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3698 2005-03-24 Daniel Reed <n@ml.org>
3700 * tools/Makefile.am: Make print-introspect and
3701 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3703 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
3705 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3707 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
3708 had in Red Hat packages for a while but for some reason never
3710 (_dbus_is_a_number): New checks if a string
3711 can be converted to a number and does the conversion if it can
3712 (_dbus_user_database_lookup): Add check to see if the given username
3713 is a udi. This allows udi's to be used instead of usernames in the
3715 (_dbus_user_database_lookup_group): Add check to see if the given groupname
3716 is a gdi. This allows gdi's to be used instead of groupnames in the
3719 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
3721 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3722 code so that it compiles with gcc4.0
3724 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3725 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3726 results back to dbus_binding.c
3728 2005-03-20 Colin Walters <walters@verbum.org>
3730 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3732 * configure.in: Require GTK+ 2.6.
3734 2005-03-20 Colin Walters <walters@verbum.org>
3736 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3738 2005-03-17 Tom Parker <palfrey@tevp.net>
3740 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3741 print DBUS_UID_UNSET; instead print passed username. Also
3742 be sure to actually use gid looked up in cache.
3744 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3745 for DBUS_GID_UNSET and groupname.
3747 2005-03-17 Colin Walters <walters@verbum.org>
3749 * bus/print-introspect.c: Move to tools/.
3750 * bus/run-with-tmp-session-bus.sh: Ditto.
3752 * glib/Makefile.am (dbus-glib-bindings.h): Move
3753 generation to tools/Makefile.am.
3755 * test/glib/run-test.sh: Update to handle move
3756 of run-with-tmp-session-bus.sh.
3758 * test/glib/test-service-glib.c: Update to handle
3759 move of dbus-glib-bindings.h.
3761 * tools/print-introspect.c: Moved here
3762 from bus/, and ported to GLib bindings.
3764 * tools/run-with-tmp-session-bus.sh: Moved here
3767 * tools/Makefile.am: Generate dbus-glib-bindings.h
3768 and dbus-bus-introspect.xml here.
3770 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3773 2005-03-17 Colin Walters <walters@verbum.org>
3775 * bus/driver.c (write_args_for_direction): Use
3776 _dbus_string_get_const_data to retrieve string;
3777 _dbus_string_get_const_data_len doesn't actually return
3778 a NULL-terminated substring.
3780 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3781 (main): Change to use org_freedesktop_DBus_request_name
3782 instead of using g_proxy_begin_call/end_call.
3784 2005-03-15 Joe Shaw <joeshaw@novell.com>
3786 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3787 generating the finalizer. Fixes from Ben Maurer.
3789 2005-03-12 Joe Shaw <joeshaw@novell.com>
3791 * mono/BusDriver.cs: Update method names: ListServices
3792 becomes ListNames; GetOwner becomes GetNameOwner.
3794 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3795 onto the eval stack when removing the delegate.
3797 2005-03-12 Joe Shaw <joeshaw@novell.com>
3799 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3800 LT_CURRENT. Set it to the autoconf variable.
3802 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3803 classes that disconnects the signal handler delegate from the
3804 service object. Fixes a big leak of proxy objects on the
3805 client side of things. Patch from Ben Maurer
3806 <bmaurer@ximian.com>
3808 2005-03-12 Colin Walters <walters@verbum.org>
3810 * bus/driver.c (write_args_for_direction): New function,
3811 parses a type signature into arguments and outputs to
3813 (bus_driver_handle_introspect): Use it instead of
3814 hardcoding XML for certain signatures.
3816 * bus/Makefile.am (dbus-bus-introspect.xml): Add
3817 dependency on dbus-daemon.
3819 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3820 argument, pass it to dbus_binding_tool_output_glib_client.
3822 * glib/dbus-binding-tool-glib.c
3823 (generate_client_glue): Protect against multiple inclusion.
3824 (dbus_binding_tool_output_glib_client): Add
3825 G_BEGIN_DECLS/G_END_DECLS.
3827 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3828 Change to just take iface prefix directly.
3829 (write_formal_parameters): Clarify error message.
3830 (check_supported_parameters): New function; checks to see type
3831 signatures of method parameters are supported.
3832 (generate_client_glue): Handle ignore_unsupported flag.
3833 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3836 * glib/Makefile.am (dbus-glib-bindings.h): Pass
3837 --ignore-unsupported by default until glib bindings
3840 2005-03-11 Colin Walters <walters@verbum.org>
3842 * glib/Makefile.am: Generate dbus-glib-bindings.h and
3845 * bus/print-introspect.c: New file; prints introspection
3846 data for a given name and object path.
3848 * bus/run-with-tmp-session-bus.sh: New file, refactored
3849 from test/glib/run-test.sh. Creates a temporary session
3850 bus and runs another program.
3852 * test/glib/run-test.sh: Refactor to invoke
3853 run-with-tmp-session-bus.sh.
3855 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3856 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
3857 macros instead of hardcoding.
3859 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3861 2005-03-11 Joe Shaw <joeshaw@novell.com>
3863 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3864 this unref; it doesn't match up evenly in some codepaths.
3865 (_dbus_connection_block_pending_call): Unref at every exitpoint;
3866 this evenly matches with the ref near the top of this function.
3868 2005-03-09 Joe Shaw <joeshaw@novell.com>
3870 * dbus/dbus-object-tree.c
3871 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3872 and we try to unregister a path that's not registered, still go
3873 through the process of unlocking and don't just return.
3875 2005-03-09 Colin Walters <walters@verbum.org>
3877 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3878 to this are generated for client-side wrappers. Invokes a
3879 D-BUS method and returns reply values.
3881 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3882 function; writes signature string for argument direction.
3883 (write_args_for_direction): Change to pass input values directly
3884 instead of via address, and fix indentation.
3885 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
3886 make generated wrappers inlineable.
3888 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3889 note about using dbus_type_is_fixed.
3891 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3892 dbus/dbus-signature.c as dbus_type_is_fixed.
3894 All callers updated.
3896 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3897 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3899 * dbus/dbus-signature.h: Prototype.
3901 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3904 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3905 appropriate instead of just freeing it.
3906 (main): Free returned strings using g_free.
3908 * test/glib/Makefile.am (test-service-glib-glue.h)
3909 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3911 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3912 simply maps a simple D-BUS type to GType.
3913 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3915 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3916 initialize the value with it.
3917 (dbus_gvalue_binding_type_from_type): Unused, delete.
3918 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3919 various types instead of unmarshalling to value data directly.
3920 Remove can_convert boolean.
3921 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3922 returning directly instead of using can_convert boolean.
3923 (dbus_gvalue_store): New function; not related to D-BUS per-se.
3924 Stores a GValue in a pointer to a value of its corresponding C
3927 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3928 add dbus_gvalue_store.
3930 2005-03-08 Joe Shaw <joeshaw@novell.com>
3932 Fix a bunch of lifecycle and memory management problems
3933 in the mono bindings.
3935 * mono/Arguments.cs (Arguments): Implement IDisposable
3937 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
3938 strictly a static class.
3940 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3941 delegates into this file.
3942 (Connection): Implement IDisposable.
3943 (Dispose): Disconnect the connection and set the raw connection
3944 pointer to IntPtr.Zero.
3945 (~Connection): Call Dispose().
3946 (RegisterObjectPath): Added. Manages the registration of object
3947 paths so we can cleanly disconnect them at dispose/finalize time.
3948 (UnregisterObjectPath): Ditto.
3949 (set_RawConnection): Unregister all of the object paths when
3950 changing the underlying DBusConnection. Add them back onto the
3951 new connection, if any.
3953 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3954 more unmanaged resources anymore, so it's not necessary. Move all
3955 the DBusObjectPathVTable stuff out of here.
3956 (Handler): Save references to our delegates so that they don't get
3957 finalized. Call Connection.RegisterObjectPath() instead of
3958 dbus_connection_register_object_path() directly.
3959 (Message_Called): Dispose the message after we're finished with
3962 * mono/Message.cs (Message): Implement IDisposable.
3963 (Dispose): Dispose the Arguments, and set the RawMessage to
3965 (SendWithReplyAndBlock): We own the ref to the reply that comes
3966 back from dbus_connection_send_with_reply_and_block() so add a
3967 comment about that and unref it after we've constructed a managed
3968 MethodReturn class around it. Fixes a big, big leak.
3970 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3972 (BuildSignalHandler): After we've sent the Signal message, dispose
3974 (BuildMethod): Dispose of the method call and reply messages after
3975 we've sent the message and extracted the data we want from the
3978 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3980 (Service_FilterCalled): Dispose of the message after we're
3983 2005-03-08 Joe Shaw <joeshaw@novell.com>
3985 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3986 After we attach our pending call to the connection, unref
3989 * mono/Connection.cs (set_RawConnection): Disconnect our
3990 filter and match callbacks from the old connection and
3991 reconnect them to the new connection, if any.
3993 * mono/DBusType/Array.cs: "Code" is a static member, so
3994 don't use "this" to refer to it. Fix for stricter checking
3997 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3998 object path that we pass into unmanaged code.
4000 * mono/DBusType/String.cs (Append): Don't leak the string
4001 that we pass into unmanged code.
4003 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4004 * NEWS: Update for 0.31
4006 * configure.in: Release 0.31
4007 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4009 * qt/Makefile.am: fixed build
4011 * dbus/Makefile.am: soname bump for libdbus
4013 * glib/Makefile.am: soname bump for libdbus-glib
4015 2005-03-05 Havoc Pennington <hp@redhat.com>
4017 * dbus/dbus-sysdeps.c:
4018 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4020 (_dbus_generate_random_bytes_buffer): fix return value
4022 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4023 checks actually work, from Tom Parker <fdo@tevp.net>
4025 2005-03-01 Colin Walters <walters@verbum.org>
4027 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4028 functions copied from dbus-glib-tool.c.
4029 (main): Convert lots of error code to use them.
4030 Also add some testing for introspection bits.
4032 2005-03-01 Colin Walters <walters@verbum.org>
4034 * doc/TODO: Remove introspection signature TODO.
4036 2005-02-27 Colin Walters <walters@verbum.org>
4038 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4039 Change return value to const char * instead of int so we can do
4041 (struct PropertyInfo, struct ArgInfo): Store char *.
4042 (property_info_new, arg_info_new): Update parameters, strdup.
4043 (property_info_unref, arg_info_unref): Free.
4045 * glib/dbus-gidl.h: Update prototypes.
4047 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4048 (validate_signature): New function, just validates signature and
4050 (parse_property, parse_arg): Invoke validate_signature. Store
4051 signature instead of just type code.
4053 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4054 function to return a primary type for a signature, dropping
4055 information about types in container types.
4056 (dbus_gvalue_genmarshal_name_from_type)
4057 (dbus_gvalue_binding_type_from_type)
4058 (dbus_gvalue_ctype_from_type): Update to take full signature
4059 instead of type code.
4060 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4062 * glib/dbus-gvalue.h: Update prototypes for above.
4064 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4065 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4066 (introspect_properties, introspect_signals, write_interface):
4067 Update to handle signatures, and remove usage of
4068 _dbus_gutils_type_to_string.
4069 (handle_introspect): Print out type codes instead of e.g. "string"
4070 in hardcoded introspection XML; also use x_AS_STRING constants
4071 instead of hardcoding in string.
4073 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4074 to string. Remove usage of _dbus_gutils_type_to_string.
4076 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4078 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4081 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4082 (compute_marshaller_name, generate_glue): Handle signature change
4084 (write_formal_parameters, write_args_for_direction): Ditto, and
4087 * tools/dbus-tree-view.c (type_to_string): Delete.
4088 (info_set_func_text): Update to print full signatures.
4090 * test/glib/test-service-glib.xml: Change types to new
4091 introspection format.
4093 2005-02-26 Havoc Pennington <hp@redhat.com>
4095 * doc/TODO: remove the "guid" item
4097 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4098 (with_bus_thread_func): use open_private
4100 * dbus/dbus-connection.c (dbus_connection_open_private): new
4101 function that works like the old dbus_connection_open()
4102 (dbus_connection_open): now returns an existing connection if
4105 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4106 through the GUID to the transport
4108 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4109 GUID in hex-encoded form.
4111 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4112 pass GUID argument in to the transport
4114 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4117 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4119 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4121 2005-02-25 Havoc Pennington <hp@redhat.com>
4123 * doc/dbus-specification.xml: document the GUID thing
4125 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4126 globally unique ID for the server, and put a "guid=hexencoded"
4127 field in the address
4129 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4131 * dbus/dbus-message.c: ditto
4133 * dbus/dbus-dataslot.c: ditto
4135 * dbus/dbus-list.c: ditto
4137 * dbus/dbus-internals.h: wait, just include
4138 dbus-threads-internal.h here
4140 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4143 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4145 2005-02-24 Colin Walters <walters@verbum.org>
4147 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4149 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4151 * glib/Makefile.am: added dbus-gobject.h to sources list
4152 so distcheck doesn't fail
4154 2005-02-24 Havoc Pennington <hp@redhat.com>
4156 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4157 you must disconnect before unref, since locking and other things
4158 are screwed up otherwise. Fix assorted other locking stuff.
4160 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4163 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4164 into a private header and don't export from the library
4166 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4168 2005-02-24 Colin Walters <walters@verbum.org>
4170 * dbus/dbus-signature.c: New file; implements various functions
4171 related to type signatures. Includes an interator for parsing,
4172 validation functions.
4173 (dbus_type_is_basic): Moved here from
4174 dbus-marshal-basic.c:_dbus_type_is_basic.
4175 (dbus_type_is_container): Moved here from
4176 dbus-marshal-basic.c:_dbus_type_is_container.
4178 All callers of _dbus_type_is_container and _dbus_type_is_basic
4179 updated, and include dbus-signature.h.
4181 * dbus/dbus-signature.h: New file; prototypes for the above.
4183 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4186 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4187 function factored out of _dbus_first_type_in_signature.
4188 (_dbus_first_type_in_signature_c_str): New function; returns first
4189 type code for a type signature character.
4191 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4192 handle function moves.
4194 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4196 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4197 function; skips to next complete type in type signature.
4198 Implemented using previous skip_one_complete_type. Now
4199 skip_one_complete_type just delegates to
4200 _dbus_type_signature_next.
4202 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4204 (_dbus_type_is_container): Ditto.
4206 * doc/dbus-specification.xml: Update introspection sample to
4207 use real type signatures.
4209 * dbus/dbus-test.h: Prototype signature test.
4211 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4214 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4216 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4218 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4219 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4221 2005-02-21 Colin Walters <walters@verbum.org>
4223 * dbus/dbus-test-main.c (main): Take optional specific test
4226 * dbus/dbus-test.c (run_test): New function, runs a test function
4227 with no data directory.
4228 (run_data_test): Like above, but takes data directory.
4229 (dbus_internal_do_not_use_run_tests): Take
4230 specific test argument. Replace lots of cut n' paste code
4231 with run_test and run_data_test.
4233 * dbus/dbus-test.h: Update prototype for
4234 dbus_internal_do_not_use_run_tests.
4236 2005-02-20 Havoc Pennington <hp@redhat.com>
4238 Fix bugs reported by Daniel P. Berrange
4240 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4241 (protected_change_watch): new function
4242 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4243 (_dbus_server_add_watch): change to work like the
4244 dbus-connection.c equivalents; like those, probably kind of
4245 busted, but should at least mostly work for now
4246 (dbus_server_disconnect): drop the lock if we were already
4247 disconnected, patch from Daniel P. Berrange
4249 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4250 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4253 * doc/TODO: todo about unscrewing this mess
4255 2005-02-19 Colin Walters <walters@verbum.org>
4257 * glib/dbus-binding-tool-glib.c
4258 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4260 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4261 as errno.h and sys/stat.h.
4262 (lose): New function, prints error with
4264 (lose_gerror): Similar, but takes GError for message.
4265 (main): Add --output argument to specify output file to write to,
4266 instead of always printing to stdout. In this mode, determine
4267 timestamps on source files to see whether any are newer than the
4268 target file. If not, exit. Also convert a number of error
4269 messages to use lose (since it's shorter), and switch to using
4270 g_io_channel_shutdown.
4272 2005-02-19 Havoc Pennington <hp@redhat.com>
4274 * glib/dbus-gobject.c
4275 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4277 * glib/dbus-glib.c: fix doxygen warnings
4279 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4280 is found on an <arg>
4282 2005-02-17 Colin Walters <walters@verbum.org>
4284 * glib/dbus-gobject.h: Don't export
4285 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4287 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4288 (invoke_object_method): Handle it.
4290 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4293 2005-02-17 Colin Walters <walters@verbum.org>
4295 * bus/.cvsignore, doc/.cvsignore
4296 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4299 2005-02-17 Colin Walters <walters@verbum.org>
4301 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4302 Rename to DBUS_SERVICE_DBUS.
4303 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4304 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4305 Change the value from "org.freedesktop.Local"
4306 to "org.freedesktop.DBus.Local".
4307 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4308 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4309 DBUS_INTERFACE_INTROSPECTABLE.
4310 Change the value from "org.freedesktop.Introspectable"
4311 to "org.freedesktop.DBus.Introspectable".
4312 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4313 DBUS_INTERFACE_PROPERTIES.
4314 Change the value from "org.freedesktop.Properties"
4315 to "org.freedesktop.DBus.Properties".
4316 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4317 DBUS_INTERFACE_PEER.
4318 Change the value from "org.freedesktop.Peer"
4319 to "org.freedesktop.DBus.Peer".
4320 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
4321 DBUS_INTERFACE_LOCAL.
4322 Change the value from "org.freedesktop.Local"
4323 to "org.freedesktop.DBus.Local".
4325 All other users of those constants have been changed.
4327 * bus/driver.c (bus_driver_handle_introspect): Use constants.
4329 * glib/dbus-gobject.c (handle_introspect): Use constants.
4331 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4333 2005-02-17 Colin Walters <walters@verbum.org>
4335 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4336 (parse_node, parse_interface, parse_method, parse_signal)
4337 (parse_property, parse_annotation): Lose if we're currently in an
4339 (parse_annotation): New function.
4340 (parser_start_element, parser_end_element): Handle annotation.
4341 (parse_method, parse_interface): Remove support for c_name attribute,
4342 switch to annotations.
4344 * glib/dbus-gidl.h (interface_info_get_binding_names)
4345 (method_info_get_binding_names)
4346 (interface_info_get_binding_name, method_info_get_binding_name)
4347 (interface_info_set_binding_name, method_info_set_binding_name):
4349 (interface_info_get_annotations, method_info_get_annotations)
4350 (interface_info_get_annotation, method_info_get_annotation)
4351 (interface_info_add_annotation, method_info_add_annotation):
4354 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4356 (struct MethodInfo): Ditto.
4357 Straightfoward conversion of binding methods into annotation methods
4360 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4362 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4364 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4365 Use new annotation API.
4367 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
4370 * doc/dbus-specification.xml: Discuss introspection annotations,
4371 include list of well-known annotations.
4373 * test/glib/test-service-glib.xml: Make validate against new DTD.
4375 2005-02-17 Colin Walters <walters@verbum.org>
4377 This patch is based on initial work from
4378 Paul Kuliniewicz <kuliniew@purdue.edu>.
4380 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4381 initialization of GValue from dbus type to here.
4382 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4383 for the "glib-genmarshal" program from a DBus type.
4384 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4385 into the C name for it we use in the glib bindings.
4386 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4387 glib C type (not GValue).
4388 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4390 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4391 from dbus-gobject.c.
4393 * glib/dbus-gutils.h: Prototype it.
4395 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4396 (marshal_dbus_message_to_g_marshaller): Use new shared function
4397 dbus_glib_marshal_dbus_message_to_gvalue_array.
4399 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4400 Will be changed once we have annotations.
4402 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4403 GStaticRWLock. Callers updated.
4404 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
4405 (string_table_next): New function for iterating over zero-terminated
4407 (string_table_lookup): New function; retrieves specific entry in
4409 (get_method_data): New function; look up method data in object data chunk.
4410 (object_error_domain_prefix_from_object_info)
4411 (object_error_code_from_object_info): New functions, but not implemented yet.
4412 (method_interface_from_object_info): New function; retrieve interface name.
4413 (method_name_from_object_info): New function; retrieve method name.
4414 (method_arg_info_from_object_info): New function; retrieve argument data.
4415 (arg_iterate): New function; iterates over serialized argument data.
4416 (method_dir_signature_from_object_info): New function; returns a
4417 GString holding type signature for arguments for just one
4418 direction (input or output).
4419 (method_input_signature_from_object_info)
4420 (method_output_signature_from_object_info): New functions.
4421 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4422 converts dbus message arguments into a GValue array. Used for both
4423 signal handling and method invocation.
4424 (struct DBusGlibWriteIterfaceData): New utility structure.
4425 (write_interface): New function; generate introspection XML for
4427 (introspect_interfaces): New function; gathers all interface->methods,
4428 generates introspection XML for them.
4429 (handle_introspect): Invoke introspect_interfaces.
4430 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4431 (lookup_object_and_method): New function; examines an incoming message
4432 and attempts to match it up (via interface, method name, and argument
4433 signature) with a known object and method.
4434 (gerror_domaincode_to_dbus_error_name): New function; converts a
4435 GError domain and code into a DBus error name. Needs GError data
4436 added to object introspection to work well.
4437 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4439 (invoke_object_method): New function to invoke an object method
4440 looked up via lookup_object_and_method. Parses the incoming
4441 message, turns it into a GValue array, then invokes the marshaller
4442 specified in the DBusGMethodInfo. Creates a new message with
4443 either return values or error message as appropriate.
4444 (gobject_message_function): Invoke lookup_object_and_method and
4445 invoke_object_method.
4447 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4448 (enum DBusBindingOutputMode): New enum for binding output modes.
4449 (pretty_print): Print binding names.
4450 (dbus_binding_tool_error_quark): GError bits.
4451 (version): Fix typo.
4452 (main): Create GIOChannel for output. Parse new --mode argument,
4453 possible values are "pretty-print", "glib-server", "glib-client".
4454 Use mode to invoke appropriate function.
4456 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4458 * glib/dbus-glib-tool.h: New header, just includes GError bits
4461 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4462 maps binding style to name.
4463 (struct MethodInfo): Ditto.
4464 (get_hash_keys, get_hash_key): Utility function, returns keys for
4466 (interface_info_new, method_info_new): Initialize bindings.
4467 (interface_info_unref, method_info_unref): Destroy bindings.
4468 (method_info_get_binding_names, method_info_get_binding_name)
4469 (interface_info_get_binding_names, interface_info_get_binding_name):
4470 Functions for retrieving binding names.
4471 (method_info_set_binding_name, interface_info_set_binding_name):
4472 Functions for setting binding names.
4474 * glib/dbus-binding-tool-glib.h: New file, has prototypes
4475 for glib binding generation.
4477 * glib/dbus-binding-tool-glib.c: New file, implements server-side
4478 and client-side glib glue generation.
4480 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4481 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4484 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4485 of using GClosureMarshal directly.
4486 (struct DBusGObjectInfo): Add n_infos member.
4488 * test/glib/test-service-glib.xml: New file; contains introspection data
4489 for MyTestObject used in test-service-glib.c.
4491 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4492 (my_object_do_nothing, my_object_increment, my_object_throw_error)
4493 (my_object_uppercase, my_object_many_args): New test methods.
4494 (main): Use dbus_g_object_class_install_info to include generated object
4497 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4498 as well as client-side bindings.
4500 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4501 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4502 using both the dbus_gproxy stuff directly as well as the generated bindings.
4504 2005-02-15 Havoc Pennington <hp@redhat.com>
4506 * dbus/dbus-connection.c (dbus_connection_dispatch): always
4507 complete a pending call, don't run filters first.
4509 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4510 dbus_pending_call_steal_reply
4512 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4513 _dbus_connection_block_pending_call
4514 (dbus_pending_call_get_reply): change to steal_reply and return a
4517 * dbus/dbus-connection.c
4518 (dbus_connection_send_with_reply_and_block): port to work in terms
4520 (_dbus_connection_block_pending_call): replace block_for_reply
4523 2005-02-14 Havoc Pennington <hp@redhat.com>
4525 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4526 properly handle looking up group information by name; fix
4529 2005-02-13 Havoc Pennington <hp@redhat.com>
4531 * dbus/dbus-connection.c (dbus_connection_return_message)
4532 (dbus_connection_borrow_message): hold dispatch lock while message
4534 (_dbus_connection_block_for_reply): hold dispatch lock while we
4535 block for the reply, so nobody steals our reply
4536 (dbus_connection_pop_message): hold the dispatch lock while we
4539 2005-02-13 Havoc Pennington <hp@redhat.com>
4541 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4542 (_dbus_connection_release_dispatch)
4543 (_dbus_connection_acquire_io_path)
4544 (_dbus_connection_release_io_path): make the mutex and condvar
4545 control access to the "acquired" flag. Drop the connection lock
4546 while waiting on the condvar. Hopefully these are baby steps in
4547 roughly the right direction.
4549 2005-02-13 Havoc Pennington <hp@redhat.com>
4551 * dbus/dbus-connection.c: use separate mutexes for the condition
4552 variables; this is some kind of baseline for sanity, but the
4553 condition variables still aren't used correctly afaict
4555 2005-02-13 Havoc Pennington <hp@redhat.com>
4557 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4560 * dbus/dbus-connection.c
4561 (_dbus_connection_detach_pending_call_unlocked): add this
4563 Initial semi-correct pass through to fix thread locking; there are
4564 still some issues with the condition variable paths I'm pretty
4567 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4570 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4571 rename to add _unlocked
4572 (struct DBusConnection): move "dispatch_acquired" and
4573 "io_path_acquired" to use only one bit each.
4574 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4575 (dbus_connection_set_watch_functions): hacky fix to reentrancy
4576 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
4577 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
4578 (_dbus_connection_remove_timeout)
4579 (_dbus_connection_toggle_timeout): drop lock when calling out to
4580 user functions; done in a hacky/bad way.
4581 (_dbus_connection_send_and_unlock): add a missing unlock
4582 (_dbus_connection_block_for_reply): add a missing unlock
4584 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4585 drop lock in a hacky probably unsafe way to call out to user
4588 2005-02-12 Havoc Pennington <hp@redhat.com>
4590 * tools/dbus-tree-view.c (info_set_func_text): display more
4593 * bus/driver.c (bus_driver_handle_list_services): list the bus
4596 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4598 * glib/dbus-gidl.c (signal_info_get_n_args): new function
4599 (method_info_get_n_args): new function
4601 2005-02-12 Havoc Pennington <hp@redhat.com>
4603 * bus/driver.c (bus_driver_handle_introspect): add introspection
4606 2005-02-12 Havoc Pennington <hp@redhat.com>
4608 * bus/driver.c: put the signature of each bus driver method in the
4609 table of handlers and check it on incoming calls; this isn't
4610 really useful, but going to add introspect support in a minute.
4612 2005-02-11 Joe Shaw <joeshaw@novell.com>
4614 * mono/Connection.cs: The unpredictability of finalizers in mono
4615 prevents us from deterministically disconnecting the filters from
4616 the Service class's finalizer, so move tracking of filters and
4617 matches here. Add API for that.
4619 * mono/Service.cs: Remove the code, add code which calls the
4620 methods now on the Connection class.
4622 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
4624 * python/dbus.py (class Sender): added to support dbus signals better
4625 (Bus::add_signal_receiver): added expand_args parameter which defaults
4626 to True. When expand args is True the signal handler will pass the
4627 message arguments as parameters to the signal handler. If False
4628 revert to previous behavior where the signal handler must get the
4629 argument list from the message. This is to help port applications
4630 like HAL that have a tendancy to send variable length argument lists.
4631 self._match_rule_to_receivers is now a dict of dicts.
4632 (Bus::remove_signal_receiver): pop handler off the dict intead of
4633 removing it from a list
4634 (Bus::_signal_func): change signal handlers so that interface,
4635 signal_name, service, path and message are packed into a Sender
4636 object and that is passed to the handler. If expand_args is True
4637 extract the args list from the message and append it to the parameter
4640 * python/dbus_bindings.pyx.in (class Signature): added to support
4642 (MessageIter::__init__): changed iteration limit to match D-BUS
4643 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
4644 STRUCT and VARIENT type support
4645 (MessageIter::python_value_to_dbus_sig): made recursive to support
4647 (MessageIter::append*): added Signature, dict, tuple
4650 * python/examples/example-client.py: added examples of getting tuples
4653 * python/examples/example-service.py: added examples of sending tuples
4656 * python/examples/example-signal-recipient.py: Fixed to handle new
4657 signal callback format
4659 2005-02-10 Havoc Pennington <hp@redhat.com>
4661 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4662 (call dbus_g_proxy_add_signal)
4664 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4666 (_dbus_server_new_for_domain_socket): escape the path
4668 * dbus/dbus-address.c (dbus_address_escape_value): new
4669 (dbus_address_unescape_value): new
4670 (dbus_parse_address): unescape values
4672 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4674 * doc/dbus-specification.xml: explain how to escape values in
4677 2005-02-10 Havoc Pennington <hp@redhat.com>
4679 * dbus/dbus-message-factory.c (generate_special): modify test to
4680 avoid using a non-basic dict key
4682 * dbus/dbus-marshal-validate-util.c: add test for the below
4684 * doc/dbus-specification.xml: require that dict keys are a basic
4687 * dbus/dbus-marshal-validate.c
4688 (_dbus_validate_signature_with_reason): require that dict key is a
4691 2005-02-10 Havoc Pennington <hp@redhat.com>
4693 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4694 change to be _and_unlock instead of _unlocked
4696 * dbus/dbus-connection.c
4697 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4698 have no_update so we can find this bug quickly in future
4700 2005-02-10 Havoc Pennington <hp@redhat.com>
4702 * dbus/dbus-message-util.c (verify_test_message): tests for string
4705 * dbus/dbus-message.c (dbus_message_append_args_valist): add
4706 support for arrays of string/signature/path
4708 2005-02-10 Joe Shaw <joeshaw@novell.com>
4710 * dbus/dbus-connection.c
4711 (_dbus_connection_queue_received_message_link,
4712 _dbus_connection_message_sent): Add the path to
4714 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
4715 _dbus_connection_send_preallocated_unlocked(), updated the
4716 dispatch status, and unlocks. Fixes a bug where certain
4717 situations (like a broken pipe) could cause a Disconnect message
4718 to not be sent, tricking the bus into thinking a service was still
4719 there when the process had quit.
4720 (_dbus_connection_send_preallocated): Call
4721 _dbus_connection_send_preallocated_and_unlock().
4722 (_dbus_connection_send_and_unlock): Added. Calls
4723 _dbus_connection_send_preallocated_and_unlock().
4724 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4725 (dbus_connection_send_with_reply): Update the dispatch status and
4728 * mono/Service.cs (~Service): Added. Removes the filter so that
4729 we don't get unmanaged code calling back into a GCed delegate.
4730 (RemoveFilter); Added.
4732 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
4734 * dbus/dbus-message.c (dbus_message_iter_open_container):
4735 - Removed check for iterator type being an array because
4736 get_arg_type does not work with writer iterators
4737 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4739 2005-02-07 Havoc Pennington <hp@redhat.com>
4741 * doc/dbus-specification.xml: some more language cleanups; add
4742 stuff about how to deal with invalid protocol and extension
4743 points; add _ to allowed chars in auth commands; add EXTENSION_
4746 2005-02-06 Havoc Pennington <hp@redhat.com>
4748 * s/expected/required/ in a couple places for clarity
4750 2005-02-07 Colin Walters <walters@verbum.org>
4752 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4753 sender or proposed_recipient.
4755 2005-02-06 Havoc Pennington <hp@redhat.com>
4757 * dbus/dbus-message-factory.c (generate_special): more tests
4759 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4760 array length that exceeds the maximum
4762 2005-02-05 Havoc Pennington <hp@redhat.com>
4764 * dbus/dbus-message-factory.c (generate_special): more test cases,
4767 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4768 reason why a signature was invalid
4770 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4771 skip the length of the string before we look at it in validation
4773 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4776 * dbus/dbus-message.c (_dbus_message_loader_new): default
4777 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4779 2005-02-05 Havoc Pennington <hp@redhat.com>
4781 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4782 if the signature of a variant was empty
4783 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4784 struct with no element type)
4786 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4787 mangled messages to break things
4789 2005-02-04 Havoc Pennington <hp@redhat.com>
4791 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4792 g_quark_try_string() so it actually can return 0
4793 (dbus_g_proxy_connect_signal): ditto
4795 2005-02-04 Havoc Pennington <hp@redhat.com>
4797 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4799 (tristring_from_message): assert cleanly on null path/interface
4800 (should not be possible though I decided later)
4801 (dbus_g_proxy_dispose): move proxy manager unregistration here
4802 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4803 g_return_if_fail() checks
4805 2005-02-04 Havoc Pennington <hp@redhat.com>
4807 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4809 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4810 (with some minor changes)
4812 * doc/dbus-specification.xml: add deprecated attribute to
4813 introspection format
4815 2005-01-31 Havoc Pennington <hp@redhat.com>
4817 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4818 think it's sort of right
4820 2005-01-30 Havoc Pennington <hp@redhat.com>
4822 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4824 2005-01-30 Havoc Pennington <hp@redhat.com>
4826 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4828 * autogen.sh: change to autotools 1.9
4830 * glib/dbus-gproxy.c: completely change how signals work
4831 (dbus_g_proxy_add_signal): new function to specify signature of a
4833 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4834 and g_warning if the incoming message has the wrong signature.
4836 2005-01-30 Havoc Pennington <hp@redhat.com>
4838 * tools/dbus-names-model.c (have_names_notify): fix this
4840 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4841 up the string array handling a bit
4843 2005-01-30 Havoc Pennington <hp@redhat.com>
4845 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4846 (dbus_g_pending_call_cancel): new function
4848 * dbus/dbus-glib.h: move GType decls for connection/message here;
4849 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4850 here, just kind of rationalizing how we handle all that
4852 * tools/dbus-names-model.c: new file for a tree model listing the
4855 * tools/dbus-tree-view.c (model_new): use proper typing on the
4858 2005-01-30 Havoc Pennington <hp@redhat.com>
4860 * glib/dbus-gmain.c: add a custom GSource back that just checks
4861 whether the message queue has anything in it; otherwise, there are
4862 cases where we won't see messages in the queue since there was no
4863 IO visible to the glib main loop
4865 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4866 increase default message timeout to 25 seconds
4868 2005-01-30 Havoc Pennington <hp@redhat.com>
4870 * test/glib/test-profile.c (no_bus_stop_server): remove the
4871 warning about the g_warning that I just fixed
4873 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4874 custom source, seems to be a lot easier to understand and work
4877 2005-01-30 Havoc Pennington <hp@redhat.com>
4879 I think this main loop thing is conceptually broken, but here are
4880 some band aids. I'll maybe rewrite it in a minute.
4882 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4883 custom GSource, so don't pass it in; confusing
4884 (gsource_server_finalize, gsource_connection_finalize): add
4885 finalize handlers that remove all the watches.
4887 2005-01-30 Havoc Pennington <hp@redhat.com>
4889 * glib/dbus-gobject.c (introspect_properties): fix the XML
4892 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4893 which effectively detects the use of freed messages
4895 * glib/dbus-gobject.c (handle_introspect): modify and return the
4896 reply message instead of the incoming message
4898 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4899 gee, maybe it should SEND THE XML instead of just making a string
4900 and freeing it again ;-)
4902 * tools/dbus-print-message.c (print_message): improve printing of
4905 * configure.in: add debug-glib.service to the output
4907 2005-01-30 Havoc Pennington <hp@redhat.com>
4909 dbus-viewer introspected and displayed the bus driver
4911 * dbus/dbus-object-tree.c
4912 (object_tree_test_iteration): add tests for a handler registered on "/"
4914 * dbus/dbus-object-tree.c
4915 (_dbus_decompose_path): fix to handle path "/" properly
4916 (run_decompose_tests): add tests for path decomposition
4918 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4921 * glib/dbus-gobject.c (handle_introspect): fix quotes
4923 * test/glib/run-test.sh: support launching the bus, then running
4926 * test/glib/test-service-glib.c (main): put in a trivial gobject
4927 subclass and register it on the connection
4929 * bus/driver.c (bus_driver_handle_introspect): implement
4930 introspection of the bus driver service
4932 * dbus/dbus-protocol.h: add #defines for the XML namespace,
4933 identifiers, doctype decl
4935 * bus/driver.c (bus_driver_handle_get_service_owner): handle
4936 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
4937 returning the service unchanged.
4938 (bus_driver_handle_message): remove old check for reply_serial in
4939 method calls, now the message type deals with that
4940 (bus_driver_handle_message): handle NULL interface
4942 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4944 * glib/dbus-gloader-expat.c (description_load_from_string): allow
4947 * tools/dbus-viewer.c: add support for introspecting a service on
4950 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4951 (dbus_g_pending_call_unref): add
4953 2005-01-29 Havoc Pennington <hp@redhat.com>
4955 * tools/dbus-tree-view.c: add support for displaying properties.
4956 (run dbus-viewer with an introspect xml file as arg, then resize
4957 the window so the tree elements show up, not sure what that is)
4959 * glib/dbus-gobject.c (handle_introspect): return
4960 org.freedesktop.Properties and org.freedesktop.Introspectable
4961 interfaces when we are introspected.
4963 * doc/dbus-specification.xml: allow empty interface name when
4966 2005-01-29 Havoc Pennington <hp@redhat.com>
4968 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4969 though it uses glib, it could be extended for any binding in
4972 * glib/dbus-gobject.c (gobject_message_function): change to the
4973 new way properties work
4975 * dbus/dbus-protocol.h: add the new interfaces
4977 * doc/dbus-specification.xml: document the introspection format,
4978 Introspectable interface, and add an org.freedesktop.Properties
4981 * glib/dbus-gparser.c: add support for a <property> element
4983 * glib/dbus-gidl.c: add PropertyInfo
4985 * glib/dbus-gobject.c (handle_introspect): put the outermost
4986 <node> outside the signal and property descriptions.
4987 (introspect_properties): export properties as <property> rather
4988 than as method calls
4990 2005-01-28 Havoc Pennington <hp@redhat.com>
4992 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4993 related to authentication protocol
4995 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
4997 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4998 - BUS_ACTIVATION -> BUS_STARTER
4999 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5000 - class MessageIter (__init__): Added recursion checking
5001 so we throw a nice error instead of just disconnecting from the
5003 (get): Added arg_type parameter for recursion.
5004 Removed the nil type
5005 Added signiture type placeholder (not implemented)
5006 Added struct type placeholder (not implemented)
5007 Added varient type placeholder (not implemented)
5008 Commented out dict type for now
5009 (get_element_type): renamed from get_array_type
5010 (get_*): changed to use the dbus_message_iter_get_basic API
5011 (get_*_array): removed in favor of recursive get_array method
5012 (get_array): new recursive method which calls get to marshal
5013 the elements of the array
5014 (value_to_dbus_sig): New method returns the corrasponding
5015 dbus signiture to a python value
5016 (append): Comment out dict handling for now
5017 Handle lists with the new recursive API
5018 Comment out None handling for now
5019 (append_nil): removed
5020 (append_*): changed to use dbus_message_iter_append_basic API
5021 (append_*_array): removed in favor of recursive append_array
5023 (__str__): Make it easier to print out recursive iterators
5025 - class Message (__str__): moved type inspection to the
5026 MessageIter class' __str__ method
5027 (get_iter): Added an append parameter wich defaults to False
5028 If True use the new API's to create an append iterator
5030 * python/dbus.py: Update to use new bindings API
5031 - TYPE_ACTIVATION -> TYPE_STARTER
5032 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5033 - class ActivationBus -> class StarterBus
5034 - class RemoteObject (__call__): get an append iterator
5035 - (_dispatch_dbus_method_call): get an append iterator
5036 - class Object (emit_signal): get an append iterator
5038 * python/examples/: Fixed up the examples to work with the new API
5040 2005-01-28 Joe Shaw <joeshaw@novell.com>
5042 * configure.in: Bump version up to 0.30.
5044 * HACKING: Add a release item to bump the version number up after
5047 2005-01-28 Havoc Pennington <hp@redhat.com>
5049 * doc/dbus-specification.xml: update to describe 16-bit types and
5052 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5055 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5058 * dbus/dbus-marshal-recursive.c: implement
5060 2005-01-27 Havoc Pennington <hp@redhat.com>
5062 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5064 * configure.in: find the right type for 16 and 32 bit ints as well
5067 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5068 the 16-bit types so people don't have to stuff them in 32-bit or
5071 2005-01-27 Havoc Pennington <hp@redhat.com>
5073 * dbus/dbus-message.c: byteswap the message if you init an
5074 iterator to read/write from it
5076 * dbus/dbus-marshal-byteswap.c: new file implementing
5077 _dbus_marshal_byteswap()
5079 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5081 2005-01-26 Havoc Pennington <hp@redhat.com>
5083 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5084 build, apparently - nobody noticed?)
5086 2005-01-26 Havoc Pennington <hp@redhat.com>
5088 * dbus/dbus-marshal-recursive.h: remove todo comment
5090 2005-01-25 Joe Shaw <joeshaw@novell.com>
5092 * Land the mono binding changes to conform to the new APIs.
5094 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5095 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5097 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5098 type code as a string.
5099 (InitAppending): Rename dbus_message_append_iter_init() to
5100 dbus_message_iter_init_append().
5102 * mono/BusDriver.cs: Rename ServiceEventHandler to
5103 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5104 Rename ServiceOwnerChanged to NameOwnerChanged.
5106 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5109 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5111 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5112 dbus_bus_acquire_service() to dbus_bus_request_name().
5114 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5115 of Type.UnderlyingSystemType to get the correct element type for
5117 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5118 dbus_message_get_{element|arg}_type() instead of
5119 dbus_message_iter_init_array_iterator().
5120 (Append): Replace dbus_message_iter_append_array() with
5121 dbus_message_iter_open_container() and
5122 dbus_message_iter_close_container().
5124 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5125 types have been removed.
5127 * mono/DBusType/*.cs: Replace calls of
5128 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5129 but specify the type in the DllImport extern declaration. Ditto
5130 for dbus_message_iter_append_[type]() ->
5131 dbus_message_iter_append_basic().
5133 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5134 NameOwnerChangedHandler.
5136 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5138 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5139 - get_base_service -> get_unique_name
5140 - bus_get_base_service -> bus_get_unique_name
5141 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5142 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5143 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5144 - bus_activate_service -> bus_start_service_by_name
5145 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5146 - bus_acquire_service -> bus_request_name
5147 - dbus_bus_acquire_service -> dbus_bus_request_name
5148 - bus_service_exists -> bus_name_has_owner
5149 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5151 * python/dbus.py: Rename of methods
5152 - activate_service -> start_service_by_name
5153 - bus_acquire_service -> bus_request_name
5154 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5155 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5158 2005-01-24 Joe Shaw <joeshaw@novell.com>
5160 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5161 signature for the method that can't be found.
5163 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5164 the message has any arguments, we need to call
5165 _dbus_type_reader_get_current_type(), not
5166 _dbus_type_reader_has_next().
5168 2005-01-24 Havoc Pennington <hp@redhat.com>
5170 * dbus/dbus-message-factory.c: more testing of message validation
5172 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5175 2005-01-23 Havoc Pennington <hp@redhat.com>
5177 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5178 get this all working, not many tests in the framework yet though
5180 2005-01-22 Havoc Pennington <hp@redhat.com>
5182 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5183 tutorial, based on work from David Wheeler.
5185 2005-01-21 Havoc Pennington <hp@redhat.com>
5187 * dbus/dbus-bus.c: add more return_if_fail checks
5189 * dbus/dbus-message.c (load_message): have the "no validation"
5190 mode (have to edit the code to toggle the mode for now though)
5192 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5193 skips all validation; I want to use this at least for benchmark
5194 baseline, I'm not sure if it should be a publicly-available switch.
5196 2005-01-21 Havoc Pennington <hp@redhat.com>
5198 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5199 toplevel doxygen group as the low-level API stuff
5201 * dbus/dbus.h: note that libdbus is the low-level API
5203 2005-01-20 Havoc Pennington <hp@redhat.com>
5205 * update-dbus-docs.sh: script to update docs on the web site, only
5206 works for me though. neener.
5208 2005-01-20 Havoc Pennington <hp@redhat.com>
5210 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5211 code can reveal bugs in it
5213 2005-01-20 Havoc Pennington <hp@redhat.com>
5215 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5216 select() version, patches from Tor Lillqvist
5218 2005-01-20 Havoc Pennington <hp@redhat.com>
5220 * doc/dbus-tutorial.xml: replace > with >
5222 * bus/services.c (bus_registry_acquire_service): validate the name
5223 and return a better error if it's no good.
5225 * doc/dbus-specification.xml: note NO_AUTO_START change
5227 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5228 from AUTO_START, we're toggling the default
5230 * bus/dispatch.c: adapt the tests to change of auto-start default
5232 2005-01-18 Havoc Pennington <hp@redhat.com>
5234 * rename dbus-daemon-1 to dbus-daemon throughout
5236 2005-01-18 Havoc Pennington <hp@redhat.com>
5238 * Throughout, grand renaming to strip out the use of "service",
5239 just say "name" instead (or "bus name" when ambiguous). Did not
5240 change the internal code of the message bus itself, only the
5241 programmer-facing API and messages.
5243 * doc/dbus-specification.xml: further update the message bus section
5245 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5248 2005-01-17 Havoc Pennington <hp@redhat.com>
5250 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5253 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5254 "invalid name character" not only non-ASCII
5256 * doc/dbus-specification.xml: further update spec, message bus
5257 parts are still out-of-date but the marshaling etc. stuff is now
5260 2005-01-17 Havoc Pennington <hp@redhat.com>
5262 * doc/dbus-specification.xml: partially update spec
5264 2005-01-17 Havoc Pennington <hp@redhat.com>
5266 * Throughout, align variant bodies according to the contained
5267 type, rather than always to 8. Should save a fair bit of space in
5270 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5271 fix handling of case where p == end
5273 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5275 2005-01-17 Havoc Pennington <hp@redhat.com>
5277 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5279 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5280 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5281 are marshaling/unmarshaling a boolean.
5283 2005-01-16 Havoc Pennington <hp@redhat.com>
5285 This is about it on what can be disabled/deleted from libdbus
5286 easily, back below 150K anyhow. Deeper cuts are more work than
5287 just turning the code off as I've done here.
5289 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5290 signed int convenience funcs
5292 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5295 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5296 things out of libdbus
5298 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5300 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5301 tests-enabled-only, though it should probably be deleted)
5303 * dbus/dbus-message-util.c: same stuff
5305 * dbus/dbus-auth-util.c: same stuff
5307 2005-01-16 Havoc Pennington <hp@redhat.com>
5309 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5311 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5312 way for stripping down dbus-userdb.c stuff included in libdbus.
5313 Rename _dbus_parse_uid for consistency.
5315 2005-01-16 Havoc Pennington <hp@redhat.com>
5317 * dbus/dbus-internals.c (_dbus_real_assert): print the function
5318 name the assertion failed in
5320 * dbus/dbus-internals.h (_dbus_return_if_fail)
5321 (_dbus_return_val_if_fail): assert that the name of the function
5322 containing the check doesn't start with '_', since we only want to
5323 use checks on public functions
5325 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5326 checks to assertions
5328 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5329 change checks to asserts for private function
5331 * dbus/dbus-message.c (_dbus_message_set_serial): checks
5332 to asserts for private function
5334 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5335 broken assertion that was breaking make check
5336 (_dbus_type_reader_array_is_empty): remove this rather than fix
5337 it, was only used in assertions
5339 2005-01-16 Havoc Pennington <hp@redhat.com>
5341 * test/unused-code-gc.py: hacky script to find code that's used
5342 only by the bus (not libdbus) or used only by tests or not used at
5343 all. It has some false alarms, but looks like we can clean up a
5344 lot of size from libdbus.
5346 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5347 dbus/Makefile.am: initially move 10K of binary size out of libdbus
5349 2005-01-16 Havoc Pennington <hp@redhat.com>
5351 * Add and fix docs according to Doxygen warnings throughout
5354 * dbus/dbus-marshal-recursive.c
5355 (_dbus_type_reader_array_is_empty): change this to just call
5356 array_reader_get_array_len() and make it static
5358 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5360 (dbus_message_iter_init_append): rename from append_iter_init
5362 * dbus/dbus-marshal-recursive.c
5363 (_dbus_type_reader_get_element_type): rename from
5364 _dbus_type_reader_get_array_type
5366 2005-01-15 Havoc Pennington <hp@redhat.com>
5368 * test/glib/test-profile.c (with_bus_server_filter): fix crash
5370 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5371 when DBUS_DISABLE_ASSERT
5372 (_dbus_marshal_set_basic): be sure we align for the string length
5374 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5377 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5378 inline macro version
5379 (_dbus_string_set_byte): provide inline macro version
5381 2005-01-15 Havoc Pennington <hp@redhat.com>
5383 * Land the new message args API and type system.
5385 This patch is huge, but the public API change is not
5386 really large. The set of D-BUS types has changed somewhat,
5387 and the arg "getters" are more geared toward language bindings;
5388 they don't make a copy, etc.
5390 There are also some known issues. See these emails for details
5392 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5393 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5395 * dbus/dbus-marshal-*: all the new stuff
5397 * dbus/dbus-message.c: basically rewritten
5399 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5400 freed blocks to be all non-nul bytes so using freed memory is less
5401 likely to work right
5403 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5404 DBUS_FAIL_MALLOC=N environment variable, so you can do
5405 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5406 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5409 * qt/message.cpp: port to the new message args API
5410 (operator<<): use str.utf8() rather than str.unicode()
5411 (pretty sure this is right from the Qt docs?)
5413 * glib/dbus-gvalue.c: port to the new message args API
5415 * bus/dispatch.c, bus/driver.c: port to the new message args API
5417 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5418 "locked" flag to TRUE and align_offset to 0; I guess we never
5419 looked at these anyhow, but seems cleaner.
5421 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5422 move allocation padding macro to this header; use it to implement
5423 (_DBUS_STRING_STATIC): ability to declare a static string.
5425 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5426 change to return TRUE if the interface is not set.
5428 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5429 to dbus-marshal-validate.[hc]
5431 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5434 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5435 to dbus-marshal-*.[hc]
5437 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5438 function here from dbus-marshal.c
5440 2005-01-12 Joe Shaw <joeshaw@novell.com>
5442 * NEWS: Update for 0.23.
5444 * configure.in: Release 0.23.
5446 2005-01-12 Joe Shaw <joeshaw@novell.com>
5448 * mono/Makefile.am, mono/example/Makefile.am: Always build the
5449 dbus DLL with --debug. Clean up after the .mdb files this leaves
5452 * mono/doc/Makefile.am: Need to uninstall the docs on "make
5455 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5456 is an enum, get the enum's underlying type. Another mono
5459 2005-01-11 Joe Shaw <joeshaw@novell.com>
5461 Patch from Sjoerd Simons <sjoerd@luon.net>
5463 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5464 DESTDIR. It breaks stuff.
5466 2005-01-11 Joe Shaw <joeshaw@novell.com>
5468 Patch from Tambet Ingo <tambet@ximian.com>
5470 * mono/DBusType/Array.cs (Get): Get the underlying element type by
5471 calling type.GetElementType(). The code previously depended on
5472 broken Mono behavior, which was fixed in Mono 1.1.3.
5474 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5475 Activator.CreateInstance() so that the class's constructor is
5476 called with the right parameters.
5478 2005-01-11 Joe Shaw <joeshaw@novell.com>
5480 Patch from Timo Teräs <ext-timo.teras@nokia.com>
5482 * dbus/dbus-connection.c
5483 (_dbus_connection_queue_received_message_link): Call
5484 _dbus_connection_remove_timeout() instead of the _locked()
5485 variant, since it's always called from
5486 _dbus_connection_handle_watch(), which handles the locking.
5487 Removed the _locked() variant since it's no longer used.
5489 2005-01-03 Havoc Pennington <hp@redhat.com>
5491 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5494 2004-12-26 Havoc Pennington <hp@redhat.com>
5496 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5498 2005-01-03 Havoc Pennington <hp@redhat.com>
5500 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5503 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5505 2005-01-02 Havoc Pennington <hp@redhat.com>
5507 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5509 2005-01-01 Havoc Pennington <hp@redhat.com>
5511 * configure.in: add -Wfloat-equal
5513 2005-01-01 Havoc Pennington <hp@redhat.com>
5515 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
5516 for a variety of reasons '==' doesn't do this.
5518 2004-12-31 Havoc Pennington <hp@redhat.com>
5520 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5521 I keep wishing I had
5523 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5525 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5527 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5529 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5530 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5531 dbus-protocol.h. Because they are defines and not enums they are not
5534 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
5536 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5537 dbus_bus_activate_service
5539 * python/dbus.py (Bus.activate_service): activate a service on the
5542 2004-12-24 Havoc Pennington <hp@redhat.com>
5544 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5545 file format has also changed and I haven't adapted to that yet
5547 * Makefile.am: load .gcno files from latest gcc
5549 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
5550 * Patch from Rob Taylor <robtaylor@fastmail.fm>
5552 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5555 * python/dbus.py (get_unix_user): Added binding to
5556 call dbus_bindings.bus_get_unix_user
5558 * python/extract.py: Modified the proto_pat regex to
5559 handle unsigned long
5561 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5563 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5564 better POSIX compliance.
5566 2004-12-19 Havoc Pennington <hp@redhat.com>
5568 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
5569 (_dbus_string_insert_8_aligned): new functions
5571 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5573 2004-12-18 Havoc Pennington <hp@redhat.com>
5575 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5578 * dbus/dbus-message.c: fix a comment, and add a still-unused
5579 not-implemented function
5581 * dbus/dbus-marshal.h: fix comment
5583 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5585 2004-12-17 Joe Shaw <joeshaw@novell.com>
5587 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5588 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5589 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5590 Type.UnderlyingSystemType to get the actual system type
5591 underneath. This code previously depended on the broken Mono
5592 behavior, which was fixed in 1.1.3.
5594 2004-11-27 Havoc Pennington <hp@redhat.com>
5596 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5598 (_dbus_string_get_const_data): inline when asserts are disabled
5600 * dbus/dbus-message.c: record the _dbus_current_generation of
5601 creation so we can complain if dbus_shutdown() is used improperly.
5602 Do this only if checks are enabled.
5604 * dbus/dbus-connection.c: ditto
5606 2004-11-26 Havoc Pennington <hp@redhat.com>
5608 * test/glib/test-profile.c: add with_bus mode to profile echoes
5609 that go through the bus.
5611 * test/glib/run-test.sh: add ability to run test-profile
5613 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5616 2004-11-26 Havoc Pennington <hp@redhat.com>
5618 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5619 thing was implemented
5621 2004-11-26 Havoc Pennington <hp@redhat.com>
5623 * test/glib/test-profile.c: tweak a bit, add support for some
5624 made-up minimal malloc overhead with plain sockets, since in
5625 real life some sort of buffers are unavoidable thus we could
5626 count them in the theoretical best case
5628 2004-11-26 Havoc Pennington <hp@redhat.com>
5630 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5631 where I was trying to cache one too many messages
5633 2004-11-26 Havoc Pennington <hp@redhat.com>
5635 * dbus/dbus-message.c: reimplement message cache as an array which
5636 makes the cache about twice as fast and saves maybe 1.5% overall
5638 2004-11-26 Havoc Pennington <hp@redhat.com>
5640 * dbus/dbus-threads.c (init_global_locks): forgot to put the
5641 message cache lock here
5643 2004-11-26 Havoc Pennington <hp@redhat.com>
5645 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5646 the "char byte_order" next to each other to save 4 bytes
5647 (dbus_message_new_empty_header): reduce preallocation, since the
5648 message cache should achieve a similar effect
5649 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5650 message cache that keeps a few DBusMessage around in a pool,
5651 another 8% speedup or so.
5653 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5655 2004-11-25 Havoc Pennington <hp@redhat.com>
5657 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5658 to write, without reading or blocking, try it before the poll()
5659 and skip the poll() if nothing remains to write. This is about a
5660 3% speedup in the echo client/server
5662 2004-11-25 Havoc Pennington <hp@redhat.com>
5664 The primary change here is to always write() once before adding
5665 the write watch, which gives us about a 10% performance increase.
5667 * dbus/dbus-transport-unix.c: a number of modifications to cope
5668 with removing messages_pending
5669 (check_write_watch): properly handle
5670 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5671 messages_pending stuff
5672 (check_read_watch): properly handle WAITING_FOR_MEMORY and
5674 (unix_handle_watch): after writing, see if the write watch can be
5676 (unix_do_iteration): assert that write_watch/read_watch are
5677 non-NULL rather than testing that they aren't, since they
5678 aren't allowed to be NULL. check_write_watch() at the end so
5679 we add the watch if we did not finish writing (e.g. got EAGAIN)
5681 * dbus/dbus-transport-protected.h: remove messages_pending call,
5682 since it resulted in too much inefficient watch adding/removing;
5683 instead we now require that the transport user does an iteration
5684 after queueing outgoing messages, and after trying the first
5685 write() we add a write watch if we got EAGAIN or exceeded our
5686 max bytes to write per iteration setting
5688 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5691 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5692 freed and then accessed, valgrind flagged this bug, fix it
5694 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5695 as the last valid field plus 1, where really it is equal to the
5696 last valid field. Corrects some message corruption issues.
5698 * dbus/dbus-mainloop.c: verbosity changes
5700 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5701 instead of aborting in one of the test codepaths
5703 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5704 caused not printing the pid ever again if a verbose was missing
5705 the newline at the end
5706 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5708 * dbus/dbus-connection.c: verbosity changes;
5709 (dbus_connection_has_messages_to_send): new function
5710 (_dbus_connection_message_sent): no longer call transport->messages_pending
5711 (_dbus_connection_send_preallocated_unlocked): do one iteration to
5712 try to write() immediately, so we can avoid the write watch. This
5713 is the core purpose of this patchset
5714 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5715 dump the outgoing message queue, so nobody will get confused
5716 trying to send them or thinking stuff is pending to be sent
5718 * bus/test.c: verbosity changes
5720 * bus/driver.c: verbosity/assertion changes
5722 * bus/dispatch.c: a bunch of little tweaks to get it working again
5723 because this patchset changes when/where you need to block.
5725 2004-11-23 Havoc Pennington <hp@redhat.com>
5727 * test/glib/test-profile.c: modify to accept a plain_sockets
5728 argument in which case it will bench plain sockets instead of
5729 libdbus, for comparison purposes.
5731 2004-11-22 Havoc Pennington <hp@redhat.com>
5733 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5734 threads for more time, so sysprof can get a grip on it.
5736 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5739 2004-11-13 Havoc Pennington <hp@redhat.com>
5741 * test/glib/test-profile.c: fix this thing up a bit
5743 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5744 preallocation sizes by a fair bit; not sure if this will be an
5745 overall performance win or not, but it does reduce reallocs.
5747 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5748 the test hack that forced constant realloc if asserts are
5749 disabled, so we can profile sanely. Sprinkle in some
5750 _DBUS_UNLIKELY() which are probably pointless, but before I
5751 noticed the real performance problem I put them in.
5752 (_dbus_string_validate_utf8): micro-optimize this thing a little
5753 bit, though callgrind says it didn't help; then special-case
5754 ascii, which did help a lot; then be sure we detect nul bytes as
5755 invalid, which is a bugfix.
5756 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5757 superstition; use memset to nul the padding instead of a manual
5759 (_dbus_string_get_length): inline this as a
5760 macro; it showed up in the profile because it's used for loop
5763 2004-11-10 Colin Walters <walters@verbum.org>
5765 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5768 2004-11-09 Colin Walters <walters@verbum.org>
5770 * dbus/dbus-string.c (_dbus_string_get_length): New
5771 function, writes DBusString to C buffer.
5773 * dbus/dbus-string.h: Prototype it.
5775 * dbus/dbus-message.c (dbus_message_type_to_string): New
5776 function, converts message type into C string.
5778 * dbus/dbus-message.h: Prototype it.
5780 * bus/selinux.c (bus_selinux_check): Take source pid,
5781 target pid, and audit data. Pass audit data to
5783 (log_audit_callback): New function, appends extra
5785 (bus_selinux_allows_acquire_service): Also take
5786 service name, add it to audit data.
5787 (bus_selinux_allows_send): Also take message
5788 type, interface, method member, error name,
5789 and destination, and add them to audit data.
5790 (log_cb): Initialize func_audit.
5792 * bus/selinux.h (bus_selinux_allows_acquire_service)
5793 (bus_selinux_allows_send): Update prototypes
5795 * bus/services.c (bus_registry_acquire_service): Pass
5796 service name to bus_selinux_allows_acquire_service.
5798 * bus/bus.c (bus_context_check_security_policy): Pass
5799 additional audit data. Move assignment of dest
5802 2004-11-07 Colin Walters <walters@verbum.org>
5804 * dbus/dbus-transport-unix.c (do_authentication): Always
5805 initialize auth_completed.
5807 2004-11-07 Colin Walters <walters@verbum.org>
5809 * bus/bus.c (load_config): Break into three
5810 separate functions: process_config_first_time_only,
5811 process_config_every_time, and process_config_postinit.
5812 (process_config_every_time): Move call of
5813 bus_registry_set_service_context_table into
5814 process_config_postinit.
5815 (process_config_postinit): New function, does
5816 any processing that needs to happen late
5817 in initialization (and also on reload).
5818 (bus_context_new): Instead of calling load_config,
5819 open config parser here and call process_config_first_time_only
5820 and process_config_every_time directly. Later, after
5821 we have forked but before changing UID,
5822 invoke bus_selinux_full_init, and then call
5823 process_config_postinit.
5824 (bus_context_reload_config): As in bus_context_new,
5825 load parse file inside here, and call process_config_every_time
5826 and process_config_postinit.
5828 * bus/services.h, bus/services.c
5829 (bus_registry_set_service_context_table): Rename
5830 from bus_registry_set_sid_table. Take string hash from config
5831 parser, and convert them here into SIDs.
5833 * bus/config-parser.c (struct BusConfigParser): Have
5834 config parser only store a mapping of service->context
5836 (merge_service_context_hash): New function.
5837 (merge_included): Merge context string hashes instead
5838 of using bus_selinux_id_table_union.
5839 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5840 simply create a new string hash.
5841 (bus_config_parser_unref): Unref it.
5842 (start_selinux_child): Simply insert strings into hash,
5843 don't call bus_selinux_id_table_copy_over.
5845 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5846 (bus_selinux_id_table_copy_over): Delete.
5848 2004-11-03 Colin Walters <walters@verbum.org>
5850 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5853 2004-11-03 Colin Walters <walters@verbum.org>
5855 * bus/test-main.c (test_pre_hook): Fix test logic,
5856 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5858 2004-11-02 Colin Walters <walters@redhat.com>
5860 * bus/selinux.c (bus_selinux_init): Split into two functions,
5861 bus_selinux_pre_init and bus_selinux_post_init.
5862 (bus_selinux_pre_init): Just determine whether SELinux is
5864 (bus_selinux_post_init): Do everything else.
5866 * bus/main.c (main): Call bus_selinux_pre_init before parsing
5867 config file, and bus_selinux_post_init after. This ensures that
5868 we don't lose the policyreload notification thread that
5869 bus_selinux_init created before forking previously.
5871 * bus/test-main.c (test_pre_hook): Update for split.
5873 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
5875 Patch from Johan Fischer <linux@fischaz.com>
5877 * mono/doc/Makefile.am (install-data-local): Added directory
5880 2004-10-29 Colin Walters <walters@redhat.com>
5882 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5883 parameter for fd to write pid to.
5885 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5887 * bus/bus.c (bus_context_new): Pass print_pid_fd
5888 to _dbus_become_daemon (bug #1720)
5890 2004-10-29 Colin Walters <walters@redhat.com>
5892 Patch from Ed Catmur <ed@catmur.co.uk>
5894 * mono/doc/Makefile.am (install-data-local): Handle
5897 2004-10-29 Colin Walters <walters@redhat.com>
5899 * bus/.cvsignore, qt/.cvsignore: Update.
5901 2004-10-29 Colin Walters <walters@redhat.com>
5903 Patch from Kristof Vansant <de_lupus@pandora.be>
5905 * configure.in: Detect Slackware.
5906 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5907 * bus/rc.messagebus.in: New file.
5909 2004-10-29 Colin Walters <walters@redhat.com>
5911 * tools/dbus-monitor.c (filter_func): Return
5912 DBUS_HANDLER_RESULT_HANDLED in filter function
5914 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5916 2004-10-29 Colin Walters <walters@redhat.com>
5918 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5920 * bus/services.c (bus_registry_acquire_service):
5921 Correctly retrieve service name from DBusString
5924 2004-10-29 Colin Walters <walters@redhat.com>
5926 * dbus/dbus-glib.h: Update documentation to not
5927 refer to internal APIs.
5929 2004-10-27 Joe Shaw <joeshaw@novell.com>
5931 * mono/Arguments.cs (GetDBusTypeConstructor):
5932 type.UnderlyingSystemType will return "System.Byte" if you do it
5933 on "byte[]", which is not what we want. So check the type.IsArray
5934 property and use System.Array instead.
5936 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
5938 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5939 the DBusUserInfo structure since this is passed into the function.
5940 This would cause a double free when the function that allocated
5941 the structure would try to free it when an error occured.
5943 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5944 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5945 for service activation to avoid 32bit/64bit parallel install issues
5947 2004-10-21 Colin Walters <walters@verbum.org>
5949 * AUTHORS: Fix my email address, the @gnu.org one
5950 has been bouncing for some time. Also add J5.
5952 2004-10-21 Colin Walters <walters@verbum.org>
5954 * dbus/dbus-transport-unix.c (do_authentication): Return
5955 authentication status to callers.
5956 (unix_handle_watch): If we completed authentication this round,
5957 don't do another read. Instead wait until the next iteration,
5958 after we've read any pending data in the auth buffer.
5959 (unix_do_iteration): Ditto.
5960 (unix_handle_watch): Updated for new do_authentication prototype.
5962 2004-10-18 Colin Walters <walters@verbum.org>
5964 * bus/selinux.c (bus_selinux_enabled): Handle
5965 --disable-selinux case.
5967 2004-10-18 Colin Walters <walters@verbum.org>
5969 * bus/selinux.h: Add bus_selinux_enabled.
5971 * bus/selinux.c (bus_selinux_enabled): Implement it.
5973 * bus/config-parser.c (struct include): Add
5974 if_selinux_enabled member.
5975 (start_busconfig_child): Parse if_selinux_enabled
5976 attribute for include.
5977 (bus_config_parser_content): Handle it.
5979 * bus/session.conf.in, bus/system.conf.in: Add
5980 inclusion of context mapping to default config files;
5981 conditional on SELinux being enabled.
5983 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5985 * test/data/invalid-config-files/badselinux-1.conf,
5986 test/data/invalid-config-files/badselinux-2.conf:
5987 Test files for bad syntax.
5989 2004-10-17 Colin Walters <walters@verbum.org>
5991 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5992 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5993 format specifier mismatches.
5995 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
5997 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6000 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6001 pointer (bug #1540, Leonardo Boiko).
6003 2004-09-28 Jon Trowbridge <trow@ximian.com>
6005 * mono/BusDriver.cs: Changed BusDriver struct to remove
6006 the ServiceCreated and ServiceDeleted events and replace them
6007 with the new ServiceOwnerChanged event.
6009 * mono/example/BusListener.cs: Added a new example program,
6010 which listens for and reports any ServiceOwnerChanged events
6013 * mono/example/Makefile.am (DESTDIR): Build changes for the
6014 new BusListener.cs example.
6016 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6018 * bus/signals.c (bus_match_rule_parse): validate the components of
6019 match rules (bug #1439).
6021 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6023 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6025 * doc/dbus-specification.xml: document ServiceOwnerChanged
6028 * bus/driver.c, bus/driver.h, bus/services.c: Use
6029 ServiceOwnerChanged signal instead of ServiceCreated and
6032 * bus/dispatch.c: update testcase for the new signal.
6034 2004-09-20 Jon Trowbridge <trow@ximian.com>
6036 Patch from Nat Friedman <nat@novell.com>
6038 * mono/Makefile.am: A number of small build fixes to allow "make
6039 distcheck" to succeed.
6041 * mono/example/Makefile.am: "make distcheck" fixes.
6043 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6046 * test/Makefile.am: "make distcheck" fixes.
6048 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6050 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6052 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6054 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6055 messages after the first one (bug #1389).
6057 * bus/dispatch.c (check_double_hello_message): add a test case for
6058 the double hello message bug.
6059 (check_existent_service_activation): fix check of spawning error.
6061 2004-09-16 David Zeuthen <david@fubar.dk>
6063 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6065 2004-09-12 David Zeuthen <david@fubar.dk>
6067 Patch from Kay Sievers <kay.sievers@vrfy.org>
6069 * bus/bus.c (bus_context_new):
6071 * bus/main.c (usage)
6073 Add commandline option --nofork to override configuration file
6076 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6078 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6079 compilers don't like it (bug #974).
6081 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6083 * qt/connection.*: Applied patch by Jérôme Lodewyck
6084 <lodewyck@clipper.ens.fr> to integrate an existing
6085 connection into the Qt eventloop
6087 2004-08-30 Jon Trowbridge <trow@ximian.com>
6089 * mono/BusDriver.cs: Added. This is a class for interacting with
6090 the org.freedesktop.DBus service.
6092 * mono/Message.cs: Added a mechanism to expose the message that is
6093 currently being dispatched via the static Message.Current
6094 property. Added Message.Sender and Message.Destination
6097 * mono/Handler.cs: Expose the dispatched message via
6098 Message.Current when handling method calls.
6100 * mono/Service.cs: Expose the dispatched message via
6101 Message.Current when handling signal emissions.
6103 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6104 Connection.BaseService property.
6106 2004-08-28 Havoc Pennington <hp@redhat.com>
6108 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6110 More fixes from Steve Grubb
6112 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6113 (_dbus_listen_tcp_socket): fix fd leak
6115 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6116 EINTR to a bit lower in the code
6118 2004-08-26 Jon Trowbridge <trow@ximian.com>
6120 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6121 TRUE if we are inquiring about the existence of the built-in
6122 org.freedesktop.DBus service.
6124 2004-08-25 John Palmieri <johnp@redhat.com>
6125 * bus/config-parser.c:
6126 (struct PolicyType): Add POLICY_CONSOLE
6127 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6128 (start_busconfig_child): Sets up console element when
6129 <policy at_console=""> is encountered in a policy file
6130 (append_rule_from_element): Convert console elements to console
6134 (bus_policy_create_client_policy): Add console rules to the client
6135 policy based on if the client is at the console
6136 (bus_policy_append_console_rule): New function for adding a
6137 console rule to a policy
6138 (bus_policy_merge): Handle console rule merging
6140 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6141 where we check for console user files
6143 * dbus/dbus-sysdeps.c:
6144 (_dbus_file_exists): New function which checks if the given
6146 (_dbus_user_at_console): New function which does the system
6147 specific process of checking if the user is at the console
6149 * dbus/dbus-userdb.c:
6150 (_dbus_is_console_user): New function converts a UID to user name
6151 and then calls the system specific _dbus_user_at_console to
6152 see if the user is at the console and therefor a console user
6154 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6156 * bus/config-parser.c (set_limit):
6157 * bus/dbus-daemon-1.1.in:
6158 * test/data/valid-config-files/many-rules.conf: set the
6159 max_match_rules_per_connection limt from the config file.
6161 * doc/busconfig.dtd: update the DTD.
6163 * bus/driver.c: remove some unused variables.
6165 2004-08-24 Mikael Hallendal <micke@imendio.com>
6167 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6168 it's been replaced by dbus_g_bus_get
6170 2004-08-23 Colin Walters <walters@redhat.com>
6172 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6174 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6176 * bus/selinux.c: Create a thread for policy reload notification.
6177 (bus_selinux_get_policy_root): Implement.
6179 * bus/config-parser.c (start_busconfig_child)
6180 (bus_config_parser_content): Support SELinux-root relative
6183 * configure.in <HAVE_SELINUX>: Add -lpthread.
6185 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6186 (test_post_hook): Move memory checking into here.
6187 (test_pre_hook, test_post_hook): Move SELinux checks in
6188 here, but conditional on a DBUS_TEST_SELINUX environment
6189 variable. Unfortunately we can't run the SELinux checks
6190 as a normal user, since they won't have any permissions
6191 for /selinux. So this will have to be tested manually
6192 for now, until we have virtualization for most of
6195 2004-08-23 Havoc Pennington <hp@redhat.com>
6197 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6198 drop supplementary groups, suggested by Steve Grubb
6200 2004-08-20 Colin Walters <walters@redhat.com>
6202 * bus/config-parser.c (start_busconfig_child): Remove some unused
6205 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6208 2004-08-17 Joe Shaw <joeshaw@novell.com>
6210 * configure.in: If --enable-mono is passed in, if we can't find
6213 * mono/Makefile.am: Use /gacutil to install assemblies into the
6216 2004-08-12 Havoc Pennington <hp@redhat.com>
6218 * NEWS: update for 0.22
6220 * configure.in: release 0.22
6222 2004-08-11 Colin Walters <walters@redhat.com>
6224 * tools/dbus-send.c (main, usage): Add --reply-timeout
6227 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6229 * bus/bus.c (process_config_first_time_only): get rid of an unused
6230 DBusError that was causing a memoy leak (bug #989).
6232 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6233 fix compilation on Solaris/Forte C (bug #974)
6235 * bus/main.c (main): plug two minuscule memleaks.
6237 2004-08-10 Havoc Pennington <hp@redhat.com>
6239 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6241 2004-08-09 Havoc Pennington <hp@redhat.com>
6243 * COPYING: switch to Academic Free License version 2.1 instead of
6244 2.0, to resolve complaints about patent termination clause.
6246 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6248 * README: added documentation for the --enable-python
6251 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6253 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6254 _unref in the SELinux support.
6256 * doc/busconfig.dtd: update DTD for SELinux support.
6258 * bus/config-loader-libxml.c: fix error handler and parser
6259 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6261 * configure.in: remove the warning about libxml2.
6263 * dbus/dbus-bus.c: silence doxygen warning.
6265 2004-07-31 Colin Walters <walters@redhat.com>
6267 * configure.in: Move #error in SELinux check to its own line.
6269 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6271 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6272 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6275 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6276 broken by the change in the _SET_OOM macros.
6278 2004-07-31 Colin Walters <walters@redhat.com>
6280 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6283 2004-07-31 Colin Walters <walters@redhat.com>
6285 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6286 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6289 2004-07-24 Havoc Pennington <hp@redhat.com>
6291 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6293 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6296 * configure.in: add --enable-selinux
6298 * bus/policy.c (bus_policy_merge): add FIXME to a comment
6300 * bus/main.c (main): initialize and shut down selinux
6302 * bus/connection.c: store SELinux ID on each connection, to avoid
6303 repeated getting of the string context and converting it into
6306 * bus/bus.c (bus_context_get_policy): new accessor, though it
6308 (bus_context_check_security_policy): check whether the security
6309 context of sender connection can send to the security context of
6310 recipient connection
6312 * bus/config-parser.c: add parsing for <selinux> and <associate>
6314 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6315 implement dbus_connection_get_unix_fd()
6317 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6318 function, used by the selinux stuff
6320 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
6322 * bus/config-loader-libxml.c: complete the implementation of
6323 libxml backend for config file loader. Doesn't work with full OOM
6326 * configure.in: change error when selecting libxml into a warning.
6328 * test/data/invalid-config-files: add two non-well-formed XML
6331 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6333 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6334 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6335 be necessary to read all the buffer. (bug #894)
6337 * bus/activation.c (bus_activation_activate_service): fix a
6338 potential assertion failure (bug #896). Small optimization in the
6339 case of auto-activation messages.
6341 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6342 add test case for byte-through-vararg bug (#901). patch by Kimmo
6345 2004-07-28 Anders Carlsson <andersca@gnome.org>
6348 * python/dbus_bindings.pyx.in:
6349 Add dbus.init_gthreads (), allow emit_signal to pass
6350 arguments to the signal.
6352 2004-07-24 Havoc Pennington <hp@redhat.com>
6354 * AUTHORS: add some people, not really comprehensively, let me
6355 know if I missed you
6357 2004-07-24 Havoc Pennington <hp@redhat.com>
6359 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6362 * test/Makefile.am (DIST_SUBDIRS): here also
6364 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6366 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6367 breaking build on Solaris, reported by Farhad Saberi on the ML.
6369 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6370 va_arg invocation to account for integer promotion in the case of
6371 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6373 * bus/services.c (bus_service_remove_owner): fix bug #902, use
6374 _dbus_list_get_first_link, not _dbus_list_get_first.
6376 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6378 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6379 handler functions so that the asserts in _dbus_object_subtree_unref
6382 * dbus/dbus-transport-unix.c (do_reading):
6383 _dbus_transport_queue_messages return value is of type
6384 dbus_bool_t, not DBusDispatchStatus.
6386 2004-07-19 David Zeuthen <david@fubar.dk>
6388 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6391 (check_get_connection_unix_user): Debug says GetProperty; but the
6392 method is called GetConnectionUnixUser
6393 (check_get_connection_unix_process_id): New function
6394 (bus_dispatch_test): Actually call check_get_connection_unix_user();
6395 also call check_get_connection_unix_process_id()
6398 (bus_driver_handle_get_connection_unix_process_id): New function,
6399 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6403 (handle_server_data_external_mech): Set pid from the credentials
6404 obtained from the socket
6406 * dbus/dbus-connection.c:
6407 (dbus_connection_get_unix_process_id): New function
6409 * dbus/dbus-connection.h:
6410 Add prototype for dbus_connection_get_unix_process_id
6412 * dbus/dbus-transport.c:
6413 (_dbus_transport_get_unix_process_id): New function
6415 * dbus/dbus-transport.h:
6416 Add prototype for _dbus_transport_get_unix_process_id
6418 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
6420 * dbus/dbus-message.c: Message counter fix, patch by Christian
6421 Hammond <chipx86@gnupdate.org>
6423 2004-07-18 Seth Nickell <seth@gnome.org>
6426 * python/dbus_bindings.pyx.in:
6427 * python/tests/test-client.py:
6429 Add dbus.ByteArray and dbus_bindings.ByteArray
6430 types so that byte streams can be passed back.
6432 Give jdahlin the heaps of credit that are so
6435 2004-07-12 Seth Nickell <seth@gnome.org>
6439 Add message argument to the default object_method_handler
6442 * python/dbus_bindings.pyx.in:
6444 Automatically return NIL when passed an empty list
6445 (we can't pass back a list since lists are typed
6446 and we don't have any idea what type the the client
6447 intended the list to be... :-( )
6449 2004-07-10 Seth Nickell <seth@gnome.org>
6451 * python/examples/Makefile.am:
6453 Fix distcheck breakage caused by new examples.
6455 2004-07-10 Seth Nickell <seth@gnome.org>
6459 Add "message" argument to service-side dbus.Object
6460 methods. This will break existing services written
6461 using the python bindings, but will allow extraction
6462 of all the message information (e.g. who its from).
6464 Add improved "object oriented" signal handling/emission.
6466 * python/examples/example-service.py:
6470 * python/examples/example-signal-emitter.py:
6471 * python/examples/example-signal-recipient.py:
6473 Two new examples that show how to emit and receive
6474 signals using the new APIs.
6476 * python/examples/example-signals.py:
6477 * python/examples/gconf-proxy-service.py:
6478 * python/examples/gconf-proxy-service2.py:
6480 Add "message" argument to service methods.
6482 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
6484 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6485 * dbus/bus.c (dbus_bus_get_unix_user)
6486 * doc/dbus-specification.xml: implement GetConnectionUnixUser
6487 method of org.freedesktop.DBus interface.
6489 * bus/dispatch.c: test case
6491 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
6493 * python/Makefile.am: switched include directory from glib/ to dbus/
6494 since dbus-glib.h moved
6496 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6498 * configure.in: prevent building the gcj stuff and libxml loader
6499 since they are broken.
6501 2004-06-20 Havoc Pennington <hp@redhat.com>
6503 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
6504 codes from the dbus error names
6506 * glib/dbus-glib.h: move to subdir dbus/ since it's included
6507 as dbus/dbus-glib.h and that breakage is now visible due to
6508 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6510 * glib/dbus-glib.h: s/gproxy/g_proxy/
6512 * dbus/dbus-shared.h: new header to hold stuff shared with
6515 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6518 * glib/dbus-glib.h (dbus_set_g_error): move to
6519 dbus-glib-lowlevel.h
6521 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6522 of stuff to enable this
6524 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6526 * a bunch of other changes with the same basic "separate glib
6527 bindings from dbus.h" theme
6529 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
6531 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6533 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6535 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6537 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6538 the reply value of the ServiceExists message.
6540 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
6542 * python/dbus_bindings.pyx.in: No longer need to parse path
6543 elements and pass them as arrays of strings. The C API now
6544 accepts plain path strings.
6545 (_build_parsed_path): removed
6547 2004-06-07 Havoc Pennington <hp@redhat.com>
6549 * doc/TODO: remove auto-activation item since it's done; sort
6550 items by importance/milestone
6552 2004-06-07 Havoc Pennington <hp@redhat.com>
6554 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6555 random signature when using REQUIRED_FIELDS (this hack won't work
6558 * dbus/dbus-message.c: change the signature to be a header field,
6559 instead of message->signature special-case string. Incremental
6560 step forward. Then we can fix up code to send the signature in the
6561 message, then fix up code to validate said signature, then fix up
6562 code to not put the typecodes inline, etc.
6563 (load_one_message): don't make up the signature after the fact
6564 (decode_header_data): require signature field for the known
6567 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6569 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6571 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
6573 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6575 * mono/Handler.cs: Updated to follow new path argument for
6576 (un-)registering objects.
6578 * mono/example/Makefile.am:
6580 * configure.in: Bumped required version for mono and use new -pkg
6583 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
6585 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6586 registration functions take the path argument as char* instead of
6589 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6590 split off the path decompostion part of
6591 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6594 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6596 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6598 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6599 machine approach. A state is implemented as a function that
6600 handles incoming events as specified for that state.
6602 * doc/dbus-specification.xml: Update auth protocol state machine
6603 specification to match implementation. Remove some leftover
6606 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6608 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6609 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6612 * Doxyfile.in: remove deprecated options.
6614 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6615 glib/test-thread.h, glib/test-thread-client.c,
6616 glib/test-thread-server.c, glib/test-profile.c,
6617 glib/test-dbus-glib.c: remove these unused files.
6619 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
6621 * dbus/dbus-object-tree.c
6622 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6623 non-fallback handlers (bug #684).
6624 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6625 (find_subtree_recurse): report wether the returned subtree is an
6626 exact match or a "fallback" match higher up in the tree.
6627 (object_tree_test_iteration): update test case.
6629 2004-06-01 Seth Nickell <seth@gnome.org>
6631 * python/dbus_bindings.pyx.in:
6632 * python/tests/test-client.py:
6634 Round off basic type support. Add dicts (yay!), and
6635 remaining array types.
6637 Make MessageIter more general so it works for dicts too.
6639 Mark all loop variables as C integers.
6641 2004-05-31 Havoc Pennington <hp@redhat.com>
6643 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6646 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6648 * glib/dbus-glib-tool.c (main): set up to have a --self-test
6649 option that runs the tests, and start filling in some code
6650 including for starters just dumping the interfaces to stdout
6652 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6654 * test/data/valid-introspection-files/lots-of-types.xml: test of
6655 an example introspection file
6657 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6660 2004-05-31 Seth Nickell <seth@gnome.org>
6662 * python/dbus_bindings.pyx.in:
6663 * python/tests/test-client.py:
6668 Fix string array memory trashing bug... oops...
6670 2004-05-30 Seth Nickell <seth@gnome.org>
6674 Add a nicer-but-less-flexible alternate API for handling
6675 calls to virtual objects in dbus.ObjectTree.
6677 Screw up the argument order to the dbus.Object constructor
6678 for consistency with dbus.ObjectTree (and to make dbus_methods
6679 optional for future extension)
6681 * python/examples/Makefile.am:
6682 * python/examples/gconf-proxy-service.py:
6683 * python/examples/gconf-proxy-service2.py:
6685 Alternate implementation of gconf-proxy-service using the
6686 nicer dbus.ObjectTree API.
6688 * python/examples/example-service.py:
6689 * python/tests/test-server.py
6691 Reverse the argument order to deal with dbus.Object constructor
6694 2004-05-30 Seth Nickell <seth@gnome.org>
6696 * python/examples/example-client.py:
6697 * python/examples/example-service.py:
6699 Take it back. Lists seem to work but they're broken
6700 in the test suite. Make the base examples use
6703 2004-05-30 Seth Nickell <seth@gnome.org>
6705 * python/dbus_bindings.pyx.in:
6706 * python/tests/test-client.py:
6708 Add some more tests and fix errors that crop up.
6709 Unfortunately, currently it seems like marshalling
6710 and unmarshalling of lists is completely broken :-(
6712 2004-05-30 Seth Nickell <seth@gnome.org>
6714 * python/dbus_bindings.pyx.in:
6716 Add support for ObjectPath type.
6720 Refactor message handling code to a common function.
6722 * python/tests/test-client.py:
6723 * python/tests/test-server.py:
6725 Add tests that check to make sure values of all types
6726 can be echoed from a service w/o mangling.
6728 2004-05-29 Seth Nickell <seth@gnome.org>
6732 Add ObjectTree class which allows implementation
6733 of trees of "virtual" objects. Basically the python
6734 wrapper for "register_fallback".
6736 * python/examples/Makefile.am
6737 * python/examples/gconf-proxy-client.py:
6738 * python/examples/gconf-proxy-service.py:
6740 Implement a simple GConf proxy service that supports
6741 get/set on string and int GConf keys using the ObjectTree.
6743 2004-05-29 Seth Nickell <seth@gnome.org>
6746 * python/examples/example-client.py:
6747 * python/examples/example-service.py:
6748 * python/examples/list-system-services.py:
6750 Add SessionBus, SystemBus and ActivationBus classes
6751 so you don't need to know the special little BUS_TYPE
6754 2004-05-29 Havoc Pennington <hp@redhat.com>
6756 * bus/config-parser.c (process_test_valid_subdir): temporarily
6757 stop testing config parser OOM handling, since expat has issues
6758 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6760 * bus/dbus-daemon-1.1.in: change requested_reply to
6761 send_requested_reply/receive_requested_reply so we can send the
6762 replies, not just receive them.
6764 * bus/config-parser.c: parse the new
6765 send_requested_reply/receive_requested_reply
6767 * bus/policy.c (bus_client_policy_check_can_send): add
6768 requested_reply argument and use it
6770 * bus/bus.c (bus_context_check_security_policy): pass through
6771 requested_reply status to message send check
6773 * bus/system.conf.in: adapt to requested_reply change
6775 2004-05-28 Havoc Pennington <hp@redhat.com>
6777 * test/glib/test-service-glib.c (main): remove unused variable
6779 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6781 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6782 from the enum, no longer in use.
6784 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6787 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6788 whether error_name passed in is a valid error name.
6790 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
6792 * dbus/dbus-message.c (dbus_message_get_args): Added support for
6793 OBJECT_PATH and OBJECT_PATH_ARRAY
6795 2004-05-28 Seth Nickell <seth@gnome.org>
6797 * python/examples/Makefile.am:
6799 Forget to add Makefile.am. Do not pass go.
6801 2004-05-28 Michael Meeks <michael@ximian.com>
6803 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
6806 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6808 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6809 (_dbus_message_iter_get_basic_type_array): impl.
6810 drastically simplify ~all relevant _get methods to use these.
6811 (_dbus_message_iter_append_basic_array),
6812 (dbus_message_iter_append_basic): impl
6813 drastically simplify ~all relevant _append methods to use these.
6815 * dbus/dbus-message-builder.c (parse_basic_type)
6816 (parse_basic_array, lookup_basic_type): impl.
6817 (_dbus_message_data_load): prune scads of duplicate /
6820 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
6821 (_dbus_demarshal_basic_type): implement,
6822 (demarshal_and_validate_len/arg): beef up debug.
6823 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6825 2004-05-27 Seth Nickell <seth@gnome.org>
6828 * python/Makefile.am:
6830 Include the example python apps in the tarball.
6832 * python/examples/list-system-services.py
6834 Add a python new example that fetches the list of services
6835 from the system bus.
6837 2004-05-27 Seth Nickell <seth@gnome.org>
6840 * python/dbus_bindings.pyx.in:
6842 Fix failure to notify that a signal was not handled,
6843 resulted in hung functions.
6845 2004-05-25 Colin Walters <walters@redhat.com>
6847 * tools/dbus-monitor.c (main): Monitor all types of messages.
6849 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
6851 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6852 which unregisters the object path and disposes the handler.
6854 2004-05-23 Kristian Høgsberg <krh@redhat.com>
6856 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6858 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6859 operands to && so we call dbus_message_iter_next () for the last
6862 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6864 * dbus/dbus-object-tree.c
6865 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6866 children even if the requested path isn't registered.
6867 (object_tree_test_iteration): test object_tree_list_registered.
6869 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6872 2004-05-20 Kristian Høgsberg <krh@redhat.com>
6874 * doc/TODO: Remove resolved items.
6876 * bus/expirelist.h (struct BusExpireList): remove unused n_items
6879 * bus/connection.c (bus_connections_expect_reply): Enforce the
6880 per-connection limit on pending replies.
6882 Patch from Jon Trowbridge <trow@ximian.com>:
6884 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
6885 up a watch that triggers a config reload when one end of the pipe
6887 (signal_handler): Instead of doing the config reload in our SIGHUP
6888 handler, just write to the reload pipe and let the associated
6889 watch handle the reload when control returns to the main loop.
6891 * bus/driver.c (bus_driver_handle_reload_config): Added.
6892 Implements a ReloadConfig method for requesting a configuration
6893 file reload via the bus driver.
6895 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
6897 * HACKING: Updated release instructions concerning the wiki page.
6899 2004-05-18 Kristian Høgsberg <krh@redhat.com>
6901 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6902 filter against auth->allowed_mechs; we only add allowed mechs in
6903 record_mechanisms().
6905 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6906 ALLOWED_MECHS to auth-script format so we can set the list of
6909 * data/auth/client-out-of-mechanisms.auth-script: New test to
6910 check client disconnects when it is out of mechanisms to try.
6912 * dbus/dbus-auth.c (process_command): Remove check for lines
6913 longer that 1 MB; we only buffer up maximum 16 kB.
6915 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6916 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6917 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6918 assume there might be unused bytes.
6920 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6921 client-out-of-mechs, it is handled in process_reject(). Move check
6922 for max failures to send_rejected(), as it's a server-only thing.
6924 * dbus/dbus-auth.c: Factor out protocol reply code into functions
6925 send_auth(), send_data(), send_rejected(), send_error(),
6926 send_ok(), send_begin() and send_cancel().
6928 2004-05-17 Kristian Høgsberg <krh@redhat.com>
6930 Remove base64 encoding, replace with hex encoding. Original patch
6931 from trow@ximian.com, added error handling.
6933 * dbus/dbus-string.c (_dbus_string_base64_encode)
6934 (_dbus_string_base64_decode): Remove.
6935 (_dbus_string_hex_decode): Add end_return argument so we can
6936 distinguish between OOM and invalid hex encoding.
6937 (_dbus_string_test): Remove base64 tests and add test case for
6940 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6941 Replace base64 with hex.
6943 * test/data/auth/invalid-hex-encoding.auth-script: New test case
6944 for invalid hex encoded data in auth protocol.
6946 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6948 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6951 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
6953 * mono/dbus-sharp.dll.config.in: Added for GAC
6954 * mono/dbus-sharp.snk: Added for GAC
6955 * mono/Assembly.cs.in: Added for GAC
6956 * mono/Makefile.am: Changes for GAC installation
6957 * configure.in: Added refs for dbus-sharp.dll.config.in and
6958 Assembly.cs.in. More fixes for mono testing
6959 * mono/example/Makefile.am: Changed var to CSC
6960 * Makefile.am: Changed flag name to DBUS_USE_CSC
6962 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
6964 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6965 * mono/doc/*: Added documentation framework
6966 * configure.in: Added monodoc check
6967 * README: Added description of mono configure flags
6969 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
6971 * doc/dbus-specification.xml: Added a "Required" column to the
6972 header fields table and changed the "zero or more" verbage in
6973 the above paragraph to read "The header must contain the required
6974 named header fields and zero or more of the optional named header
6976 * test/data/invalid-messages/*.message: Added the required PATH
6977 named header field to the tests so that they don't fail on
6978 'Missing path field'
6980 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
6982 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6983 the stack by implicitly defining variable and parameter types and
6984 removing the hack of defining C pointers as python objects and later
6987 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
6989 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6991 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
6993 * mono/DBusType/Dict.cs: Handle empty dicts
6994 * mono/DBusType/Array.cs: Handle empty arrays
6995 * mono/Arguments.cs: Handle empty arguments
6997 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
6999 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7002 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7004 * test/data/valid-messages/standard-*.message: Update message
7005 test scripts to new header field names.
7007 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7009 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7010 overflow to times_we_did_each_thing array which would chop off the
7011 first character of the failure_dir string. Increased the size of
7012 the array to 7 to reflect the number of random mutation functions
7015 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7017 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7018 unix_server->watch here, it is unreffed in disconnect.
7019 (_dbus_server_new_for_tcp_socket): convert NULL host to
7020 "localhost" here so we don't append NULL to address.
7022 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7023 various addresses, including tcp with no explicit host.
7025 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7027 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7028 fix incorrect setting of .name_offset in the HeaderField (it was
7029 off by two bytes, positioned right after the name and typecode)
7031 * bus/bus.c (bus_context_new, bus_context_unref): test before
7032 calling dbus_server_free_data_slot and _dbus_user_database_unref
7033 in case of an error.
7035 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7038 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7040 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7041 _dbus_poll() instead of select().
7043 2004-04-15 Jon Trowbridge <trow@ximian.com>
7045 * bus/main.c (signal_handler): Reload the configuration files
7047 (main): Set up our SIGHUP handler.
7049 * bus/bus.c (struct BusContext): Store the config file, user and
7050 fork flag in the BusContext.
7051 (process_config_first_time_only): Added. Contains the code
7052 (previously in bus_context_new) for setting up the BusContext from
7053 the BusConfigParser that should only be run the first time the
7054 config files are read.
7055 (process_config_every_time): Added. Contains the code (previously
7056 in bus_context_new) for setting up the BusContext from the
7057 BusConfigParser that should be run every time the config files are
7059 (load_config): Added. Builds a BusConfigParser from the config
7060 files and passes the resulting structure off to
7061 process_config_first_time_only (assuming this is the first time)
7062 and process_config_every_time.
7063 (bus_context_new): All of the config-related code has been moved
7064 to process_config_first_time_only and process_config_every_time.
7065 Now this function just does the non-config-related initializations
7066 and calls load_config.
7067 (bus_context_reload_config): Added.
7069 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7071 * bus/driver.c (bus_driver_handle_get_service_owner):
7072 implement a GetServiceOwner method.
7073 * doc/dbus-specification.xml: document it.
7074 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7076 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7077 implement, using the bus GetServiceOwner method.
7079 * test/glib/test-dbus-glib.c:
7080 use dbus_gproxy_new_for_service_owner so that we can receive the
7083 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7085 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7086 dbus/dbus-message.c, dbus/dbus-protocol.h
7087 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7089 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7090 dbus/dbus-message.c, dbus/dbus-protocol.h
7091 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7093 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7094 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7095 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7097 * doc/dbus-specification.xml (Header Fields Table):
7098 s/SERVICE/DESTINATION
7099 s/SENDER_SERVICE/SENDER
7102 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7104 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7107 2004-04-13 Michael Meeks <michael@ximian.com>
7109 * glib/dbus-gobject.c (handle_introspect): split out
7110 (introspect_properties): this.
7111 (handle_introspect): implement this.
7113 * test/glib/Makefile.am: use the absolute path so the bus
7114 daemon's chdir ("/") doesn't kill us dead.
7116 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7118 2004-04-12 Jon Trowbridge <trow@ximian.com>
7120 * bus/config-parser.c (struct BusConfigParser): Added
7121 included_files field.
7122 (seen_include): Added. Checks whether or not a file has already
7123 been included by any parent BusConfigParser.
7124 (bus_config_parser_new): Copy the parent's included_files.
7125 (include_file): Track which files have been included, and fail on
7126 circular inclusions.
7127 (process_test_valid_subdir): Changed printf to report if we are
7128 testing valid or invalid conf files.
7129 (all_are_equiv): Changed printf to be a bit clearer about
7130 what we are actually doing.
7131 (bus_config_parser_test): Test invalid configuration files.
7133 2004-04-09 Jon Trowbridge <trow@ximian.com>
7135 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7136 argument. If non-null, the newly-constructed BusConfigParser will
7137 be initialized with the parent's BusLimits instead of the default
7139 (include_file): When including a config file, pass in
7140 the current parser as the parent and then copy the BusLimits
7141 from the included BusConfigParser pack to the current parser.
7142 (process_test_valid_subdir): Renamed from process_test_subdir.
7143 (process_test_equiv_subdir): Added. Walks through a directory,
7144 descending into each subdirectory and loading the config files
7145 it finds there. If any subdirectory contains two config files
7146 that don't produce identical BusConfigParser structs, fail.
7147 For now, the BusConfigParser's BusPolicies are not compared.
7148 (bus_config_parser_test): Call both process_test_valid_subdir and
7149 process_test_equiv_subdir.
7151 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7152 argument and pass it along to the call to bus_config_parser_new.
7153 Also made a few small changes to allow this code to compile.
7155 * bus/config-loader-expat.c (bus_config_load): Take a parent
7156 argument and pass it along to the call to bus_config_parser_new.
7158 * bus/bus.c (bus_context_new): Load the config file
7159 with a NULL parent argument.
7161 2004-03-29 Michael Meeks <michael@ximian.com>
7163 * glib/dbus-gobject.c (introspect_properties): split
7164 out, fix mangled 'while' flow control.
7165 (introspect_signals): implement.
7166 (handle_introspect): update.
7168 2004-03-29 Michael Meeks <michael@ximian.com>
7170 * glib/dbus-gobject.c (set_object_property): split out /
7171 re-work, use the property type, and not the message type(!)
7172 (get_object_property): ditto.
7174 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7175 (dbus_gvalue_marshal): make this code re-usable, needed
7176 for signals too, also on both proxy and server side.
7177 Re-write for more efficiency / readability.
7179 2004-03-29 Michael Meeks <michael@ximian.com>
7181 * dbus/dbus-message.c
7182 (dbus_message_new_error_printf): impl.
7184 * dbus/dbus-connection.c
7185 (dbus_connection_unregister_object_path): fix warning.
7187 * configure.in: fix no-mono-installed situation.
7189 2004-03-27 Havoc Pennington <hp@redhat.com>
7191 Patch from Timo Teräs:
7193 * tools/dbus-send.c (main): if --print-reply, assume type is
7194 method call; support boolean type args
7196 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7197 bunch of memleak and logic bugs
7199 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7201 * mono/Arguments.cs:
7202 * mono/Introspector.cs:
7204 * mono/InterfaceProxy.cs:
7206 * mono/ProxyBuilder.cs:
7208 Added InterfaceProxy class to avoid building proxies for every
7212 * dbus-message.c (dbus_message_append_args_valist)
7213 (dbus_message_iter_get_object_path)
7214 (dbus_message_iter_get_object_path_array)
7215 (dbus_message_iter_append_object_path)
7216 (dbus_message_iter_append_object_path_array):
7217 Added object_path iter functions to handle OBJECT_PATH arguments
7219 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7221 First checkin of mono bindings.
7224 Build stuff for the bindings
7225 * dbus-sharp.pc.in: Added for pkgconfig
7227 2004-03-21 Havoc Pennington <hp@redhat.com>
7229 * test/test-service.c (main): remove debug spew
7231 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7233 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7236 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7237 (dbus_message_iter_init_array_iterator)
7238 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7239 indicate whether the iterator is empty
7241 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7244 2004-03-19 Havoc Pennington <hp@redhat.com>
7246 * NEWS: 0.21 updates
7248 * configure.in: 0.21
7250 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7252 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7253 you don't need pyrex to make dist
7255 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7258 2004-03-18 Richard Hult <richard@imendio.com>
7260 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7261 (dbus_message_set_auto_activation): Add doxygen docs.
7263 2004-03-16 Richard Hult <richard@imendio.com>
7265 * bus/activation.c: (bus_activation_service_created),
7266 (bus_activation_send_pending_auto_activation_messages),
7267 (bus_activation_activate_service):
7269 * bus/dispatch.c: (bus_dispatch),
7270 (check_nonexistent_service_auto_activation),
7271 (check_service_auto_activated),
7272 (check_segfault_service_auto_activation),
7273 (check_existent_service_auto_activation), (bus_dispatch_test):
7274 * bus/driver.c: (bus_driver_handle_activate_service):
7275 * bus/services.c: (bus_registry_acquire_service):
7276 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7277 (dbus_message_get_auto_activation):
7278 * dbus/dbus-message.h:
7279 * dbus/dbus-protocol.h: Implement auto-activation.
7281 * doc/dbus-specification.xml: Add auto-activation to the spec.
7283 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7285 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7286 fix a bug with CUSTOM types.
7288 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7289 a unit test for this bug (used to fail).
7291 2004-03-12 Mikael Hallendal <micke@imendio.com>
7294 (babysitter_watch_callback): notify all pending activations waiting for
7295 the same exec that the activation failed.
7296 (bus_activation_activate_service): shortcut the activation if we
7297 already waiting for the same executable to start up.
7299 2004-03-12 Mikael Hallendal <micke@imendio.com>
7302 - Added service file reloading.
7303 Each service files directory is kept in an hash table in
7304 BusActivation and each BusActivationEntry knows what .service-file it
7305 was read from. So when you try to activate a service the bus will
7306 check if it's been updated, removed or if new .service-files has
7308 - Test code at the bottom for the service file reloading.
7309 * bus/test-main.c: (main):
7311 - added service reloading test.
7312 * dbus/dbus-sysdeps.c:
7313 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7315 2004-03-08 Michael Meeks <michael@ximian.com>
7317 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
7318 bail immediately if disconnected, to avoid busy loop.
7320 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7321 cleanup cut/paste/inefficiency.
7323 2004-03-01 David Zeuthen <david@fubar.dk>
7325 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7326 bug where args were used twice. This bug resulted in a segfault
7327 on a Debian/PPC system when starting the messagebus daemon. Include
7328 dbus-sysdeps.h for DBUS_VA_COPY
7330 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7332 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7333 appropriate va_copy implementation. From GLib
7335 2004-02-24 Joe Shaw <joe@ximian.com>
7337 * bus/services.c (bus_registry_acquire_service): We need to pass
7338 in the service name to dbus_set_error() to prevent a crash.
7340 2003-12-26 Anders Carlsson <andersca@gnome.org>
7342 * AUTHORS: Reveal my True identity.
7344 2003-12-17 Mikael Hallendal <micke@imendio.com>
7346 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7347 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7349 2003-12-13 Mikael Hallendal <micke@imendio.com>
7351 * doc/TODO: Added not about better error check of configuration files.
7353 2003-12-02 Richard Hult <richard@imendio.com>
7355 * Update AFL version to 2.0 throughout the source files to reflect
7356 the update that was done a while ago.
7358 2003-12-02 Richard Hult <richard@imendio.com>
7360 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7361 wrote_dict_key to FALSE on the iter that the dict is appended to,
7362 just like when appending other types. Fixes a bug where a dict
7363 couldn't be put inside a dict.
7364 (dbus_message_iter_append_dict_key): Fix typo in warning message.
7365 (message_iter_test, _dbus_message_test): Add test case for dict
7368 2003-12-01 David Zeuthen <david@fubar.dk>
7370 * python/dbus.py: Add the actual message when calling the reciever
7371 of a signal such that parameters can be inspected. Add the method
7372 remove_signal_receiver
7374 2003-11-26 Mikael Hallendal <micke@imendio.com>
7378 * glib/*.[ch]: Made ref functions return the pointer
7380 2003-11-25 Zack Rusin <zack@kde.org>
7382 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7384 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
7387 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
7388 the Integrator and to better fit with the server,
7390 2003-11-24 Zack Rusin <zack@kde.org>
7392 * qt/connection.h, qt/connection.cpp: removing initDbus method since
7393 the integrator handles it now
7395 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7396 since QTimer wasn't really meant to be used the way DBusTimeout is
7398 2003-11-24 Zack Rusin <zack@kde.org>
7400 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
7401 Integrator class which integrates D-BUS with the Qt event loop,
7403 * qt/connection.h, qt/connection.cpp: Move all the code which
7404 was dealing with D-BUS integration to the Integrator class,
7405 and start using Integrator,
7407 2003-11-23 Zack Rusin <zack@kde.org>
7409 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
7412 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7413 switching namespaces to DBusQt, reworking the class,
7415 * Makefile.cvs: switching dependencies so that it matches KDE
7418 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
7421 2003-11-19 Havoc Pennington <hp@redhat.com>
7425 * configure.in: bump version to 0.20
7427 * configure.in (have_qt): add yet another place to look for qt
7428 (someone hand trolltech a .pc file...)
7430 2003-11-01 Havoc Pennington <hp@redhat.com>
7432 * doc/dbus-specification.xml: add state machine docs on the auth
7433 protocol; just a first draft, I'm sure it's wrong.
7435 2003-10-28 David Zeuthen <david@fubar.dk>
7437 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7438 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7440 2003-10-28 Havoc Pennington <hp@redhat.com>
7442 * dbus/dbus-message.c (get_next_field): delete unused function
7444 2003-10-28 Havoc Pennington <hp@redhat.com>
7446 * bus/expirelist.c (do_expiration_with_current_time): detect
7447 failure of the expire_func due to OOM
7449 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7451 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7452 NoReply error that's now created by the bus when the service exits
7454 2003-10-28 Havoc Pennington <hp@redhat.com>
7456 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7457 tests for set_path, set_interface, set_member, etc.
7459 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7461 * dbus/dbus-message.c (set_string_field): always just delete and
7462 re-append the field; accept NULL for deletion
7463 (re_align_fields_recurse): reimplement
7465 2003-10-26 Havoc Pennington <hp@redhat.com>
7467 * dbus/dbus-connection.c: fix docs to properly describe the
7468 disconnected message
7469 (_dbus_connection_notify_disconnected): remove this function;
7470 we can't synchronously add the disconnected message, we have to
7471 do it after we've queued any remaining real messages
7472 (_dbus_connection_get_dispatch_status_unlocked): queue the
7473 disconnect message only if the transport has finished queueing all
7474 its real messages and is disconnected.
7475 (dbus_connection_disconnect): update the dispatch status here
7477 2003-10-22 Havoc Pennington <hp@redhat.com>
7479 * bus/bus.c (bus_context_check_security_policy): fix up assertion
7481 * bus/connection.c (bus_transaction_send_from_driver): set the
7482 destination to the connection's base service
7484 2003-10-20 Havoc Pennington <hp@redhat.com>
7486 hmm, make check is currently not passing.
7488 * doc/dbus-specification.xml: add requirement that custom type
7489 names follow the same rules as interface names.
7491 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7492 duplication and allow 'c' to be 'custom'; dict is now 'm' for
7495 * doc/dbus-specification.xml: update type codes to match
7496 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7497 CUSTOM. Add type OBJECT_PATH to the spec.
7499 2003-10-17 Havoc Pennington <hp@redhat.com>
7501 * bus/driver.c (create_unique_client_name): use "." as separator
7502 in base service names instead of '-'
7504 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7505 byte at the end of the string
7507 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7508 optimization macros since string validation seems to be a slow
7511 * doc/dbus-specification.xml: restrict valid
7512 service/interface/member/error names. Add test suite code for the
7515 * dbus/dbus-string.c: limit service/interface/member/error names
7518 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7519 format arg to verbose spew
7521 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7522 memory, return instead of g_error
7524 * test/test-service.c (path_message_func): support emitting a
7527 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7528 activation bus type if DBUS_BUS_ACTIVATION was set; default to
7529 assuming the activation bus was the session bus so that services
7530 started manually will still register.
7531 (init_connections_unlocked): fix so that in OOM situation we get
7532 the same semantics when retrying the function
7534 * test/test-service.c (main): change to use path registration, to
7535 test those codepaths; register with DBUS_BUS_ACTIVATION rather
7536 than DBUS_BUS_SESSION
7538 2003-10-16 Havoc Pennington <hp@redhat.com>
7540 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7542 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7543 coverage of the tests
7544 (coverage-report.txt): don't move the .da and .bbg files around
7546 2003-10-16 Havoc Pennington <hp@redhat.com>
7548 * bus/bus.c (struct BusContext): remove struct field I didn't mean
7551 2003-10-16 Havoc Pennington <hp@redhat.com>
7553 * bus/connection.c (bus_pending_reply_expired): either cancel or
7555 (bus_connections_check_reply): use unlink, not remove_link, as we
7556 don't want to free the link; fixes double free mess
7558 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7559 where no reply was received
7561 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7564 * bus/signals.c (match_rule_matches): add special cases for the
7565 bus driver, so you can match on sender/destination for it.
7567 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7568 DBUS_PRINT_BACKTRACE is set
7570 * dbus/dbus-internals.c: add pid to assertion failure messages
7572 * dbus/dbus-connection.c: add message type code to the debug spew
7574 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7575 sender=foo not service=foo
7577 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7578 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
7579 DBUS_ACTIVATION_ADDRESS instead
7581 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7582 DBUS_SYSTEM_BUS_ADDRESS if appropriate
7584 * bus/bus.c (bus_context_new): handle OOM copying bus type into
7587 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7588 (dbus_message_iter_get_object_path_array): new function (half
7589 finished, disabled for the moment)
7591 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7592 DBUS_MESSAGE_TYPE_ERROR
7594 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7595 avoid redirecting stderr to /dev/null
7596 (babysit): close stdin if not doing the "exit_with_session" thing
7598 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7599 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7600 stdout/stdin, so things don't get confused
7602 * bus/system.conf.in: fix to allow replies, I modified .conf
7603 instead of .conf.in again.
7605 2003-10-14 David Zeuthen <david@fubar.dk>
7607 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7608 argtype to arg_type when raising unknown arg type exception.
7609 Changed type list to reflect the changes in dbus-protocol.h so
7610 the bindings actually work.
7612 2003-10-14 Havoc Pennington <hp@redhat.com>
7614 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7615 to have a bug keeping it from outputting the .da files sometimes
7616 (string_get_string): don't append garbage nul bytes to the string.
7618 2003-10-15 Seth Nickell <seth@gnome.org>
7620 * python/Makefile.am:
7622 Include dbus_h_wrapper.h in the dist tarball.
7624 2003-10-14 Havoc Pennington <hp@redhat.com>
7626 * bus/bus.c (bus_context_check_security_policy): revamp this to
7627 work more sanely with new policy-based requested reply setup
7629 * bus/connection.c (bus_transaction_send_from_driver): set bus
7630 driver messages as no reply
7632 * bus/policy.c (bus_client_policy_check_can_receive): handle a
7633 requested_reply attribute on allow/deny rules
7635 * bus/system.conf: add <allow requested_reply="true"/>
7637 * bus/driver.c (bus_driver_handle_message): fix check for replies
7638 sent to the bus driver, which was backward. How did this ever work
7639 at all though? I think I'm missing something.
7641 * dbus/dbus-message.c (decode_header_data): require error and
7642 method return messages to have a reply serial field to be valid
7643 (_dbus_message_loader_queue_messages): break up this function;
7644 validate that reply serial and plain serial are nonzero;
7645 clean up the OOM/error handling.
7646 (get_uint_field): don't return -1 from this
7647 (dbus_message_create_header): fix signed/unsigned bug
7649 * bus/connection.c (bus_connections_expect_reply): save serial of
7650 the incoming message, not reply serial
7652 2003-10-14 Havoc Pennington <hp@redhat.com>
7654 * bus/connection.c: implement pending reply tracking using
7657 * bus/bus.c (bus_context_check_security_policy): verify that a
7658 reply is pending in order to allow a reply to be sent. Deny
7659 messages of unknown type.
7661 * bus/dbus-daemon-1.1.in: update to mention new resource limits
7663 * bus/bus.c (bus_context_get_max_replies_per_connection): new
7664 (bus_context_get_reply_timeout): new
7666 2003-10-13 Seth Nickell <seth@gnome.org>
7668 * python/Makefile.am:
7670 Pass "make distcheck": remove a couple files from DIST_FILES
7671 that weren't included in the final version.
7673 2003-10-12 Havoc Pennington <hp@pobox.com>
7675 Added test code that 1) starts an actual bus daemon and 2) uses
7676 DBusGProxy; fixed bugs that were revealed by the test. Lots
7677 more testing possible, but this is the basic framework.
7679 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7680 empty proxy lists from the proxy list hash
7682 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7683 couple of return_if_fail checks
7685 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7686 to allocate, so everything is cleared to NULL as it should be.
7688 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7689 source as data to dbus_connection_set_timeout_functions() as the
7690 timeout functions expected
7692 * test/glib/run-test.sh: add a little script to start up a message
7693 bus and run tests using it
7695 * tools/dbus-launch.1: updates
7697 * tools/dbus-launch.c (main): add --config-file option
7699 * tools/dbus-launch.c (main): remove confusing else if (runprog)
7700 that could never be reached.
7702 * dbus/dbus-message.c (dbus_message_new_method_return)
7703 (dbus_message_new_error, dbus_message_new_signal): set the
7704 no-reply-expected flag on all these. Redundant, but may
7705 as well be consistent.
7707 2003-10-11 Havoc Pennington <hp@pobox.com>
7709 * test/decode-gcov.c (function_solve_graph): make broken block
7710 graph a nonfatal error since it seems to be broken. Need to debug
7713 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7714 can't just check type > INVALID < LAST anymore
7716 * dbus/dbus-message.c (dbus_message_get_signature): new function
7717 (dbus_message_has_signature): new function
7718 (struct DBusMessage): add signature field (right now it isn't sent
7719 over the wire, just generated on the fly)
7720 (dbus_message_copy): copy the signature, and init strings to
7721 proper length to avoid some reallocs
7722 (dbus_message_iter_init_array_iterator): return void, since it
7724 (dbus_message_iter_init_dict_iterator): return void since it can't fail
7725 (_dbus_message_loader_queue_messages): add silly temporary hack to
7726 fill in message->signature on load
7728 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7729 characters, so they are relatively human-readable.
7731 2003-10-11 Havoc Pennington <hp@pobox.com>
7733 * dbus/dbus-message.c (_dbus_message_test): add more test
7734 coverage, but #if 0 for now since they uncover a bug
7735 not fixed yet; I think in re_align_field_recurse()
7736 (re_align_field_recurse): add FIXME about broken assertion
7738 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7740 * bus/connection.c: share a couple code bits with expirelist.c
7742 * bus/expirelist.h, bus/expirelist.c: implement a generic
7743 expire-items-after-N-seconds facility, was going to share between
7744 expiring connections and replies, decided not to use for expiring
7745 connections for now.
7747 * COPYING: include AFL 2.0 (still need to change all the file headers)
7749 2003-10-09 Havoc Pennington <hp@redhat.com>
7751 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7752 gcc 3.3. Not that we do anything about it yet.
7754 * bus/signals.c (bus_match_rule_parse): impose max length on the
7757 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7759 2003-10-09 Havoc Pennington <hp@redhat.com>
7761 Make matching rules theoretically work (add parser).
7763 * bus/bus.c (bus_context_check_security_policy): fix up to handle
7764 the case where destination is explicitly specified as bus driver
7765 and someone else is eavesdropping.
7767 * bus/policy.c (bus_client_policy_check_can_receive): fix up
7768 definition of eavesdropping and assertion
7770 * tools/dbus-send.c (main): use dbus_message_type_from_string
7772 * bus/signals.c (bus_match_rule_parse): implement
7774 * dbus/dbus-message.c (dbus_message_type_from_string): new
7776 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7778 2003-10-02 Havoc Pennington <hp@pobox.com>
7780 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7781 dbus_gproxy_oneway_call
7783 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
7784 (dbus_server_setup_with_g_main): fix to allow calling them more
7785 than once on the same args
7786 (dbus_bus_get_with_g_main): new function
7788 2003-10-02 Havoc Pennington <hp@redhat.com>
7790 * doc/dbus-tutorial.xml: write some stuff
7792 2003-09-29 Havoc Pennington <hp@pobox.com>
7794 * configure.in: split checks for Doxygen from XML docs, check for
7797 * doc/Makefile.am: XML-ify all the docs, and add a blank
7800 2003-09-29 Havoc Pennington <hp@pobox.com>
7802 * Merge dbus-object-names branch. To see the entire patch
7803 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7804 it's huuuuge though.
7805 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7807 2003-09-28 Havoc Pennington <hp@pobox.com>
7809 * HACKING: update to reflect new server
7811 2003-09-26 Seth Nickell <seth@gnome.org>
7814 * python/examples/example-signals.py:
7816 Start implementing some notions of signals. The API
7817 is really terrible, but they sort of work (with the
7818 exception of being able to filter by service, and to
7819 transmit signals *as* a particular service). Need to
7820 figure out how to make messages come from the service
7823 * python/dbus_bindings.pyx.in:
7825 Removed duplicate message_handler callbacks.
7827 2003-09-25 Havoc Pennington <hp@redhat.com>
7829 * bus/session.conf.in: fix my mess
7831 2003-09-25 Havoc Pennington <hp@pobox.com>
7833 * bus/session.conf.in: fix security policy, reported by Seth Nickell
7835 2003-09-25 Seth Nickell <seth@gnome.org>
7837 * python/examples/example-service.py:
7839 Johan notices complete wrong code in example-service, but
7840 completely wrong in a way that works exactly the same (!).
7841 Johan is confused, how could this possibly work? Example
7842 code fails to serve purpose of making things clear.
7845 2003-09-25 Mark McLoughlin <mark@skynet.ie>
7847 * doc/dbus-specification.sgml: don't require header fields
7848 to be 4-byte aligned and specify that fields should be
7849 distinguished from padding by the fact that zero is not
7852 * doc/TODO: remove re-alignment item and add item to doc
7853 the OBJECT_PATH type.
7855 * dbus/dbus-message.c:
7856 (HeaderField): rename the original member to value_offset
7857 and introduce a name_offset member to keep track of where
7858 the field actually begins.
7859 (adjust_field_offsets): remove.
7860 (append_int_field), (append_uint_field),
7861 (append_string_field): don't align the start of the header
7862 field to a 4-byte boundary.
7863 (get_next_field): impl finding the next marhsalled field
7864 after a given field.
7865 (re_align_field_recurse): impl re-aligning a number of
7866 already marshalled fields.
7867 (delete_field): impl deleting a field of any type and
7868 re-aligning any following fields.
7869 (delete_int_or_uint_field), (delete_string_field): remove.
7870 (set_int_field), (set_uint_field): no need to re-check
7871 that we have the correct type for the field.
7872 (set_string_field): ditto and impl re-aligning any
7874 (decode_header_data): update to take into account that
7875 the fields aren't 4-byte aligned any more and the new
7876 way to distinguish padding from header fields. Also,
7877 don't exit when there is too much header padding.
7878 (process_test_subdir): print the directory.
7879 (_dbus_message_test): add test to make sure a following
7880 field is re-aligned correctly after field deletion.
7882 * dbus/dbus-string.[ch]:
7883 (_dbus_string_insert_bytes): rename from insert_byte and
7884 allow the insert of multiple bytes.
7885 (_dbus_string_test): test inserting multiple bytes.
7887 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7888 warning note to docs about having to re-align any
7889 marshalled values following the string.
7891 * dbus/dbus-message-builder.c:
7892 (append_string_field), (_dbus_message_data_load):
7893 don't align the header field.
7895 * dbus/dbus-auth.c: (process_test_subdir): print the
7898 * test/break-loader.c: (randomly_add_one_byte): upd. for
7901 * test/data/invalid-messages/bad-header-field-alignment.message:
7904 * test/data/valid-messages/unknown-header-field.message: shove
7905 a dict in the unknown field.
7907 2003-09-25 Seth Nickell <seth@gnome.org>
7910 * python/dbus_bindings.pyx.in:
7912 Handle return values.
7914 * python/examples/example-client.py:
7915 * python/examples/example-service.py:
7917 Pass back return values from the service to the client.
7919 2003-09-24 Seth Nickell <seth@gnome.org>
7923 Connect Object methods (when you are sharing an object) up... pass
7924 in a list of methods to be shared. Sharing all the methods just
7925 worked out too weird. You can now create nice Services over the
7928 * python/dbus_bindings.pyx.in:
7930 Keep references to user_data tuples passed into C functions so
7931 Python doesn't garbage collect on us.
7933 Implement MethodReturn and Error subclasses of Message for creating
7934 DBusMessage's of those types.
7936 * python/examples/example-client.py:
7937 * python/examples/example-service.py:
7939 Simple example code showing both how create DBus services and objects,
7940 and how to use them.
7942 2003-09-23 Havoc Pennington <hp@pobox.com>
7944 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7946 2003-09-23 Havoc Pennington <hp@redhat.com>
7948 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7949 (dbus_gproxy_disconnect_signal): implement
7950 (dbus_gproxy_manager_remove_signal_match): implement
7951 (dbus_gproxy_manager_add_signal_match): implement
7952 (dbus_gproxy_oneway_call): implement
7954 2003-09-23 Havoc Pennington <hp@pobox.com>
7956 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7957 subclass. This means dropping the transparent thread safety of the
7958 proxy; you now need a separate proxy per-thread, or your own
7959 locking on the proxy. Probably right anyway.
7960 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7962 2003-09-22 Havoc Pennington <hp@redhat.com>
7964 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7966 2003-09-21 Seth Nickell <seth@gnome.org>
7968 First checkin of the Python bindings.
7970 * python/.cvsignore:
7971 * python/Makefile.am:
7972 * python/dbus_bindings.pyx.in:
7973 * python/dbus_h_wrapper.h:
7975 Pieces for Pyrex to operate on, building a dbus_bindings.so
7976 python module for low-level access to the DBus APIs.
7980 High-level Python module for accessing DBus objects.
7985 Build stuff for the python bindings.
7989 Extra macro needed for finding the Python C header files.
7991 2003-09-21 Havoc Pennington <hp@pobox.com>
7993 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7994 implementing the proxy manager, didn't get very far.
7996 * dbus/dbus-bus.c (dbus_bus_add_match): new
7997 (dbus_bus_remove_match): new
7999 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8000 path_name argument; adjust the other not-yet-implemented
8001 gproxy constructors to be what I think they should be.
8003 2003-09-21 Havoc Pennington <hp@pobox.com>
8005 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8006 by default for message bus connections.
8008 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8009 exit_on_disconnect flag is set and we process the disconnected
8011 (dbus_connection_set_exit_on_disconnect): new function
8013 2003-09-21 Havoc Pennington <hp@pobox.com>
8015 Get matching rules mostly working in the bus; only actually
8016 parsing the rule text remains. However, the client side of
8017 "signal connections" hasn't been started, this patch is only the
8020 * dbus/dispatch.c: fix for the matching rules changes
8022 * bus/driver.c (bus_driver_handle_remove_match)
8023 (bus_driver_handle_add_match): send an ack reply from these
8026 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8027 arguments, reported by Seth Nickell
8029 * bus/config-parser.c (append_rule_from_element): support
8030 eavesdrop=true|false attribute on policies so match rules
8031 can be prevented from snooping on the system bus.
8033 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8034 and "destination" in attribute names; fix some docs bugs;
8035 add eavesdrop=true|false attribute
8037 * bus/driver.c (bus_driver_handle_add_match)
8038 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8041 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8042 rid of broadcast service concept, signals are just always broadcast
8044 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8045 mostly implement matching rules stuff (currently only exposed as signal
8048 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8050 * doc/dbus-specification.sgml: Change the header field name
8051 to be an enum and update the rest of the spec to reference
8052 the fields using the conventinal name.
8054 * dbus/dbus-protocol.h: update to reflect the spec.
8056 * doc/TODO: add item to remove the 4 byte alignment requirement.
8058 * dbus/dbus-message.c: Remove the code to generalise the
8059 header/body length and serial number header fields as named
8060 header fields so we can reference field names using the
8062 (append_int_field), (append_uint_field), (append_string_field):
8063 Append the field name as a byte rather than four chars.
8064 (delete_int_or_uint_field), (delete_string_field): reflect the
8065 fact that the field name and typecode now occupy 4 bytes instead
8067 (decode_string_field), (decode_header_data): update to reflect
8068 protocol changes and move the field specific encoding from
8069 decode_string_field() back into decode_header_data().
8071 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8072 Add utility to aid debugging.
8074 * dbus/dbus-message-builder.c:
8075 (append_string_field), (_dbus_message_data_load): Update to
8076 reflect protocol changes; Change the FIELD_NAME directive
8077 to HEADER_FIELD and allow it to take the field's conventional
8078 name rather than the actual value.
8080 * test/data/*/*.message: Update to use HEADER_FIELD instead
8081 of FIELD_NAME; Always align the header on an 8 byte boundary
8082 *before* updating the header length.
8084 2003-09-15 Havoc Pennington <hp@pobox.com>
8086 * dbus/dbus-pending-call.c: add the get/set object data
8087 boilerplate as for DBusConnection, etc. Use generic object data
8088 for the notify callback.
8090 * glib/dbus-gparser.c (parse_node): parse child nodes
8092 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8094 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8095 contain functions shared between the convenience lib and the
8098 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8099 -export-symbols-regex to the GLib library
8101 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8102 fix the locking in here, and add a default handler for
8103 Introspect() that just returns sub-nodes.
8105 2003-09-14 Havoc Pennington <hp@pobox.com>
8107 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8108 rather than gfoo consistent
8110 * glib/dbus-gproxy.h: delete for now, move contents to
8111 dbus-glib.h, because the include files don't work right since we
8112 aren't in the dbus/ subdir.
8114 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8115 (dbus_gproxy_end_call): finish
8116 (dbus_gproxy_begin_call): finish
8118 * glib/dbus-gmain.c (dbus_set_g_error): new
8120 * glib/dbus-gobject.c (handle_introspect): include information
8121 about child nodes in the introspection
8123 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8124 function to help in implementation of introspection
8126 * dbus/dbus-object-tree.c
8127 (_dbus_object_tree_list_registered_and_unlock): new function
8129 2003-09-12 Havoc Pennington <hp@pobox.com>
8131 * glib/dbus-gidl.h: add common base class for all the foo_info
8134 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8137 * test/Makefile.am: try test srcdir -ef . in addition to test
8138 srcdir = ., one of them should work (yeah lame)
8140 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8143 * glib/dbus-gparser.h: make description_load routines return
8144 NodeInfo* not Parser*
8146 * Makefile.am (SUBDIRS): build test dir after all library dirs
8148 * configure.in: add GTK+ detection
8150 2003-09-07 Havoc Pennington <hp@pobox.com>
8152 * Make Doxygen contented.
8154 2003-09-07 Havoc Pennington <hp@pobox.com>
8156 * doc/dbus-specification.sgml: more updates
8158 2003-09-06 Havoc Pennington <hp@pobox.com>
8160 * doc/dbus-specification.sgml: partial updates
8162 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8163 zillionth time; hopefully I edited the right file this time.
8165 * bus/config-parser.c (append_rule_from_element): support
8166 send_type, send_path, receive_type, receive_path
8168 * bus/policy.c: add message type and path to the list of things
8169 that can be "firewalled"
8171 2003-09-06 Havoc Pennington <hp@pobox.com>
8173 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8174 (dbus_connection_register_object_path): make this not handle
8175 messages to paths below the given path
8177 2003-09-03 Havoc Pennington <hp@pobox.com>
8179 * test/glib/Makefile.am: add this with random glib-linked test
8182 * glib/Makefile.am: remove the random test programs from here,
8183 leave only the unit tests
8185 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8186 uscore/javacaps conversion, and fix
8187 (get_object_property, set_object_property): change to .NET
8188 convention for mapping props to methods, set_FooBar/get_FooBar,
8189 since one language has such a convention we may as well copy it.
8190 Plus real methods in either getFooBar or get_foo_bar style won't
8191 collide with this convention.
8193 2003-09-01 Havoc Pennington <hp@pobox.com>
8195 * glib/dbus-gparser.c: implement
8197 * glib/dbus-gobject.c: start implementing skeletons support
8199 * configure.in: when disabling checks/assert, also define
8200 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8202 2003-09-01 Havoc Pennington <hp@pobox.com>
8204 * glib/Makefile.am: rearrange a bunch of files and get "make
8205 check" framework set up
8207 2003-08-31 Havoc Pennington <hp@pobox.com>
8209 * fix build with --disable-tests
8211 2003-08-30 Havoc Pennington <hp@pobox.com>
8213 * dbus/dbus-connection.c: purge DBusMessageHandler
8215 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8216 use callbacks everywhere
8218 2003-08-30 Havoc Pennington <hp@pobox.com>
8220 * test/data/valid-config-files/system.d/test.conf: change to
8221 root for the user so warnings don't get printed
8223 * dbus/dbus-message.c: add dbus_message_get_path,
8224 dbus_message_set_path
8226 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8227 dispatching to a path
8229 * dbus/dbus-string.c (_dbus_string_validate_path): add
8231 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8232 (_dbus_marshal_object_path): implement
8234 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8235 to contain the path to the target object
8236 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8237 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8239 2003-08-30 Havoc Pennington <hp@pobox.com>
8241 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8243 2003-08-29 Havoc Pennington <hp@pobox.com>
8245 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8247 (struct DBusObjectSubtree): shrink this
8248 a lot, since we may have a lot of them
8249 (_dbus_object_tree_free_all_unlocked): implement
8250 (_dbus_object_tree_dispatch_and_unlock): implement
8252 2003-08-29 Havoc Pennington <hp@pobox.com>
8254 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8256 2003-08-28 Havoc Pennington <hp@pobox.com>
8260 * dbus/dbus-connection.c: port to no ObjectID, create a
8261 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8263 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8264 everything except UnregisterFunction and MessageFunction
8266 * dbus/dbus-marshal.c: port away from DBusObjectID,
8267 add DBUS_TYPE_OBJECT_PATH
8269 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8270 dbus/dbus-objectid.[hc]: remove these, we are moving to
8271 path-based object IDs
8273 2003-08-25 Havoc Pennington <hp@pobox.com>
8275 Just noticed that dbus_message_test is hosed, I wonder when I
8276 broke that. I thought make check was passing earlier...
8278 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8279 container tree, will replace most of dbus-object-registry
8281 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8284 2003-08-19 Havoc Pennington <hp@pobox.com>
8286 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8287 (dbus_message_is_error): fix this function
8289 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8292 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8293 reflect clarified man page
8294 (bus_client_policy_check_can_send): ditto
8296 * bus/session.conf.in: fixup
8298 * bus/system.conf.in: fixup
8300 2003-08-18 Havoc Pennington <hp@redhat.com>
8302 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8304 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8305 dumb bug created earlier (wrong order of args to
8306 decode_header_data())
8308 * tools/dbus-send.c: port
8310 * tools/dbus-print-message.c (print_message): port
8312 * test/data/*messages: port all messages over
8314 * dbus/dbus-message-builder.c: support including
8317 * bus/driver.c: port over
8319 * bus/dispatch.c: port over to new stuff
8321 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8322 rename disconnect signal to "Disconnected"
8324 2003-08-17 Havoc Pennington <hp@pobox.com>
8326 This doesn't compile yet, but syncing up so I can hack on it from
8327 work. What are branches for if not broken code? ;-)
8329 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8330 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8331 DBUS_HEADER_FIELD_ERROR_NAME
8333 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8334 for the interface+member pairs
8335 (string_hash): change to use g_str_hash algorithm
8336 (find_direct_function, find_string_function): refactor these to
8339 * dbus/dbus-message.c: port all of this over to support
8340 interface/member fields instead of name field
8342 * dbus/dbus-object-registry.c: port over
8344 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8345 from _dbus_string_validate_name
8347 * bus/dbus-daemon-1.1: change file format for the
8348 <deny>/<allow> stuff to match new message naming scheme
8350 * bus/policy.c: port over
8352 * bus/config-parser.c: parse new format
8354 2003-08-16 Havoc Pennington <hp@pobox.com>
8356 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8359 * glib/dbus-gproxy.c: some hacking
8361 2003-08-15 Havoc Pennington <hp@redhat.com>
8363 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8365 * dbus/dbus-connection.c
8366 (dbus_connection_send_with_reply_and_block): factor out internals;
8367 change to convert any error replies to DBusError instead of
8368 returning them as a message
8370 2003-08-15 Havoc Pennington <hp@pobox.com>
8372 * dbus/dbus-connection.c,
8373 dbus/dbus-pending-call.c: Finish the pending call stuff
8375 2003-08-14 Havoc Pennington <hp@redhat.com>
8377 * dbus/dbus-pending-call.c: start on new object that will replace
8378 DBusMessageHandler and ReplyHandlerData for tracking outstanding
8381 * dbus/dbus-gproxy.c: start on proxy object used to communicate
8382 with remote interfaces
8384 * dbus/dbus-gidl.c: do the boring boilerplate in here
8386 2003-08-12 Havoc Pennington <hp@pobox.com>
8388 * bus/dispatch.c (bus_dispatch): make this return proper
8389 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8391 * dbus/dbus-errors.c (dbus_set_error): use
8392 _dbus_string_append_printf_valist
8394 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8395 (_dbus_string_append_printf): new
8397 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8400 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8401 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8402 message is unhandled.
8404 2003-08-11 Havoc Pennington <hp@pobox.com>
8406 * bus/test.c (client_disconnect_handler): change to return
8407 HANDLED (would have been REMOVE_MESSAGE)
8409 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8410 HANDLED/NOT_YET_HANDLED instead of
8411 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
8414 2003-08-10 Havoc Pennington <hp@pobox.com>
8416 * tools/dbus-send.c (main): add --type argument, for now
8417 supporting only method_call and signal types.
8419 * tools/dbus-print-message.c: print message type
8421 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8422 init connection->objects
8424 * doc/dbus-specification.sgml: fix sgml
8426 * bus/*.c: port over to object-instance API changes
8428 * test/test-service.c: ditto
8430 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8431 name, we will have to fix up the rest of the code to also handle
8433 (dbus_message_new): generic message-creation call
8434 (set_string_field): allow appending name field
8436 2003-08-06 Havoc Pennington <hp@pobox.com>
8438 * dbus/dbus-object-registry.c: implement signal connection
8441 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8443 * dbus/dbus-internals.c (_dbus_memdup): new function
8445 2003-08-02 Havoc Pennington <hp@pobox.com>
8447 * dbus/dbus-message.c (dbus_message_get_no_reply)
8448 (dbus_message_set_no_reply): add these and remove
8449 set_is_error/get_is_error
8451 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
8452 remove the ERROR flag, since there's now an ERROR type
8454 2003-08-01 Havoc Pennington <hp@pobox.com>
8456 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8459 * dbus/dbus-message.c (dbus_message_get_type): new function
8461 * doc/dbus-specification.sgml: add "type" byte to messages
8463 2003-08-01 Havoc Pennington <hp@pobox.com>
8465 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8466 a message type enum to distinguish kinds of message
8467 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
8468 that need not be replied to
8470 2003-08-01 Havoc Pennington <hp@pobox.com>
8472 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8473 (unpack_8_octets): fix no-64-bit-int bug
8475 * dbus/dbus-object-registry.c (validate_id): validate the
8476 connection ID bits, not just the instance ID.
8478 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8479 the connection-global 33 bits of the object ID
8481 * dbus/dbus-object-registry.c (info_from_entry): fill in
8482 object ID in the new way
8484 * dbus/dbus-objectid.h: rather than high/low bits, specifically
8485 define server/client/instance bits.
8487 2003-07-30 Havoc Pennington <hp@pobox.com>
8489 * dbus/dbus-connection.c (dbus_connection_register_object): fix
8492 2003-07-13 Havoc Pennington <hp@pobox.com>
8494 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8495 fields to DBusObjectVTable and DBusObjectInfo
8497 2003-07-12 Havoc Pennington <hp@pobox.com>
8499 * dbus/dbus-object-registry.c: implement unit test,
8500 fix bugs discovered in process
8502 * dbus/dbus-connection.c: remove handler_table and
8503 register_handler(), add DBusObjectRegistry usage
8505 * dbus/dbus-objectid.c (dbus_object_id_is_null)
8506 (dbus_object_id_set_null): new functions
8508 2003-07-08 Havoc Pennington <hp@pobox.com>
8510 * dbus/dbus-object.c: implement some of this
8512 * dbus/dbus-object-registry.c
8513 (_dbus_object_registry_add_and_unlock): fill in the object_id out
8515 (_dbus_object_registry_new): handle OOM
8517 2003-07-08 Havoc Pennington <hp@pobox.com>
8519 * dbus/dbus-object.h: sketch out an API for registering objects
8520 with a connection, that allows us to use as little as 24 bytes
8521 per object and lets application code represent an object in
8522 any conceivable way.
8524 * dbus/dbus-object-registry.c: implement the hard bits of the
8525 DBusConnection aspect of object API. Not yet wired up.
8527 2003-07-06 Havoc Pennington <hp@pobox.com>
8529 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8530 (_dbus_marshal_object_id): new
8531 (_dbus_demarshal_object_id): new
8532 (_dbus_marshal_get_arg_end_pos): support object ID type, and
8533 consolidate identical switch cases. Don't conditionalize handling
8534 of DBUS_TYPE_UINT64, need to handle the type always.
8535 (_dbus_marshal_validate_arg): consolidate identical cases, and
8536 handle DBUS_TYPE_OBJECT_ID
8538 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8540 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8542 2003-09-28 Havoc Pennington <hp@pobox.com>
8546 2003-09-28 Havoc Pennington <hp@pobox.com>
8548 * doc/Makefile.am (dbus-specification.html): testing a funky hack
8549 to work with Debian db2html
8551 2003-09-28 Havoc Pennington <hp@pobox.com>
8553 * configure.in: 0.13
8555 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8556 stylesheet-images for benefit of Debian
8558 Change back to using filesystem-linked sockets for the system
8559 bus, so only root can create the default system bus address.
8561 * bus/system.conf.in: change to use
8562 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8564 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8567 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8568 here, and AC_DEFINE DBUS_SYSTEM_PATH
8570 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8573 * doc/busconfig.dtd:
8576 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8578 * doc/dbus-specification.sgml:
8579 Add activation reply values.
8581 2003-08-05 Havoc Pennington <hp@redhat.com>
8583 * configure.in: 0.12
8585 2003-08-05 Anders Carlsson <andersca@codefactory.se>
8587 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8588 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8589 (add_watch), (remove_watch), (create_source):
8590 Refcount fds, fixes some reentrancy issues.
8592 2003-07-30 Havoc Pennington <hp@redhat.com>
8594 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8595 bus address to be abstract if we have abstract sockets
8599 2003-07-28 Havoc Pennington <hp@redhat.com>
8601 * bus/messagebus.in: fix to avoid processname/servicename
8602 confusion, from Michael Kearey
8603 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8605 2003-07-23 Havoc Pennington <hp@pobox.com>
8607 * dbus/dbus-message.c (dbus_message_iter_get_named):
8608 fix from Andy Hanton to remove broken "+1"
8610 2003-07-16 Havoc Pennington <hp@pobox.com>
8612 * tools/dbus-launch.c (babysit): close stdout/stderr in the
8613 babysitter process, as suggested by Thomas Leonard, so
8614 an "eval `dbus-launch --exit-with-session`" will actually
8617 2003-07-16 Havoc Pennington <hp@pobox.com>
8619 * configure.in: print out EXPANDED_* variables in the summary at
8620 the end; clean up the code that computes EXPANDED_ variables and
8621 get the ones using exec_prefix right. Should make things work
8622 when you build without --prefix
8624 2003-06-29 Havoc Pennington <hp@pobox.com>
8626 * mono/Test.cs (class Test): fire up a main loop and run it
8628 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8629 done once, the app has to do it
8631 2003-06-26 Havoc Pennington <hp@pobox.com>
8633 * mono/Connection.cs: set up connection with the glib main loop
8635 2003-07-01 Havoc Pennington <hp@redhat.com>
8637 * doc/dbus-specification.sgml: clarify the format of a type code,
8638 change suggested by Jim Blandy
8640 2003-06-29 Miloslav Trmac <mitr@volny.cz>
8643 * tools/Makefile.am: Don't assume srcdir == builddir.
8645 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8646 the allocated block.
8647 (_dbus_memory_test): New function.
8648 * dbus/dbus-test.h: Add _dbus_memory_test ().
8649 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8651 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8653 (dbus_message_new): Remove obsolete @todo.
8655 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8656 (_dbus_marshal_set_uint64): Fix comment.
8658 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8659 hardcode FIELD_REPLY_SERIAL.
8661 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8662 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8664 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8665 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8667 2003-06-24 Havoc Pennington <hp@pobox.com>
8669 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8671 2003-06-23 Anders Carlsson <andersca@codefactory.se>
8677 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8678 * gcj/org/.cvsignore:
8679 * gcj/org/Makefile.am:
8680 * gcj/org/freedesktop/.cvsignore:
8681 * gcj/org/freedesktop/Makefile.am:
8682 * gcj/org/freedesktop/dbus/.cvsignore:
8683 * gcj/org/freedesktop/dbus/Makefile.am:
8684 * gcj/org/freedesktop/dbus/Message.java: (Message),
8686 * gcj/org/freedesktop/dbus/natMessage.cc:
8687 Fix the build system.
8689 2003-06-22 Havoc Pennington <hp@pobox.com>
8691 * mono/Connection.cs: add more bindings
8693 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8696 2003-06-22 Havoc Pennington <hp@pobox.com>
8698 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8699 Start wrapping more stuff.
8701 2003-06-22 Havoc Pennington <hp@pobox.com>
8703 * mono/Message.cs: implement Message.Wrap() that ensures we only
8704 have a single C# wrapper per DBusMessage, assuming it works which
8705 it probably doesn't.
8707 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8708 (dbus_message_free_data_slot): new
8709 (dbus_message_set_data): new
8710 (dbus_message_get_data): new
8712 2003-06-22 Havoc Pennington <hp@pobox.com>
8714 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8715 (_dbus_data_slot_allocator_alloc): rework these to keep a
8716 reference count on each slot and automatically manage a global
8717 slot ID variable passed in by address
8719 * bus/bus.c: convert to new dataslot API
8721 * dbus/dbus-bus.c: convert to new dataslot API
8723 * dbus/dbus-connection.c: convert to new dataslot API
8725 * dbus/dbus-server.c: convert to new dataslot API
8727 * glib/dbus-gmain.c: ditto
8731 * bus/connection.c: ditto
8733 2003-06-22 Anders Carlsson <andersca@codefactory.se>
8735 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8736 after the gcj checks so that the correct configuration tags
8737 will be added to libtool.
8739 * dbus-glib-1.pc.in: No need to specify any includes since
8740 dbus-1.pc.in has those.
8742 2003-06-22 Havoc Pennington <hp@pobox.com>
8744 * mono/*, gcj/*, configure.in, Makefile.am:
8745 Check in makefiles and subdirs for mono and gcj bindings.
8746 Neither binding actually exists, just trying to get through
8747 all the build and other boring bits.
8749 2003-06-21 Philip Blundell <philb@gnu.org>
8751 * tools/dbus-monitor.1: Updated.
8753 * tools/dbus-send.1: Likewise.
8755 2003-06-20 Anders Carlsson <andersca@codefactory.se>
8757 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8758 for hangup and error after checking read so we won't discard
8759 pending data if both hangup and read are set.
8761 2003-06-19 Philip Blundell <philb@gnu.org>
8763 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8765 * tools/dbus-send.c: Accept both --system and --session.
8767 * tools/dbus-monitor.c: Same here.
8769 2003-06-19 Anders Carlsson <andersca@codefactory.se>
8771 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8772 from C++ (Patch by Miloslav Trmac).
8774 2003-06-15 Joe Shaw <joe@assbarn.com>
8776 * configure.in: Check for socklen_t.
8778 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8780 * test/test-segfault.c: Add #include <sys/time.h>
8782 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8783 dbus-launch needs it.
8785 2003-06-09 Havoc Pennington <hp@redhat.com>
8787 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8788 SUN_LEN, it breaks abstract socket usage
8790 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8793 2003-06-04 Havoc Pennington <hp@pobox.com>
8795 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8796 using unix:abstract=/foo, and when listening in a tmpdir
8797 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8799 * dbus/dbus-transport.c (_dbus_transport_open): support
8802 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8803 support abstract sockets
8805 * dbus/dbus-transport-unix.c
8806 (_dbus_transport_new_for_domain_socket): support abstract sockets
8808 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8809 toggle as an argument, implement abstract namespace support
8810 (_dbus_listen_unix_socket): ditto
8812 * configure.in: add --enable-abstract-sockets and implement
8813 a configure check for autodetection of the right value.
8815 2003-06-01 Havoc Pennington <hp@pobox.com>
8817 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8818 in /tmp (though on Linux this will end up being useless,
8819 when we add abstract namespace support)
8821 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8824 2003-05-28 Colin Walters <walters@verbum.org>
8826 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8828 2003-05-18 Anders Carlsson <andersca@codefactory.se>
8830 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8832 2003-05-17 Colin Walters <walters@gnu.org>
8834 * tools/dbus-send.c: Don't exit with an error code if --help was
8835 passed. Default to using the session bus instead of the system
8838 * tools/dbus-launch.c: Ditto.
8840 * tools/dbus-monitor.c: Ditto.
8842 * tools/dbus-send.1: Update with new arguments.
8844 * tools/dbus-launch.c: Emit code to export variables. New
8845 arguments -s and -c to specify shell syntax, and a bit of code to
8846 autodetect syntax. Also, allow specifying a program to run.
8848 * tools/dbus-launch.1: Update with new arguments.
8850 * tools/dbus-send.1: Ditto.
8852 * tools/dbus-monitor.1: Ditto.
8854 2003-05-17 Havoc Pennington <hp@pobox.com>
8856 * bus/config-parser.c (merge_included): merge in policies from
8857 child configuration file.
8859 * bus/policy.c (bus_policy_merge): function to merge two policies
8862 2003-05-16 Havoc Pennington <hp@redhat.com>
8864 * dbus/dbus-connection.c: disable verbose lock spew
8866 * tools/dbus-send.c: add --print-reply command line option
8868 * tools/dbus-print-message.h (print_message): new util function
8869 shared by dbus-send and dbus-monitor
8871 * tools/dbus-monitor.c (handler_func): exit on disconnect
8873 * dbus/dbus-transport-unix.c (do_reading): if the transport is
8874 disconnected, don't try to use the read_watch
8876 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8877 so we can find this bug more easily
8879 2003-05-16 Havoc Pennington <hp@redhat.com>
8881 * bus/policy.c (free_rule_list_func): avoid a crash when passed
8882 NULL as DBusHashTable is annoyingly likely to do.
8884 2003-05-16 Colin Walters <walters@verbum.org>
8886 * tools/dbus-monitor.c: Add --session argument and usage()
8889 * tools/dbus-monitor.1: Update with new --session arg.
8891 * bus/Makefile.am (install-data-hook): Create
8892 $(libdir)/dbus-1.0/services so that the session bus is happy.
8894 2003-05-15 Havoc Pennington <hp@redhat.com>
8896 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8897 on non-x86. ifdef's are evil.
8899 2003-05-15 Havoc Pennington <hp@redhat.com>
8901 * configure.in: 0.11
8905 * bus/Makefile.am (initddir): apparently we are supposed to put
8906 init scripts in /etc/rc.d/init.d not /etc/init.d
8908 * bus/Makefile.am: remove the "you must --enable-tests to make
8909 check" as it broke distcheck
8911 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8913 2003-05-13 James Willcox <jwillcox@gnome.org>
8916 * bus/activation.c: (bus_activation_service_created),
8917 (bus_activation_activate_service):
8918 * bus/driver.c: (bus_driver_send_service_deleted),
8919 (bus_driver_send_service_created), (bus_driver_send_service_lost),
8920 (bus_driver_send_service_acquired),
8921 (bus_driver_send_welcome_message),
8922 (bus_driver_handle_list_services):
8923 * bus/session.conf.in:
8924 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8925 (dbus_bus_service_exists), (dbus_bus_activate_service):
8928 Add some convenience API which lets you activate a service, and did a
8929 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8930 and dbus_message_get_args()
8932 2003-05-11 Havoc Pennington <hp@pobox.com>
8934 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8935 calling _dbus_marshal_validate_arg() for every byte in a byte
8938 * dbus/dbus-message-handler.c: use atomic reference counting to
8939 reduce number of locks slightly; the global lock in here sucks
8941 * dbus/dbus-connection.c
8942 (_dbus_connection_update_dispatch_status_and_unlock): variant of
8943 update_dispatch_status that can be called with lock held; then use
8944 in a couple places to reduce locking/unlocking
8945 (dbus_connection_send): hold the lock over the whole function
8946 instead of acquiring it twice.
8948 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8950 * bus/connection.c (bus_connections_setup_connection): fix access
8951 to already-freed memory.
8953 * dbus/dbus-connection.c: keep a little cache of linked list
8954 nodes, to avoid using the global linked list alloc lock in the
8955 normal send-message case. Instead we just use the connection lock
8956 that we already have to take.
8958 * dbus/dbus-list.c (_dbus_list_find_last): new function
8960 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8961 change to use a struct for the atomic type; fix docs,
8962 they return value before increment, not after increment.
8964 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8965 (_dbus_string_append_8_aligned): new functions to try to
8966 microoptimize this operation.
8967 (reallocate_for_length): break this out of set_length(), to
8968 improve profile info, and also so we can consider inlining the
8971 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8972 strings with some preallocation, cuts down on our calls to realloc
8973 a fair bit. Though if we can get the "move entire string to empty
8974 string" optimization below to kick in here, it would be better.
8976 * dbus/dbus-string.c (_dbus_string_move): just call
8977 _dbus_string_move_len
8978 (_dbus_string_move_len): add a special case for moving
8979 an entire string into an empty string; we can just
8980 swap the string data instead of doing any reallocs.
8981 (_dbus_string_init_preallocated): new function
8983 2003-05-11 Havoc Pennington <hp@pobox.com>
8985 Write a "test-profile" that does echo client-server with threads;
8986 profile reveals lock contention, memcpy/realloc of buffers, and
8987 UTF-8 validation as hot spots. 20% of lock contention eliminated
8988 with dbus_atomic_inc/dec implementation on x86. Much remaining
8989 contention is global mempool locks for GList and DBusList.
8991 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8994 * dbus/dbus-connection.c (struct DBusConnection): use
8995 dbus_atomic_t for the reference count
8997 * dbus/dbus-message.c (struct DBusMessage): declare
8998 dbus_atomic_t values as volatile
9000 * configure.in: code to detect ability to use atomic integer
9001 operations in assembly, from GLib patch
9003 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9004 time, tired of it being wrong in threads and forked processes
9006 * glib/test-profile.c: a little program to bounce messages back
9007 and forth between threads and eat CPU
9009 * dbus/dbus-connection.c: add debug spew macros for debugging
9010 thread locks; include config.h at top; fix deadlock in
9011 dbus_connection_flush()
9013 2003-05-08 Havoc Pennington <hp@pobox.com>
9015 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9016 data from getting written, and there wasn't a good reason to
9019 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9020 dbus_verbose lines in test coverage
9021 (main): add list of functions sorted by # of untested blocks
9022 to the coverage report
9024 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9026 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9028 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9029 extend test coverage
9031 * test/data/auth/cancel.auth-script: test canceling an
9034 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9035 aren't used. in CVS history if we end up needing them.
9037 2003-05-04 Havoc Pennington <hp@pobox.com>
9039 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9042 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9043 function, which assumed length was in # of strings, not bytes
9045 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9048 * dbus/dbus-connection.c
9049 (_dbus_connection_queue_received_message): disable function for
9050 now, we are only using it in test mode
9052 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9053 remove a mistaken FIXME
9055 2003-05-04 Havoc Pennington <hp@pobox.com>
9057 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9058 unlock mutex on successful return, patch from Anders Gustafsson
9060 2003-05-04 Havoc Pennington <hp@pobox.com>
9062 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9065 2003-05-04 Havoc Pennington <hp@pobox.com>
9067 * tools/dbus-launch.c: implement
9069 * bus/main.c (main), bus/bus.c (bus_context_new):
9070 implement --print-pid and --fork
9072 2003-05-03 Havoc Pennington <hp@redhat.com>
9074 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9075 the address had no value, and add to test suite. Fix and
9076 regression test from Miloslav Trmac
9078 2003-05-03 Havoc Pennington <hp@pobox.com>
9080 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9081 watch is invalid when handled
9083 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9084 dbus-launch utility to launch the bus from a shell script. Didn't
9085 actually implement dbus-launch yet, it's just a placeholder still.
9087 2003-05-03 Havoc Pennington <hp@pobox.com>
9089 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9090 daemon; also documents daemon config file, so replaces
9091 doc/config-file.txt. Corrected some stuff from config-file.txt in
9092 the process of moving it.
9094 2003-05-03 Havoc Pennington <hp@pobox.com>
9096 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9099 2003-05-03 Colin Walters <walters@verbum.org>
9101 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9102 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9104 * Makefile.am: Update to use new .pc versioning scheme.
9106 2003-05-02 Havoc Pennington <hp@redhat.com>
9108 * bus/system.conf.in: allow send/receive to/from message bus
9111 2003-04-30 Havoc Pennington <hp@redhat.com>
9113 * configure.in: print a note when building with unit tests and
9116 2003-04-30 Havoc Pennington <hp@redhat.com>
9118 * Makefile.am: add a check-local that complains if you didn't
9119 configure with --enable-tests
9121 2003-04-29 Havoc Pennington <hp@redhat.com>
9123 * glib/dbus-gmain.c: docs cleanups
9125 * dbus/dbus-types.h: add docs on int64 types
9127 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9128 public API docs section
9130 2003-04-29 Havoc Pennington <hp@redhat.com>
9132 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9133 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9134 parallel install API version, not with the D-BUS package version.
9136 * HACKING: move some of README over here
9138 * README: updates, and document API/ABI policy
9140 * configure.in: reindentation
9142 2003-04-29 Havoc Pennington <hp@redhat.com>
9144 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9145 to use this library" to be sure people have the right
9148 2003-04-28 Havoc Pennington <hp@redhat.com>
9150 * configure.in: add --enable-docs which by default is auto yes if
9151 doxygen and db2html found, no otherwise; but can be forced on/off
9153 * doc/Makefile.am: conditionalize whether to build docs on
9156 2003-04-28 Havoc Pennington <hp@redhat.com>
9158 * configure.in: 0.10
9162 * bus/system.conf.in: add <includedir>system.d</includedir>
9164 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9165 username was provided but not uid
9167 * bus/config-parser.c (struct BusConfigParser): keep track of
9168 whether the parser is toplevel or was included; change some
9169 of the error handling if it's included.
9171 2003-04-27 Havoc Pennington <hp@pobox.com>
9175 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9176 report correct status if we finish processing authentication
9177 inside this function.
9179 * bus/activation.c (try_send_activation_failure): use
9180 bus_transaction_send_error_reply
9182 * bus/connection.c (bus_connection_get_groups): return an error
9183 explaining the problem
9185 * bus/bus.c (bus_context_check_security_policy): implement
9186 restriction here that inactive connections can only send the
9187 hello message. Also, allow bus driver to send anything to
9190 * bus/connection.c (bus_connection_complete): create the
9191 BusClientPolicy here instead of on-demand.
9192 (bus_connection_get_policy): don't return an error
9194 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9195 sender field in message being replied to
9197 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9198 causing it to return FALSE always
9200 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9201 we checked sender rather than destination
9203 2003-04-25 Havoc Pennington <hp@redhat.com>
9205 test suite is slightly hosed at the moment, will fix soon
9207 * bus/connection.c (bus_connections_expire_incomplete): fix to
9208 properly disable the timeout when required
9209 (bus_connection_set_name): check whether we can remove incomplete
9210 connections timeout after we complete each connection.
9212 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9213 probably still broken.
9215 * bus/services.c (bus_registry_acquire_service): implement max
9216 number of services owned, and honor allow/deny rules on which
9217 services a connection can own.
9219 * bus/connection.c (bus_connection_get_policy): report errors here
9221 * bus/activation.c: implement limit on number of pending
9224 2003-04-25 Havoc Pennington <hp@redhat.com>
9226 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9227 where we used >= 0 instead of != DBUS_UID_UNSET.
9229 2003-04-25 Havoc Pennington <hp@redhat.com>
9231 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9232 were toggled without add/remove, fix from Anders Gustafsson
9234 2003-04-24 Havoc Pennington <hp@redhat.com>
9236 * test/data/valid-config-files/basic.conf: add <limit> tags to
9239 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9240 <limit> tag in configuration file.
9242 2003-04-24 Havoc Pennington <hp@redhat.com>
9244 * bus/dispatch.c: somehow missed some name_is
9246 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9247 (_dbus_timeout_set_interval): new
9249 * bus/connection.c (bus_connections_setup_connection): record time
9250 when each connection is first set up, and expire them after the
9251 auth timeout passes.
9253 2003-04-24 Havoc Pennington <hp@redhat.com>
9255 * dbus/dbus-message.c (dbus_message_name_is): rename
9256 (dbus_message_service_is): rename
9257 (dbus_message_sender_is): rename
9258 (dbus_message_get_service): rename
9260 2003-04-24 Havoc Pennington <hp@redhat.com>
9262 * configure.in: add --enable-checks
9264 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9266 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9267 to use thread locks.
9268 (_dbus_connection_handler_destroyed_locked): move some private
9269 functions into proper docs group
9271 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9272 _dbus_return_val_if_fail
9274 Throughout: use dbus_return_if_fail
9276 2003-04-23 James Willcox <jwillcox@gnome.org>
9279 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9280 (dbus_connection_setup_with_g_main),
9281 (dbus_server_setup_with_g_main):
9282 * glib/test-dbus-glib.c: (main):
9283 * glib/test-thread-client.c: (main):
9284 * glib/test-thread-server.c: (new_connection_callback), (main):
9285 * tools/dbus-monitor.c: (main):
9287 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9288 and dbus_server_setup_with_g_main().
9290 2003-04-20 Havoc Pennington <hp@pobox.com>
9292 * doc/dbus-specification.sgml: document the restrictions on
9293 message and service names
9295 2003-04-22 Havoc Pennington <hp@redhat.com>
9297 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9298 support, and do some code cleanups to share more code and
9299 speed up array marshal/demarshal.
9301 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9303 * configure.in: generate dbus-arch-deps.h
9305 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9308 2003-04-22 Havoc Pennington <hp@redhat.com>
9310 * test/data/valid-messages/opposite-endian.message: fix test
9311 to use proper type for rply field
9313 * test/data/invalid-messages: add tests for below validation
9315 * dbus/dbus-message.c (decode_header_data): validate field types,
9316 and validate that named fields are valid names
9317 (decode_name_field): consider messages in the
9318 org.freedesktop.Local. namespace to be invalid.
9320 * dbus/dbus-string.c (_dbus_string_validate_name): new
9322 2003-04-19 Havoc Pennington <hp@pobox.com>
9324 * bus/driver.c (bus_driver_handle_hello): check limits and
9325 return an error if they are exceeded.
9327 * bus/connection.c: maintain separate lists of active and inactive
9328 connections, and a count of each. Maintain count of completed
9329 connections per user. Implement code to check connection limits.
9331 * dbus/dbus-list.c (_dbus_list_unlink): export
9333 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9334 number of bytes in the message queue for a connection
9336 2003-04-18 Havoc Pennington <hp@pobox.com>
9338 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9340 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9343 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9344 on realloc be sure to update the pointer in the keyring
9346 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9347 offset to avoid writing to unallocated memory
9349 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9350 try the next mechanism, so we properly handle OOM
9352 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9354 (_dbus_keyring_new): fix OOM bug
9355 (_dbus_keyring_new_homedir): always set error; impose a maximum
9356 number of keys we'll load from the file, mostly to speed up the
9357 test suite and make its OOM checks more useful, but also for
9360 * dbus/dbus-auth.c (process_error_server): reject authentication
9361 if we get an error from the client
9362 (process_cancel): on cancel, send REJECTED, per the spec
9363 (process_error_client): send CANCEL if we get an error from the
9366 2003-04-18 Havoc Pennington <hp@pobox.com>
9368 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9371 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9374 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9375 about DBUS_TEST_HOMEDIR once
9377 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9380 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9381 config file so we test the right thing
9383 Throughout: assorted docs improvements
9385 2003-04-18 Havoc Pennington <hp@pobox.com>
9387 * glib/dbus-gmain.c: adapt to watch changes
9389 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9391 * dbus/dbus-server.h: remove dbus_server_handle_watch
9393 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9395 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9396 like DBusTimeout, so we don't need dbus_connection_handle_watch
9399 2003-04-17 Havoc Pennington <hp@redhat.com>
9401 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9402 database usage so it all goes via the DBusUserDatabase cache.
9404 2003-04-17 Havoc Pennington <hp@redhat.com>
9406 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9407 there was an OOM watch we skipped, we always return TRUE so we
9408 iterate again to have a look at it again. Fixes test suite hang.
9409 Code rearrangement also lets us lose some memset and only iterate
9410 over callbacks once.
9412 * bus/driver.c (bus_driver_handle_message): sense of test for
9415 2003-04-16 Havoc Pennington <hp@pobox.com>
9417 * doc/dbus-specification.sgml: make spec say serials are unsigned
9419 * dbus/dbus-message.h: change message serials to unsigned
9421 * dbus/dbus-connection.c: adapt to message serials being unsigned
9423 2003-04-15 Havoc Pennington <hp@pobox.com>
9425 * bus/bus.c: create and keep around a shared DBusUserDatabase
9428 * bus/connection.c (bus_connection_get_groups): don't cache
9429 groups for user in the connection object, since user database
9430 object now does that.
9432 2003-04-16 Havoc Pennington <hp@redhat.com>
9434 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9435 list of size counters
9436 (_dbus_message_loader_putback_message_link): put back a popped link
9438 * dbus/dbus-connection.c
9439 (dbus_connection_set_max_live_messages_size): rename
9441 (dbus_connection_get_outgoing_size): get size of outgoing
9443 (_dbus_connection_set_connection_counter): remove this cruft
9445 2003-04-14 Havoc Pennington <hp@redhat.com>
9447 * dbus/dbus-userdb.c: user database abstraction, mostly to get
9448 caching, but at some point we might want to be able to use a
9451 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9452 SHA1 conf file to test the sha1 auth mechanism, since the regular
9453 test always uses EXTERNAL when available.
9456 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9457 add conf file that requires use of sha1 auth
9459 2003-04-13 Havoc Pennington <hp@pobox.com>
9461 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9462 from Philip Blundell to send messages and monitor them.
9464 2003-04-13 Havoc Pennington <hp@pobox.com>
9466 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9469 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9472 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9473 fix to only recover unused bytes if we're already authenticated
9474 (_dbus_transport_get_is_authenticated): fix to still mark us
9475 authenticated if there are unused bytes.
9477 * bus/dispatch.c: implement security policy checking
9479 * bus/connection.c (bus_transaction_send_from_driver): new
9481 * bus/bus.c (bus_context_check_security_policy): new
9483 * bus/dispatch.c (send_service_nonexistent_error): delete this,
9484 now we just set the DBusError and it gets converted to an error
9487 * bus/connection.c (allow_user_function): enable code using actual
9488 data from the config file
9490 * bus/policy.c (list_allows_user): handle wildcard rules for
9491 user/group connection perms
9493 2003-04-13 Havoc Pennington <hp@pobox.com>
9495 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9497 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9499 * bus/policy.c (bus_policy_append_mandatory_rule)
9500 (bus_policy_append_default_rule, bus_policy_append_user_rule)
9501 (bus_policy_append_group_rule): new functions
9503 2003-04-12 Havoc Pennington <hp@pobox.com>
9505 * bus/config-parser.c (bus_config_parser_new): fix a memleak
9507 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9508 the pid/gid/uid, just for paranoia.
9510 * test/break-loader.c (randomly_do_n_things): find a byte
9511 containing a type code, and randomly change it to a different
9514 2003-04-12 Havoc Pennington <hp@pobox.com>
9516 * bus/policy.h: change BusPolicy to be the thing from the config
9517 file, and rename old BusPolicy to BusClientPolicy
9519 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9520 match change in how policy works
9522 * dbus/dbus-internals.h: mark assert_not_reached as
9523 __attribute((noreturn))__
9525 2003-04-11 Havoc Pennington <hp@redhat.com>
9527 * doc/dbus-specification.sgml: fix a spot with the wrong name for
9528 the broadcast service. Use boolean return for ServiceExists.
9530 2003-04-11 Havoc Pennington <hp@redhat.com>
9532 * configure.in: add another directory to look for qt in.
9534 2003-04-11 Havoc Pennington <hp@redhat.com>
9536 * AUTHORS: add Colin Walters
9538 2003-04-11 Havoc Pennington <hp@redhat.com>
9544 2003-04-11 Havoc Pennington <hp@redhat.com>
9546 * bus/messagebus.in: remove pid file when stopping the
9547 message bus, since the bus won't have privileges to remove it
9550 2003-04-11 Havoc Pennington <hp@redhat.com>
9552 * bus/bus.c (bus_context_new): move credentials change after
9555 2003-04-11 Havoc Pennington <hp@pobox.com>
9557 * test/decode-gcov.c: add "below average functions" to the
9558 coverage report, and change how some of the code works.
9560 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9561 not in the coverage stats.
9563 * test/test-service.c (main): use _dbus_verbose not fprintf in a
9564 couple places so running the test suite doesn't result in megaspam.
9566 2003-04-11 Havoc Pennington <hp@pobox.com>
9568 * bus/dispatch.c (check_existent_service_activation): accept a no
9569 memory error in a place we didn't before
9571 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9572 in case the first one failed," since the test suite is less
9575 2003-04-10 Havoc Pennington <hp@pobox.com>
9577 * bus/dispatch.c (check_segfault_service_activation): add test
9578 for launching an executable that just crashes.
9580 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9581 don't leave a million cores. We'll see how portable this is.
9583 2003-04-10 Havoc Pennington <hp@pobox.com>
9585 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9586 the possible parent failures before we fork, so that we don't
9587 fail to create a babysitter after creating the child.
9589 * bus/activation.c (bus_activation_activate_service): kill child
9590 if we don't successfully complete the activation.
9592 2003-04-10 Havoc Pennington <hp@redhat.com>
9594 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9595 the connection if it's disconnected
9597 * bus/activation.c (bus_activation_service_created): use new
9598 transaction features to roll back removal of pending activation if
9599 we don't successfully create the service after all. Don't remove
9600 pending activation if the function fails.
9602 * dbus/dbus-list.c (_dbus_list_insert_before_link)
9603 (_dbus_list_insert_after_link): new code to facilitate
9606 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9607 new functionality, so we can preallocate the ability to insert
9610 * bus/connection.c (bus_transaction_add_cancel_hook): new function
9611 allowing us to put custom hooks in a transaction to be used for
9612 cancelling said transaction
9614 * doc/dbus-specification.sgml: add some discussion of secondary
9615 service owners, and disallow zero-length service names
9617 * bus/services.c (bus_registry_acquire_service): new function,
9618 splits out part of bus_driver_handle_acquire_service() and fixes
9619 a bug where we didn't remove the service doing the acquiring
9620 from the secondary queue if we failed to remove the current owner
9621 from the front of the queue.
9623 2003-04-10 Alexander Larsson <alexl@redhat.com>
9625 * doc/dbus-specification.sgml:
9626 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9628 2003-04-10 Alexander Larsson <alexl@redhat.com>
9633 Added files to cvsignore
9635 * dbus/dbus-message.h:
9636 * dbus/dbus-message.c: (dbus_message_iter_get_named):
9637 Make get_named() take two out argument and return a boolean.
9638 (dbus_message_iter_get_args_valist):
9639 Update usage of get_named().
9640 (dbus_message_iter_append_byte):
9642 (dbus_message_iter_append_named)
9644 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9647 2003-04-10 Alexander Larsson <alexl@redhat.com>
9649 * dbus/dbus-marshal.[ch]:
9650 Add array_type_pos argument to _dbus_marshal_validate_arg.
9651 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9653 * dbus/dbus-message.[ch]:
9654 Multi-dimensional arrays have full type specification in the
9655 outermost array. Iter code re-arranged to handle this.
9656 Added some more iter tests.
9658 * doc/dbus-specification.sgml:
9661 Update new array encoding description.
9662 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9664 * test/data/invalid-messages/array-with-mixed-types.message:
9665 * test/data/valid-messages/array-of-array-of-uint32.message:
9666 Change to the new array format.
9668 * test/data/invalid-messages/too-short-dict.message:
9671 * test/data/valid-messages/recursive-types.message:
9672 Fix up and extend test.
9674 2003-04-10 Havoc Pennington <hp@pobox.com>
9676 * bus/dispatch.c: lots of fixes
9678 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9679 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9680 that was crack, broke the test service.
9682 * dbus/dbus-transport.c (_dbus_transport_open): fix error
9683 handling to avoid piling up errors if we get a failure on the
9686 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9687 pid in assertion failures.
9689 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9690 to some fixed size of file descriptor array. Don't return TRUE
9691 anytime a timeout exists, that led to lots of busy loop silliness
9694 2003-04-09 Havoc Pennington <hp@redhat.com>
9696 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9697 I'd checked this in earlier but hadn't.
9699 2003-04-09 Havoc Pennington <hp@redhat.com>
9701 * bus/dispatch.c (bus_dispatch_test): get a bit further through
9702 the activation test (man this is getting old!)
9704 2003-04-09 Havoc Pennington <hp@redhat.com>
9706 * test/test-utils.c: use dispatch status function to fix this up
9708 * bus/connection.c (connection_watch_callback): don't dispatch
9710 (connection_timeout_callback): don't dispatch from here
9711 (bus_connections_setup_connection): set the dispatch status function
9712 (bus_connection_disconnected): unset it
9714 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9715 used to add a connection to be dispatched
9716 (_dbus_loop_iterate): do the dispatching at the end of each
9719 * dbus/dbus-connection.c
9720 (dbus_connection_set_dispatch_status_function): new function
9721 allowing us to fix up main loop usage
9722 (_dbus_connection_last_unref): free all the various function
9724 (dbus_connection_dispatch): call the DispatchStatusFunction
9725 whenever this function returns
9726 (dbus_connection_handle_watch): call DispatchStatusFunction
9727 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9728 (reply_handler_timeout): call DispatchStatusFunction
9729 (dbus_connection_flush): call DispatchStatusFunction
9731 2003-04-09 Havoc Pennington <hp@redhat.com>
9733 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9736 * bus/dispatch.c (check_service_activated): fix bug in test
9738 * dbus/dbus-mainloop.c (check_timeout): fix this up
9740 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9741 verbose output so we can sort out output from different processes,
9742 e.g. in the activation case.
9744 2003-04-08 Colin Walters <walters@gnu.org>
9746 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9748 (bus_context_new): Set it.
9749 (bus_context_unref): Use it to delete the pid file.
9751 2003-04-08 Havoc Pennington <hp@redhat.com>
9753 * test/data/invalid-messages/array-with-mixed-types.message:
9754 regression test that fails for the moment
9756 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9757 tests for convenience
9759 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9760 array of nil, it broke things.
9762 * test/data/invalid-messages/array-of-nil.message: regression test
9764 * test/data/valid-messages/array-of-array-of-uint32.message:
9765 happened to write this so added it to suite
9767 2003-04-08 Havoc Pennington <hp@redhat.com>
9769 * bus/driver.c (bus_driver_handle_acquire_service): init
9770 retval/reply before checking name
9772 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9773 recursion depth argument
9775 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9776 in the public struct for future extension
9778 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9781 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9784 * doc/dbus-specification.sgml: fix typo
9786 2003-04-08 Alexander Larsson <alexl@redhat.com>
9788 Implemented recursive types, named types and new-style iters
9791 * glib/test-thread-client.c: (thread_func):
9792 * glib/test-thread-server.c: (handle_test_message):
9793 * test/test-service.c: (handle_echo):
9802 * dbus/dbus-internals.c: (_dbus_type_to_string):
9803 Update for new types.
9805 * dbus/dbus-marshal.[ch]:
9806 Implement recursive types and the new marshalling format.
9807 Remove hardcoded dict marshalling.
9808 Marshal named types.
9810 * dbus/dbus-message-builder.c:
9812 Remove references to old types
9814 * dbus/dbus-message.[ch]:
9815 New non-refcounted iter API that supports recursive iters.
9816 Use iters for appending, including support for recursive
9818 Add byte and named type support.
9819 Update everything to new marshalling formats.
9820 Add tests for new API.
9822 * dbus/dbus-protocol.h:
9823 Remove old array types.
9824 Add types: BYTE, ARRAY, DICT, NAMED
9826 * dbus/dbus-string.c:
9827 * dbus/dbus-sysdeps.c:
9828 Make parse_double locale safe.
9830 * dbus/dbus-test-main.c:
9836 * doc/dbus-specification.sgml:
9839 * test/data/incomplete-messages/missing-body.message:
9840 * test/data/invalid-messages/bad-boolean.message:
9841 * test/data/invalid-messages/bad-boolean-array.message:
9842 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9843 * test/data/invalid-messages/boolean-has-no-value.message-raw:
9844 * test/data/invalid-messages/too-short-dict.message:
9845 * test/data/valid-messages/dict-simple.message:
9846 * test/data/valid-messages/dict.message:
9847 * test/data/valid-messages/emptiness.message:
9848 * test/data/valid-messages/lots-of-arguments.message:
9849 * test/data/valid-messages/no-padding.message:
9850 * test/data/valid-messages/recursive-types.message:
9851 Add missing NAME fields
9852 Fix up dicts & arrays
9854 * test/data/invalid-messages/dict-with-nil-value.message:
9855 Removed, this is not invalid anymore.
9857 * test/data/valid-messages/recursive-types.message:
9858 Add new test for deeply recursive types.
9860 2003-04-07 Havoc Pennington <hp@pobox.com>
9862 * bus/driver.c (bus_driver_handle_acquire_service): return an
9863 error if you try to acquire a service that starts with ':'
9865 2003-04-07 Havoc Pennington <hp@redhat.com>
9867 * doc/dbus-specification.sgml: require that base service names
9868 start with ':' and that the base service is created/deleted
9869 as first and last things a connection does on the bus
9871 * bus/dispatch.c (check_existent_service_activation): lots more
9872 work on the activation test; it doesn't fully pass yet...
9874 * test/test-service.c (main): fix so we don't memleak the
9875 connection to the message bus
9876 (filter_func): accept a message asking us to exit
9878 2003-04-06 Havoc Pennington <hp@pobox.com>
9880 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9883 * configure.in: fixes to Qt detection from Colin Walters
9885 * doc/Makefile.am: Only remove generated docbook dirs if they
9886 exist, from Colin Walters
9888 * dbus/dbus-bus.c: change how we set well-known connections to
9889 NULL, so that it works if a single connection is stored in
9890 two well-known array slots.
9892 * test/Makefile.am: remove a lot of stuff that isn't immediately
9893 useful, it's in CVS history if we want it.
9895 * test/test-service.c: use dbus-mainloop instead of that
9898 2003-04-06 Havoc Pennington <hp@pobox.com>
9900 * dbus/Makefile.am: split lists of sources into stuff that goes in
9901 the library, util functions that go in the lib and are also used
9902 elsewhere, and util functions that are used in tests/daemon but
9903 don't go in the lib.
9905 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9906 here so it can be used in test binaries also
9908 2003-04-06 Havoc Pennington <hp@pobox.com>
9910 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9911 here in the parent process, so we can return an error if it
9912 fails. Also, move some of the code into the child so the parent
9913 is less hosed if we fail midway through.
9915 * bus/bus.c (bus_context_new): move pidfile detection further up
9916 in the function, before we start overwriting sockets and such.
9918 * bus/messagebus.in: adjust this a bit, not sure if it will work.
9920 * configure.in: add --with-system-pid-file and --with-system-socket
9922 2003-04-06 Colin Walters <walters@verbum.org>
9924 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9926 * bus/system.conf.in: Declare a pidfile.
9928 * bus/bus.c (bus_context_new): Test for an existing pid file, and
9929 create one (if appropriate).
9931 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9932 (struct BusConfigParser) [pidfile]: New.
9933 (element_type_to_name, merge_included, start_busconfig_child)
9934 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9935 (bus_config_parser_unref): Free it.
9936 (bus_config_parser_get_pidfile): New function.
9938 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9940 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9942 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9944 * dbus/dbus-sysdeps.h: Prototype it.
9946 2003-04-06 Havoc Pennington <hp@pobox.com>
9948 * bus/bus.c (bus_context_new): print the address in here, rather
9949 than in main(), because we need to do it before forking the daemon
9951 * bus/dispatch.c (send_service_nonexistent_error): set the sender
9952 on the service nonexistent error
9954 * bus/driver.c (bus_driver_handle_acquire_service): set the
9955 sender on the AcquireService reply
9957 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9958 server also listen on a UNIX socket so services can connect to it.
9960 2003-04-06 Havoc Pennington <hp@pobox.com>
9962 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9963 so it detects deadlocks and also we actually init threads when
9966 2003-04-06 Havoc Pennington <hp@pobox.com>
9968 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9969 save the domain socket name, and unlink it when we disconnect the
9970 server. Means that at least when we exit normally, we won't leave
9971 a bunch of junk in /tmp
9973 * dbus/dbus-transport-unix.c
9974 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9975 memory management). (I was making a real change here but then
9978 2003-04-06 Havoc Pennington <hp@pobox.com>
9980 * bus/bus.c (bus_context_new): fix wrong handling of
9981 server_data_slot_unref() in the error case.
9983 * dbus/dbus-internals.h (_dbus_assert): change so it passes
9984 "(condition) != 0" to _dbus_real_assert so that
9985 "_dbus_assert (pointer)" doesn't cause a warning
9987 * bus/main.c (main): accept --print-address option to print out
9988 the message bus address
9990 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9992 * dbus/dbus-transport.c (_dbus_transport_open): special error for
9993 "tmpdir" option to unix: address on client side
9995 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9998 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9999 we can use to create sockets in the test suite.
10001 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10002 cleanly. To be used for testing.
10004 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10006 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10008 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10009 handle trying to call this when there's no servers active
10011 2003-04-05 Havoc Pennington <hp@pobox.com>
10015 * configure.in: 0.8
10017 2003-04-05 Havoc Pennington <hp@pobox.com>
10019 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10020 crash on startup. Need to get "try starting the daemon"
10021 in the test suite I guess. ;-)
10023 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10024 tracked the number of open connections; it's better done in
10025 application-specific code as you want it to span all servers etc.
10027 2003-04-05 Havoc Pennington <hp@pobox.com>
10029 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10030 patch from Colin Walters
10032 2003-04-05 Havoc Pennington <hp@pobox.com>
10034 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10035 reality; in fact multiple mechanisms are allowed.
10037 * dbus/dbus-internals.c (_dbus_real_assert)
10038 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10039 _dbus_assert_not_reached() into functions, so that they don't show
10040 up in basic block counts for test coverage, and don't use up as
10041 much disk space. Does mean slower execution speed though, so
10042 assumes --disable-asserts is the normal production case.
10044 2003-04-05 Havoc Pennington <hp@pobox.com>
10046 * test/Makefile.am (dist-hook): also dist *.in files
10050 * configure.in: 0.7
10052 2003-04-05 Havoc Pennington <hp@pobox.com>
10054 * dbus/dbus-string.c: docs warning
10056 * dbus/dbus-spawn.c: missing docs
10058 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10060 2003-04-05 Havoc Pennington <hp@pobox.com>
10062 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10065 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10066 to -1 once we've reaped the babysitter
10067 (_dbus_babysitter_handle_watch): do as much work as we can, not
10070 * bus/activation.c: add code using DBusBabysitter so that we
10071 handle it when a service fails to start up properly.
10072 (bus_activation_service_created): don't remove the activation
10073 entries as we go, just let them get removed when we free the pending
10074 activation. Unref reply messages after sending them.
10076 2003-04-05 Havoc Pennington <hp@pobox.com>
10078 * test/decode-gcov.c (main): print per-directory stats in the report
10080 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10082 2003-04-05 Havoc Pennington <hp@pobox.com>
10084 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10086 * test/decode-gcov.c: hack up a little program to suck data
10087 out of gcov files. Yes this is sort of silly.
10089 * configure.in: define something in config.h and do an
10090 AM_CONDITIONAL when gcov is enabled
10092 2003-04-04 Havoc Pennington <hp@redhat.com>
10094 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10095 return a "babysitter" object that is used to monitor the status of
10096 the spawned process and reap it when required.
10098 * test/test-segfault.c, test/test-exit.c,
10099 test/test-sleep-forever.c: binaries that do various lame things,
10100 used in the test suite.
10102 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10104 2003-04-03 Havoc Pennington <hp@pobox.com>
10106 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10107 in preparation for modifying it, dbus-sysdeps is getting
10108 a bit unmanageable.
10110 2003-04-03 Havoc Pennington <hp@redhat.com>
10112 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10115 * bus/*.[hc]: adapt to mainloop change
10117 2003-04-03 Havoc Pennington <hp@redhat.com>
10119 * bus/activation.c (load_directory): fix up memleaks
10120 (bus_activation_entry_free): free the entry
10122 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10123 we get one from the message bus; fix memleaks.
10125 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10127 2003-04-03 Havoc Pennington <hp@pobox.com>
10129 * bus/config-parser.c (bus_config_parser_unref): free
10130 list of mechanisms, bug discovered by test suite enhancements
10131 (putting system.conf and session.conf into suite)
10133 * test/Makefile.am, test/test-service.c: add placeholder for a
10134 test service that we'll activate as part of test suite. Doesn't
10137 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10138 setting NULL value, and use system malloc not dbus_malloc()
10139 when we have unavoidable memleakage.
10141 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10142 didn't work, and support DBUS_BUS_ACTIVATION.
10144 * bus/activation.c (child_setup): pass our well-known bus type to
10147 * bus/config-parser.c: support <type> to specify well-known type
10149 * doc/dbus-specification.sgml: document the env variables to
10150 locate well-known buses and find service activator
10152 2003-04-02 Havoc Pennington <hp@redhat.com>
10154 * test/Makefile.am (all-local): add a rule to copy tests to
10155 builddir, so we can have generated tests. Use this to remove the
10156 silly hack for testing system.conf and session.conf. Will use this
10157 shortly to generate .service files pointing to test binaries.
10159 2003-04-02 Havoc Pennington <hp@redhat.com>
10161 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10162 current alloc and needed new length, not max of the doubled
10163 allocation and needed new length. Also, when building tests,
10164 don't do the double-allocation stuff, just realloc every time.
10166 2003-04-02 Havoc Pennington <hp@redhat.com>
10168 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10170 (_dbus_string_get_dirname): new
10171 (_dbus_sysdeps_test): new
10172 (_dbus_directory_open): include dirnames in error messages
10174 * bus/config-parser.c: interpret <include> and <includedir> and
10175 <servicedir> relative to config file location if the given
10176 filename is not absolute.
10178 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10180 2003-04-02 Havoc Pennington <hp@redhat.com>
10182 * bus/connection.c (bus_transaction_send_error_reply): set sender
10183 service for the error, and unref the reply on success
10185 * bus/activation.c: convert to use BusTransaction so OOM can be
10187 (bus_activation_service_created): set sender of the message
10189 2003-04-01 Havoc Pennington <hp@redhat.com>
10191 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10192 <includedir> (at least mostly)
10194 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10195 first, then the user ID
10197 2003-04-01 Havoc Pennington <hp@pobox.com>
10199 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10202 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10204 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10206 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10207 socket 0777, and unlink any existing socket.
10209 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10210 the configuration file so specifies; set up auth mechanism
10213 * bus/config-parser.c (bus_config_parser_content): add support
10214 for <fork> option and fill in code for <auth>
10216 * bus/system.conf.in: add <fork/> to default configuration,
10217 and limit auth mechanisms to EXTERNAL
10219 * doc/config-file.txt (Elements): add <fork>
10221 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10222 (_dbus_change_identity): new function
10224 2003-03-31 Havoc Pennington <hp@redhat.com>
10226 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10227 (_dbus_listen_unix_socket): fix off-by-one error in null
10228 termination spotted by Nalin
10230 2003-03-31 Havoc Pennington <hp@redhat.com>
10232 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10233 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10234 having a real home directory available.
10236 2003-03-31 Havoc Pennington <hp@redhat.com>
10238 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10240 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10242 * configure.in: add support for specifying a style of init script
10245 2003-03-31 Havoc Pennington <hp@redhat.com>
10247 Fix some annoying DBusString API and fix all affected code.
10249 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10250 max_length argument
10251 (_dbus_string_get_data): change to return string instead of using
10253 (_dbus_string_get_const_data): ditto
10254 (_dbus_string_get_data_len): ditto
10255 (_dbus_string_get_const_data_len): ditto
10257 2003-03-31 Havoc Pennington <hp@redhat.com>
10259 * bus/main.c (main): fix up the command line arguments to be nicer
10261 2003-03-31 Havoc Pennington <hp@redhat.com>
10263 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10264 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10265 final location that lands in the config file
10267 * bus/config-loader-expat.c (bus_config_load): fix type of
10268 XML_Parser variable
10270 * doc/TODO: remove TODO item for dbus_bus_get()
10272 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10274 2003-03-31 Havoc Pennington <hp@pobox.com>
10276 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10277 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10278 argument since they are always client side
10280 * dbus/dbus-server.c (dbus_server_get_address): new function
10282 * bus/main.c (main): take the configuration file as an argument.
10284 * test/data/valid-config-files/debug-allow-all.conf: new file to
10285 use with dispatch.c tests for example
10287 * bus/test-main.c (main): require test data dir
10289 * bus/bus.c (bus_context_new): change this to take a
10290 configuration file name as argument
10292 * doc/config-file.txt (Elements): add <servicedir>
10294 * bus/system.conf, bus/session.conf: new files
10296 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10297 well-known socket if none set
10299 * configure.in: create system.conf and session.conf
10301 2003-03-30 Havoc Pennington <hp@pobox.com>
10303 * bus/config-parser.c: hacking
10305 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10306 to shut down, since it could cause weirdness with the DBusList
10309 * dbus/dbus-list.c (_dbus_list_test): add tests for the
10310 link-oriented stack routines
10311 (alloc_link): free the mempool if the first alloc from it fails
10313 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10315 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10317 (_dbus_string_skip_white): new
10319 * doc/config-file.txt (Elements): add <includedir>
10321 2003-03-28 Havoc Pennington <hp@pobox.com>
10323 * dbus/dbus-string.c (_dbus_string_copy_data_len)
10324 (_dbus_string_copy_data): new functions
10326 2003-03-28 Anders Carlsson <andersca@codefactory.se>
10328 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10332 * dbus/dbus-memory.c:
10335 2003-03-28 Havoc Pennington <hp@pobox.com>
10337 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10338 I think it may have just been superstition. Not sure.
10340 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10341 failures that were not being handled.
10343 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10345 * dbus/dbus-memory.c: add ability to set number of mallocs in a
10346 row that will fail on out-of-memory.
10348 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10349 function for testing out-of-memory handling.
10351 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10352 allocation functions, they do map exactly to the expat ones.
10354 2003-03-27 Havoc Pennington <hp@redhat.com>
10356 * bus/config-loader-libxml.c (bus_config_load): add another error
10359 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10362 Add note about automatic service activation.
10364 * doc/dbus-specification.sgml:
10365 Rename the specification and clarify a few things.
10367 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10370 * dbus/dbus-address.c:
10371 * dbus/dbus-dict.c:
10372 * dbus/dbus-marshal.c:
10373 * dbus/dbus-server-debug-pipe.c:
10374 * dbus/dbus-transport-unix.c:
10375 Fix documentation warnings.
10377 2003-03-26 Havoc Pennington <hp@pobox.com>
10379 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10380 after every test so it's quick and easy to see which leaked, and
10381 so we test multiple dbus_shutdown() calls
10383 * configure.in: change configure.in XML stuff to also support
10386 * config-loader-libxml.c: some hacking
10388 * config-loader-expat.c: some hacking
10390 * config-parser.c: some hacking, plus tests
10392 2003-03-25 Havoc Pennington <hp@redhat.com>
10394 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10396 * configure.in: add --with-xml option to specify XML library,
10397 right now only libxml is supported.
10399 * bus/config-loader-libxml.c, config-parser.c: sync some minor
10400 nonworking code between home and work, still just stubs
10402 2003-03-24 Havoc Pennington <hp@redhat.com>
10404 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10407 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10408 NULL argument for "message" if the error is a well-known one,
10409 fill in a generic message in this case.
10411 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10414 * bus/test.c (bus_test_flush_bus): add
10416 * bus/policy.c (bus_policy_test): test code stub
10418 2003-03-24 Havoc Pennington <hp@pobox.com>
10420 * bus/connection.c (bus_connections_setup_connection): set up
10421 the "can this user connect" function, but it always returns
10422 TRUE until we have a config file parser so we can have a config
10423 file that allows connections.
10425 2003-03-23 Havoc Pennington <hp@pobox.com>
10427 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10428 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10429 the mutex, so we can check for proper memory management
10432 * dbus/dbus-dataslot.c: remove the mutex from
10433 DBusDataSlotAllocator and lock it manually when using it,
10434 to simplify fitting it into the global slots framework.
10436 * dbus/dbus-threads.c (init_static_locks): rework how we're
10437 handling global locks so they are easily shut down.
10439 * bus/policy.c (bus_policy_append_rule): fix
10441 * bus/test-main.c (main): check for memleaks
10443 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10444 test suite check for memleaks
10446 * dbus/dbus-memory.c: add support in test mode for tracking
10447 number of outstanding blocks
10449 2003-03-23 Havoc Pennington <hp@pobox.com>
10451 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10454 * dbus/dbus-hash.h: add ULONG hash keys
10456 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10457 (_dbus_get_group_id): new function
10459 2003-03-20 Havoc Pennington <hp@redhat.com>
10461 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10463 (dbus_connection_get_unix_user): new function
10465 2003-03-20 Havoc Pennington <hp@pobox.com>
10467 * bus/connection.c (bus_connection_send_oom_error): assert that
10468 message has a sender
10469 (connection_execute_transaction): ditto
10470 (bus_connection_preallocate_oom_error): fix to set the sender, and
10471 set recipient to the destination service, not the bus driver
10473 * bus/policy.c: hacking
10475 * dbus/dbus-message.c (dbus_message_service_is): new function
10476 (dbus_message_sender_is): new
10478 2003-03-19 Havoc Pennington <hp@redhat.com>
10480 * bus/policy.c: start sketching code for policy restrictions on
10481 what connections can do.
10483 2003-03-18 Havoc Pennington <hp@redhat.com>
10485 * doc/TODO: some notes on high-level todo items. Little nitpick
10486 stuff is all in @todo, so no need to add it here.
10488 * doc/config-file.txt: some notes on how config file might look
10490 2003-03-18 Anders Carlsson <andersca@codefactory.se>
10492 * configure.in: 0.6
10496 2003-03-17 Havoc Pennington <hp@redhat.com>
10498 * dbus/dbus-internals.h: add gcc attributes so that
10499 our printf-style functions warn on bad arguments to
10502 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10505 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10508 2003-03-17 Havoc Pennington <hp@redhat.com>
10510 * bus/test-main.c (main): make it print something as it runs
10511 so make check doesn't look stuck
10513 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10514 from CVS, now obsolete
10516 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10518 * bus/dispatch.c: (bus_dispatch):
10519 Refetch the service name since it may have been reallocated
10520 when dbus_message_set_sender was called.
10522 * dbus/dbus-sysdeps.c: (_dbus_accept):
10523 Add address and address length variables and use them to stop
10524 valgrind from complaining.
10526 2003-03-17 Havoc Pennington <hp@pobox.com>
10528 All tests pass, no memleaks, no valgrind complaints.
10530 * bus/test.c: refcount handler_slot
10532 * bus/connection.c (bus_connections_new): refcount
10533 connection_data_slot
10535 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10536 bytes so that auth scripts pass.
10538 * bus/dispatch.c: init message_handler_slot so it gets allocated
10541 * bus/dispatch.c (message_handler_slot_ref): fix memleak
10543 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10544 dealloc server_pipe_hash when no longer used for benefit of
10547 * dbus/dbus-auth.c (process_command): memleak fix
10549 * bus/dispatch.c (check_hello_message): memleak fix
10551 2003-03-16 Havoc Pennington <hp@pobox.com>
10553 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10555 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10557 * bus/activation.c (bus_activation_activate_service): Append
10558 the pending activation entry to the list of pending activations.
10560 2003-03-16 Havoc Pennington <hp@pobox.com>
10562 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10565 * dbus/dbus-address.c (create_entry): fix OOM handling when
10566 failing to alloc entry->method
10568 2003-03-16 Havoc Pennington <hp@pobox.com>
10570 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10573 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10574 add some missing dbus_set_result
10576 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10577 alloc the DBusMessageHandler
10579 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10580 the transport here, since we call this from the finalizer; it
10581 resulted in a double-finalize.
10583 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10584 where we tried to use transport->connection that was NULL,
10585 happened when transport was disconnected early on due to OOM
10587 * bus/*.c: adapt to handle OOM for watches/timeouts
10589 * dbus/dbus-transport-unix.c: port to handle OOM during
10592 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10593 reference to unused bytes instead of a copy
10595 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10598 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10601 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10604 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10606 * doc/dbus-specification.sgml:
10607 Document reply message for ActivateService.
10609 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10611 * bus/activation.c: (bus_pending_activation_entry_free),
10612 (bus_pending_activation_free), (bus_activation_new),
10613 (bus_activation_unref), (bus_activation_service_created),
10614 (bus_activation_activate_service):
10615 * bus/activation.h:
10616 * bus/bus.c: (bus_context_new):
10617 * bus/desktop-file.c: (new_section):
10618 * bus/driver.c: (bus_driver_send_service_deleted),
10619 (bus_driver_handle_activate_service):
10620 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10622 * dbus/dbus-connection.c:
10623 (dbus_connection_send_with_reply_and_block):
10624 * dbus/dbus-message.c: (dbus_message_append_args_valist):
10625 * dbus/dbus-protocol.h:
10626 Make activation work better. Now pending activations will be queued
10627 and the daemon won't try to activate services that are already registered.
10629 2003-03-16 Havoc Pennington <hp@pobox.com>
10631 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10634 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10635 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10637 2003-03-16 Havoc Pennington <hp@pobox.com>
10639 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10640 this. always run the test suite before commit...
10642 * bus/*: adapt to DBusConnection API changes
10644 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10645 requires renaming stuff to avoid dbus_connection_dispatch name
10648 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10651 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10652 separate from _dbus_message_loader_return_buffer()
10654 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10655 this, because it's now always broken to use; the number of
10656 messages in queue vs. the number still buffered by the message
10657 loader is undefined/meaningless. Should use
10658 dbus_connection_get_dispatch_state().
10659 (dbus_connection_dispatch): rename from
10660 dbus_connection_dispatch_message
10662 2003-03-16 Havoc Pennington <hp@pobox.com>
10664 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10667 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10669 * dbus/dbus-connection.c:
10670 (dbus_connection_send_with_reply_and_block):
10671 Decrease connection->n_incoming when removing an entry
10673 * dbus/dbus-dict.c: (dbus_dict_entry_free),
10674 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10675 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10676 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10677 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10678 (dbus_dict_get_byte_array):
10679 Handle NULL arrays and strings. Also add support for byte arrays.
10681 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10682 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10683 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10684 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10685 (_dbus_demarshal_dict), (demarshal_and_validate_len),
10686 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10687 * dbus/dbus-marshal.h:
10688 Add support for marshalling and demarshalling empty arrays and strings.
10690 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10691 (dbus_message_append_string_array),
10692 (dbus_message_iter_get_boolean),
10693 (dbus_message_iter_get_boolean_array),
10694 (dbus_message_iter_get_int32_array),
10695 (dbus_message_iter_get_uint32_array),
10696 (dbus_message_iter_get_double_array),
10697 (dbus_message_iter_get_byte_array),
10698 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10699 (check_message_handling):
10700 Add support for getting empty arrays and dicts.
10702 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10703 Don't do any validation at all for now, that's better than just checking
10706 * test/data/valid-messages/emptiness.message:
10707 New test message with lots of empty arrays.
10709 2003-03-16 Havoc Pennington <hp@pobox.com>
10711 * dbus/dbus-connection.c
10712 (_dbus_connection_queue_received_message_link): new function that
10713 can't fail due to OOM
10715 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10716 new function pops a message together with a list link
10719 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10720 message queuing functions to avoid needing to alloc memory
10722 2003-03-16 Havoc Pennington <hp@pobox.com>
10724 Oops - test code was only testing failure of around 30 of the
10725 mallocs in the test path, but it turns out there are 500+
10726 mallocs. I believe this was due to misguided linking setup such
10727 that there was one copy of dbus_malloc etc. in the daemon and one
10728 in the shared lib, and only daemon mallocs were tested. In any
10729 case, the test case now tests all 500+ mallocs, and doesn't pass
10730 yet, though there are lots of fixes in this patch.
10732 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10733 this so that it doesn't need to allocate memory, since it
10734 has no way of indicating failure due to OOM (and would be
10735 annoying if it did).
10737 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10739 * bus/Makefile.am: rearrange to create two self-contained
10740 libraries, to avoid having libraries with overlapping symbols.
10741 that was resulting in weirdness, e.g. I'm pretty sure there
10742 were two copies of global static variables.
10744 * dbus/dbus-internals.c: move the malloc debug stuff to
10747 * dbus/dbus-list.c (free_link): free list mempool if it becomes
10750 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10752 * dbus/dbus-address.c (dbus_parse_address): free list nodes
10755 * bus/dispatch.c (bus_dispatch_add_connection): free
10756 message_handler_slot when no longer using it, so
10757 memory leak checkers are happy for the test suite.
10759 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10761 * bus/bus.c (new_connection_callback): disconnect in here if
10762 bus_connections_setup_connection fails.
10764 * bus/connection.c (bus_connections_unref): fix to free the
10766 (bus_connections_setup_connection): if this fails, don't
10767 disconnect the connection, just be sure there are no side
10770 * dbus/dbus-string.c (undo_alignment): unbreak this
10772 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10774 (_dbus_auth_new): fix the order in which we free strings
10777 * bus/connection.c (bus_connection_disconnected): fix to
10778 not send ServiceDeleted multiple times in case of memory
10781 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10782 get the base service name
10783 (dbus_bus_register_client): don't return base service name,
10784 instead store it on the DBusConnection and have an accessor
10786 (dbus_bus_register_client): rename dbus_bus_register()
10788 * bus/dispatch.c (check_hello_message): verify that other
10789 connections on the bus also got the correct results, not
10790 just the one sending hello
10792 2003-03-15 Havoc Pennington <hp@pobox.com>
10794 Make it pass the Hello handling test including all OOM codepaths.
10795 Now to do other messages...
10797 * bus/services.c (bus_service_remove_owner): fix crash when
10798 removing owner from an empty list of owners
10799 (bus_registry_ensure): don't leave service in the list of
10800 a connection's owned services if we fail to put the service
10803 * bus/connection.c (bus_connection_preallocate_oom_error): set
10804 error flag on the OOM error.
10806 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10807 handle _dbus_transport_set_connection failure
10809 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10810 to create watches up front and simply enable/disable them as
10812 (unix_connection_set): this can now fail on OOM
10814 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10815 of enabling/disabling a watch or timeout.
10817 * bus/loop.c (bus_loop_iterate): don't touch disabled
10820 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10822 2003-03-15 Havoc Pennington <hp@pobox.com>
10824 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10825 write useful test code, after all that futzing around ;-)
10827 Test does not yet pass because we can't handle OOM in
10828 _dbus_transport_messages_pending (basically,
10829 dbus_connection_preallocate_send() does not prealloc the write
10830 watch). To fix this, I think we need to add new stuff to
10831 set_watch_functions, namely a SetEnabled function so we can alloc
10832 the watch earlier, then enable it later.
10834 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10835 dbus-memory.c to the convenience lib
10837 * bus/test.c: rename some static functions to keep them clearly
10838 distinct from stuff in connection.c. Handle client disconnection.
10840 2003-03-14 Havoc Pennington <hp@pobox.com>
10842 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10843 transport, tests more of the real codepath. Set up clients
10844 with bus_setup_debug_client.
10846 * bus/test.c (bus_setup_debug_client): function to set up debug
10847 "clients" on the main loop
10849 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10852 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10855 * dbus/dbus-server-debug.c: support a debug server based on pipes
10857 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10858 (_dbus_close): new function
10860 * configure.in: check for socketpair
10862 2003-03-14 Havoc Pennington <hp@redhat.com>
10864 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10867 * dbus/dbus-transport-debug.c: rework this a good bit to be
10868 less complicated. hopefully still works.
10870 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10873 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10876 * dbus/dbus-message.c (dbus_message_copy): rename from
10877 dbus_message_new_from_message, fix it up to copy
10878 all the message fields, add test case
10880 * bus/dispatch.c (bus_dispatch_test): add some more test code,
10881 not quite passing yet
10883 2003-03-14 Havoc Pennington <hp@pobox.com>
10885 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10886 until no work remains" in test code. (the large diff here
10887 is just code movement, no actual changes)
10889 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10890 1, no point waiting around for test code.
10891 (_dbus_server_debug_accept_transport): unref the timeout
10892 after adding it (right?)
10894 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10896 2003-03-13 Havoc Pennington <hp@redhat.com>
10898 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10901 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10904 * dbus/dbus-connection.h: Make AddWatchFunction and
10905 AddTimeoutFunction return a bool so they can fail on out-of-memory
10907 * bus/bus.c (bus_context_new): set up timeout handlers
10909 * bus/connection.c (bus_connections_setup_connection): set up
10912 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10915 * bus/bus.c (bus_context_new): adapt to changes
10917 * bus/connection.c: adapt to changes
10919 * test/watch.c: adapt to DBusWatch changes
10921 * bus/dispatch.c (bus_dispatch_test): started adding this but
10924 2003-03-14 Anders Carlsson <andersca@codefactory.se>
10926 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10928 2003-03-13 Havoc Pennington <hp@pobox.com>
10930 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10931 set up a test framework as for the library
10933 2003-03-12 Havoc Pennington <hp@pobox.com>
10935 Throughout: purge global variables, introduce BusActivation,
10936 BusConnections, BusRegistry, etc. objects instead.
10938 * bus/bus.h, bus/bus.c: introduce BusContext as a global
10941 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10942 going to redo this a bit differently I think
10944 2003-03-12 Havoc Pennington <hp@redhat.com>
10946 Mega-patch that gets the message bus daemon initially handling
10947 out-of-memory. Work still needed. Also lots of random
10948 moving stuff to DBusError instead of ResultCode.
10950 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10952 * dbus/dbus-connection.c
10953 (dbus_connection_send_with_reply_and_block): use DBusError
10955 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10958 * dbus/dbus-connection.c (dbus_connection_send): drop the result
10959 code here, as the only failure possible is OOM.
10961 * bus/connection.c (bus_connection_disconnect):
10962 rename bus_connection_disconnected as it's a notification only
10964 * bus/driver.c (bus_driver_handle_acquire_service): don't free
10965 "name" on get_args failure, should be done by get_args;
10966 don't disconnect client for bad args, just return an error.
10967 (bus_driver_handle_service_exists): ditto
10969 * bus/services.c (bus_services_list): NULL-terminate returned array
10971 * bus/driver.c (bus_driver_send_service_lost)
10972 (bus_driver_send_service_acquired): send messages from driver to a
10973 specific client to the client's unique name, not to the broadcast
10976 * dbus/dbus-message.c (decode_header_data): reject messages that
10977 contain no name field
10978 (_dbus_message_get_client_serial): rename to
10979 dbus_message_get_serial and make public
10980 (_dbus_message_set_serial): rename from set_client_serial
10981 (_dbus_message_set_reply_serial): make public
10982 (_dbus_message_get_reply_serial): make public
10984 * bus/connection.c (bus_connection_foreach): allow stopping
10985 iteration by returning FALSE from foreach function.
10987 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10988 (dbus_connection_free_preallocated_send)
10989 (dbus_connection_preallocate_send): new API for sending a message
10990 without possibility of malloc failure.
10991 (dbus_connection_send_message): rename to just
10992 dbus_connection_send (and same for whole function family)
10994 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10996 * dbus/dbus-sysdeps.c (_dbus_exit): new function
10998 * bus/activation.c: handle/return errors
11000 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11002 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11003 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11004 (_dbus_result_from_errno): move to this file
11006 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11008 * dbus/dbus-marshal.c:
11009 (_dbus_marshal_set_string):
11010 Take a length argument so we can marshal the correct string
11013 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11014 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11015 (_dbus_marshal_test):
11016 * dbus/dbus-marshal.h:
11017 Add support for marshalling and demarshalling dicts.
11019 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11020 Add support for TYPE DICT.
11022 * dbus/dbus-message.c: (set_string_field):
11023 Adjust header padding.
11025 (dbus_message_append_args_valist), (dbus_message_append_dict),
11026 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11027 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11028 (check_message_handling), (check_have_valid_message):
11029 * dbus/dbus-message.h:
11030 Add functions for setting and getting dicts.
11032 * dbus/dbus-protocol.h:
11033 Add DBUS_TYPE_DICT.
11038 * doc/dbus-specification.sgml:
11039 Add information about how dicts are marshalled.
11041 * test/data/invalid-messages/dict-with-nil-value.message:
11042 * test/data/invalid-messages/too-short-dict.message:
11043 * test/data/valid-messages/dict-simple.message:
11044 * test/data/valid-messages/dict.message:
11045 Add sample messages containing dicts.
11047 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11049 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11051 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11053 * dbus/Makefile.am:
11054 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11055 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11056 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11057 (dbus_dict_set_double), (dbus_dict_set_string),
11058 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11059 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11060 (dbus_dict_set_string_array), (_dbus_dict_test):
11061 * dbus/dbus-dict.h:
11062 Fix according to comments from Havoc.
11064 2003-03-06 Michael Meeks <michael@server.home>
11066 * configure.in: if we don't have kde-config, disable have_qt.
11068 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11070 * dbus/Makefile.am:
11073 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11074 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11075 (dbus_dict_remove), (dbus_dict_get_value_type),
11076 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11077 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11078 (dbus_dict_put_double), (dbus_dict_put_string),
11079 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11080 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11081 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11082 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11083 (dbus_dict_get_double), (dbus_dict_get_string),
11084 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11085 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11086 (dbus_dict_get_string_array), (_dbus_dict_test):
11087 * dbus/dbus-dict.h:
11088 Add DBusDict implementation
11090 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11091 * dbus/dbus-test.h:
11092 Add _dbus_dict_test
11094 2003-03-04 Havoc Pennington <hp@pobox.com>
11096 * test/data/auth/*: adapt to changes
11098 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11099 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11102 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11103 more stuff from being in a context name, to make the protocol
11104 simpler to deal with
11106 * dbus/dbus-errors.c (dbus_error_has_name): new function
11107 (dbus_error_is_set): new function
11109 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11110 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11112 * dbus/dbus-connection.c (dbus_connection_flush): also read
11113 messages during a flush operation
11115 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11117 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11119 * configure.in: Check for gethostbyname on Solaris.
11121 * dbus/dbus-transport.c: (_dbus_transport_open):
11122 Remove duplicate "tcp" entry.
11124 * doc/dbus-specification.sgml:
11125 Clarify some things.
11127 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11129 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11130 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11131 (_dbus_keyring_test):
11132 * dbus/dbus-md5.c: (_dbus_md5_compute):
11133 * dbus/dbus-sha.c: (_dbus_sha_compute):
11136 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11138 * README: Add some things.
11140 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11142 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11143 after case DBUS_TYPE_BOOELAN.
11145 2003-03-02 Havoc Pennington <hp@pobox.com>
11147 * test/break-loader.c (randomly_set_extreme_ints): add test that
11148 sets really huge and small integers
11150 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11151 that length of boolean array fits in the string, and that
11152 string has room for boolean value in single-bool case.
11154 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11155 optional value to "ALIGN" command which is what to fill the
11158 * test/data/valid-messages/no-padding.message: add regression
11159 test for the message padding problem
11161 2003-03-02 Havoc Pennington <hp@pobox.com>
11163 * dbus/dbus-message.c (decode_header_data): fix to always init
11164 message_padding, from Benjamin Dauvergne
11166 2003-03-02 Havoc Pennington <hp@pobox.com>
11168 * configure.in: 0.5
11172 2003-03-01 Joe Shaw <joe@assbarn.com>
11174 * configure.in: Check for "struct cmsgcred" and try to access its
11175 members for BSD-like unices.
11177 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11178 _dbus_read_credentials_unix_socket().
11179 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11180 read() for reading the credential byte off the unix socket. Use
11181 struct cmsgcred on systems that support it.
11183 2003-02-27 Alexander Larsson <alexl@redhat.com>
11185 * glib/Makefile.am:
11187 Make gthreads-2.0 dependency optional. Don't build thread test if
11190 2003-02-27 Havoc Pennington <hp@pobox.com>
11192 * dbus/dbus-connection.c
11193 (dbus_connection_send_message_with_reply_and_block): fix doh!
11194 doh! doh! bug that resulted in never removing a reply from the
11195 queue, no wonder we called get_reply_serial so much ;-)
11197 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11198 and client serial instead of demarshaling them every time
11200 2003-02-27 Havoc Pennington <hp@pobox.com>
11202 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11203 more inlined, using dbus-string-private.h, speeds things up
11206 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11207 when freeing the string
11208 (_dbus_string_steal_data): fix for align offset
11209 (undo_alignment): new function
11211 2003-02-26 Havoc Pennington <hp@redhat.com>
11213 All kinds of audit fixes from Owen, plus initial attempt to
11214 handle unaligned memory returned from malloc.
11216 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11217 leave room for align_offset and nul byte
11218 (fixup_alignment): function to track an align_offset and
11219 ensure real->str is aligned
11220 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11221 to allow a nul byte plus align offset
11222 (_dbus_string_lock): fix overflow issue
11223 (_dbus_string_init_const_len): add assertions on sanity of len,
11224 assign allocated to be ALLOCATION_PADDING larger than len
11225 (set_length): fixup the overflow handling
11226 (_dbus_string_get_data_len): fix overflow in assertion
11227 (open_gap): detect overflow in size of gap to be opened
11228 (_dbus_string_lengthen): add overflow check
11229 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11230 (_dbus_string_append): add overflow check
11231 (_dbus_string_append_unichar): overflow
11232 (_dbus_string_delete): fix overflow in assertion
11233 (_dbus_string_copy_len): overflow in assertion
11234 (_dbus_string_replace_len): overflows in assertions
11235 (_dbus_string_find): change to implement in terms of
11236 _dbus_string_find_to
11237 (_dbus_string_find_to): assorted fixage
11238 (_dbus_string_equal_c_str): assert c_str != NULL,
11239 fix logic so the function works
11240 (_dbus_string_ends_with_c_str): fix overflow thingy
11241 (_dbus_string_base64_encode): overflow fix
11242 (_dbus_string_validate_ascii): overflow
11243 (_dbus_string_validate_nul): overflow
11245 2003-02-26 Havoc Pennington <hp@redhat.com>
11247 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11249 2003-02-26 Alexander Larsson <alexl@redhat.com>
11252 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11254 * dbus/dbus-connection.c:
11255 * dbus/dbus-connection.h:
11256 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11257 Add dbus_connection_set_wakeup_main_function and use it when queueing
11258 incoming and outgoing messages.
11261 * dbus/dbus-dataslot.c:
11262 Threadsafe usage of DBusDataSlotAllocator
11264 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11267 * dbus/dbus-server-unix.c:
11270 * glib/dbus-gmain.c:
11271 Implement the new wakeup functions for glib.
11273 * glib/Makefile.am:
11274 * glib/test-thread-client.c:
11275 * glib/test-thread-server.c:
11276 * glib/test-thread.h:
11277 Initial cut at some thread test code. Not really done yet.
11279 2003-02-26 Havoc Pennington <hp@pobox.com>
11281 * dbus/dbus-connection.c
11282 (dbus_connection_send_message_with_reply_and_block): fix crash
11283 where we ref'd the outgoing message instead of the returned reply
11285 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11286 at the end of this function, so if we didn't need to read for
11287 authentication, we reinstall it for receiving messages
11289 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11290 a NULL sender for peer-to-peer case
11292 * dbus/dbus-transport-unix.c (check_read_watch): handle
11293 !authenticated case correctly
11295 * glib/dbus-gmain.c: add support for DBusServer
11297 * dbus/dbus-server.c: add data slot support
11299 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11300 return values and handle errors
11302 * dbus/dbus-dataslot.c: factor out the data slot stuff from
11305 * Doxyfile.in (INPUT): add glib subdir
11307 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11308 setup_with_g_main instead of hookup_with_g_main; write docs
11310 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11312 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11313 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11314 * dbus/dbus-message.c: (dbus_message_append_boolean),
11315 (dbus_message_append_boolean_array),
11316 (dbus_message_get_args_valist), (_dbus_message_test):
11317 * dbus/dbus-message.h:
11318 * doc/dbus-specification.sgml:
11319 Various fixes as pointed out by Havoc.
11321 * test/data/invalid-messages/bad-boolean-array.message:
11322 * test/data/invalid-messages/bad-boolean.message:
11323 Add invalid boolean value test cases.
11325 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11327 * dbus/dbus-internals.c: (_dbus_type_to_string):
11328 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11329 (_dbus_marshal_validate_arg):
11330 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11331 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11332 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11333 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11334 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11335 (dbus_message_iter_get_double),
11336 (dbus_message_iter_get_boolean_array), (message_iter_test):
11337 * dbus/dbus-message.h:
11338 * dbus/dbus-protocol.h:
11339 * doc/dbus-specification.sgml:
11340 * test/data/valid-messages/lots-of-arguments.message:
11341 Add support for boolean and boolean array types.
11343 2003-02-23 Havoc Pennington <hp@pobox.com>
11345 * dbus/dbus-keyring.c: finish most of this implementation and
11348 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11349 these barf if the error isn't cleared to NULL
11351 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11352 (_dbus_create_directory): new function
11354 * dbus/dbus-errors.c (dbus_set_error): fix warning
11356 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11357 (_dbus_string_hex_decode): new function
11358 (test_hex_roundtrip): test code
11360 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11362 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11364 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11365 the save-to-temp/rename trick to atomically write the new file
11366 (_dbus_string_parse_uint): new function
11368 2003-02-22 Havoc Pennington <hp@pobox.com>
11370 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11372 2003-02-22 Havoc Pennington <hp@pobox.com>
11374 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11375 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11377 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11379 * dbus/test/data/sha-1: add US government test suite for SHA-1
11381 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11383 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11384 Make string arrays NULL-terminated.
11386 * dbus/dbus-memory.c: (dbus_free_string_array):
11387 * dbus/dbus-memory.h:
11388 New function for freeing NULL-terminated string arrays.
11390 * dbus/dbus-message-builder.c: (append_quoted_string),
11391 (_dbus_message_data_load):
11392 Add support for array types.
11394 * dbus/dbus-message.c: (check_message_handling):
11395 Add more types as test cases.
11397 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11398 (_dbus_string_parse_double):
11399 Add the start offset to the end offset.
11401 * test/data/valid-messages/lots-of-arguments.message:
11402 New test message with lots of arguments.
11404 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11406 * dbus/dbus-message.c: (dbus_message_append_nil),
11407 (dbus_message_append_int32), (dbus_message_append_uint32),
11408 (dbus_message_append_double), (dbus_message_append_string),
11409 (dbus_message_append_int32_array),
11410 (dbus_message_append_uint32_array),
11411 (dbus_message_append_double_array),
11412 (dbus_message_append_byte_array),
11413 (dbus_message_append_string_array):
11414 Fix all out-of-memory handling in these functions.
11416 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11418 * dbus/dbus-message.c: (dbus_message_append_nil):
11421 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11423 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11424 (dbus_message_append_nil), (dbus_message_append_int32_array),
11425 (dbus_message_append_uint32_array),
11426 (dbus_message_append_double_array),
11427 (dbus_message_append_byte_array),
11428 (dbus_message_append_string_array), (dbus_message_get_args_valist),
11429 (dbus_message_iter_get_int32_array),
11430 (dbus_message_iter_get_uint32_array),
11431 (dbus_message_iter_get_double_array),
11432 (dbus_message_iter_get_byte_array),
11433 (dbus_message_iter_get_string_array):
11435 * dbus/dbus-message.h:
11436 Add functions for appending and getting arrays.
11438 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11440 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11441 element size at least 8 bytes, fixes mempool tests on
11444 2003-02-20 Alexander Larsson <alexl@redhat.com>
11446 * dbus/dbus-transport-unix.c (unix_do_iteration):
11447 Unlock the connection mutex during a blocking select call.
11448 Add todo about how we need a way to wake up the select.
11450 * dbus/dbus-connection-internal.h:
11451 * dbus/dbus-connection.c:
11452 Add _dbus_connection_lock and _dbus_connection_unlock.
11454 2003-02-19 Havoc Pennington <hp@pobox.com>
11456 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11457 Doxyfile.in, not Doxyfile
11459 * dbus/dbus-keyring.c: do some hacking on this
11461 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11463 * dbus/dbus-errors.c (dbus_set_error_const): do not call
11465 (dbus_set_error): remove dbus_error_init, check for message ==
11466 NULL *before* we sprintf into it, and add @todo about including
11467 system headers in this file
11469 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11471 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11473 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11474 get various bits of user information based on either username
11476 (_dbus_homedir_from_username): new function
11478 2003-02-19 Anders Carlsson <andersca@codefactory.se>
11481 Add check for nonposix getpwnam_r
11483 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11484 Align the pool element size to a sizeof (void *) boundary.
11486 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11487 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11488 General Solaris fixes.
11490 * test/data/valid-messages/simplest-manual.message:
11491 Explicitly state that we want little-endian packing.
11493 2003-02-19 Mikael Hallendal <micke@codefactory.se>
11495 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11497 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11498 Added to create a transport connecting using a tcp/ip socket.
11500 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11501 to a tcp socket at given host and port.
11502 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11505 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11507 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11508 Added to create a server listening on a TCP/IP socket.
11510 2003-02-19 Havoc Pennington <hp@pobox.com>
11512 Throughout: mop up all the Doxygen warnings and undocumented
11515 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11516 to search any paths.
11518 * dbus/dbus-threads.c: move global mutex initializers to
11519 dbus-internals.h, multiple prototypes was confusing doxygen
11520 besides being kind of ugly
11522 * Doxyfile (PREDEFINED): have Doxygen define
11523 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11524 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11525 (do not abuse the feature! it's for stuff like the autogenerated
11526 macros in dbus-md5.c, not just for things you don't feel like
11529 2003-02-18 Havoc Pennington <hp@pobox.com>
11531 * dbus/dbus-string.c (_dbus_string_zero): new function
11533 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11534 wrap it in some dbus-friendly API
11536 * dbus/dbus-types.h: add 16-bit types
11538 2003-02-18 Joe Shaw <joe@assbarn.com>
11540 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11541 credentials from our currently running process.
11542 (get_word): Fix a buglet where we were copying the entire length
11543 instead of relative to our position.
11545 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11546 keys on the stack... it's 640k of data.
11548 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11549 read the credentials byte off the socket, even if we don't have
11551 (_dbus_poll): Implement poll() using select() for systems which
11554 * glib/test-dbus-glib.c (main): Print out an error if no
11555 parameters are given.
11557 * test/data/auth/fallback.auth-script: Added. Tests that a client
11558 can fallback to a secondary auth mechanism if the first fails.
11560 2003-02-18 Havoc Pennington <hp@pobox.com>
11562 * AUTHORS: add Alex
11564 2003-02-17 Havoc Pennington <hp@pobox.com>
11566 * doc/dbus-specification.sgml: lots of cosmetic
11567 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11568 env variable to DBUS_BUS_ADDRESS, s/client/application/,
11569 s/server/bus/ (except in authentication section). Add a section
11570 "Message Bus Message Routing"
11572 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
11578 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11580 * doc/dbus-specification.sgml:
11581 Specification updates.
11583 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11585 * bus/activation.c: (bus_activation_init), (child_setup),
11586 (bus_activation_activate_service):
11587 * bus/activation.h:
11588 * bus/main.c: (main):
11589 Set DBUS_ADDRESS environment variable.
11591 * dbus/dbus-errors.c: (dbus_set_error):
11592 Don't use va_copy since that's a C99 feature.
11594 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11595 (_dbus_spawn_async):
11596 * dbus/dbus-sysdeps.h:
11597 Add child_setup_func to _dbus_spawn_async.
11599 * doc/dbus-specification.sgml:
11600 Update specification.
11602 * test/spawn-test.c: (setup_func), (main):
11605 2003-02-17 Alexander Larsson <alexl@redhat.com>
11607 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11610 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11614 * doc/dbus-test-plan.sgml:
11615 Add test plan document.
11617 * test/Makefile.am:
11620 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11622 * dbus/dbus-message.c: (decode_header_data),
11623 (_dbus_message_loader_return_buffer):
11624 Set the header padding amount when loading a message.
11626 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11628 * bus/dispatch.c: (send_one_message):
11629 Only send broadcast messages to registered connections.
11631 * dbus/dbus-message.c: (dbus_message_name_is):
11632 * dbus/dbus-message.h:
11633 New convenience function.
11635 * dbus/dbus-transport-debug.c: (do_reading):
11636 Only dispatch one message per run.
11638 * test/Makefile.am:
11639 * test/bus-test.c: (new_connection_callback), (die),
11640 (test_hello_client1_handler), (test_hello_client2_handler),
11641 (test_hello_replies), (main):
11643 * test/bus-test-loop.[ch]:
11646 2003-02-16 Havoc Pennington <hp@pobox.com>
11648 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11649 backward conditional
11651 2003-02-16 Alexander Larsson <alexl@redhat.com>
11653 * dbus/dbus-connection.c:
11654 Implement sent_message_with_reply. (with_reply_and block is still
11656 Made dispatch_message not lose message if OOM.
11658 * dbus/dbus-errors.h:
11659 Add NoReply error (for reply timeouts).
11661 2003-02-16 Alexander Larsson <alexl@redhat.com>
11663 * dbus/dbus-hash.c (_dbus_hash_table_unref):
11664 Actually free keys and values when destroying hashtable.
11666 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11668 * dbus/dbus-auth.c: (client_try_next_mechanism):
11671 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11672 Return TRUE if there's no thread implementation around.
11674 * glib/dbus-gmain.c: (free_source),
11675 (dbus_connection_hookup_with_g_main):
11676 Make sure to remove the GSource when the connection is finalized.
11678 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11680 * bus/dispatch.c: (bus_dispatch_message_handler):
11681 * dbus/dbus-errors.h:
11682 Return an error if someone tries to send a message to a service
11683 that doesn't exist.
11685 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11687 * bus/activation.c: (load_directory), (bus_activation_init),
11688 (bus_activation_activate_service):
11689 * bus/activation.h:
11691 (bus_driver_handle_activate_service), (bus_driver_handle_message):
11692 More work on the activation handling.
11694 * dbus/dbus-errors.h:
11695 Add some error messages
11697 * dbus/dbus-message.c: (dbus_message_new_error_reply):
11698 * dbus/dbus-message.h:
11699 New function that creates an error message.
11701 * dbus/dbus-protocol.h:
11702 Add ACTIVATE_SERVER message.
11704 * dbus/dbus-server-unix.c: (unix_handle_watch),
11705 (_dbus_server_new_for_domain_socket):
11706 Call _dbus_fd_set_close_on_exec.
11708 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11709 (_dbus_spawn_async), (_dbus_disable_sigpipe),
11710 (_dbus_fd_set_close_on_exec):
11711 * dbus/dbus-sysdeps.h:
11712 Add _dbus_fd_set_close_on exec function. Also add function that checks
11713 that all open fds are set to close-on-exec and warns otherwise.
11715 * dbus/dbus-transport-unix.c:
11716 (_dbus_transport_new_for_domain_socket):
11717 Call _dbus_fd_set_close_on_exec.
11719 2003-02-16 Havoc Pennington <hp@pobox.com>
11721 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11722 allow people to avoid setting SIGPIPE to SIG_IGN
11723 (_dbus_connection_new_for_transport): disable SIGPIPE unless
11724 we've been asked not to
11726 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11728 * dbus/dbus-list.c: (_dbus_list_append_link),
11729 (_dbus_list_prepend_link):
11730 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11734 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11737 * bus/activation.c: (bus_activation_entry_free),
11738 (add_desktop_file_entry), (load_directory), (bus_activation_init):
11739 * bus/activation.h:
11740 * bus/main.c: (main):
11741 Add simple activation support, doesn't work yet though.
11743 2003-02-15 Zack Rusin <zack@kde.org>
11745 * qt/dbus-qthread.cpp: small casting fix
11747 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11749 * dbus/dbus-errors.c: (dbus_set_error):
11750 * dbus/dbus-errors.h:
11751 Add a few errors and make dbus_set_error void.
11753 * dbus/dbus-sysdeps.c:
11754 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11755 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11756 * dbus/dbus-sysdeps.h:
11757 Add _dbus_spawn_async.
11759 * test/spawn-test.c: (main):
11760 Test for _dbus_spawn_async.
11762 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11764 * dbus/dbus-internals.h:
11765 Fix build without tests.
11767 * dbus/dbus-list.c: (alloc_link):
11768 Fix a segfault when a malloc fails.
11770 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11771 (dbus_malloc0), (dbus_realloc):
11772 Add support for malloc debugging.
11774 2003-02-15 Alexander Larsson <alexl@redhat.com>
11776 * dbus/dbus-threads.c:
11777 * dbus/dbus-threads.h:
11778 Add condvars. Remove static mutext from API.
11779 Implement static mutexes by initializing them from threads_init.
11781 * glib/dbus-gthread.c:
11782 * qt/dbus-qthread.cpp:
11783 Update with the thread api changes.
11786 * dbus/dbus-list.c:
11787 * dbus/dbus-list.h:
11788 Turn StaticMutex into normal mutex + init function.
11789 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11790 _dbus_list_append_link, _dbus_list_prepend_link
11793 * dbus/dbus-sysdeps.c:
11794 * dbus/dbus-sysdeps.h:
11795 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11796 _dbus_atomic_dec. Only slow fallback implementation at the moment.
11798 * dbus/dbus-protocol.h:
11799 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11801 * dbus/dbus-message.c:
11802 Make ref/unref atomic.
11805 * dbus/dbus-connection-internal.h:
11806 * dbus/dbus-connection.c:
11807 * dbus/dbus-connection.h:
11809 Change _peek to _borrow,_return & _steal_borrowed.
11810 Change disconnect callback to event.
11811 Make dbus_connection_dispatch_messages reentrant.
11813 * dbus/dbus-transport.c:
11814 Don't ref the connection on calls to the transport
11817 * dbus/dbus-message-handler.c:
11820 * glib/dbus-gmain.c:
11821 Don't use peek_message anymore
11823 * test/Makefile.am:
11824 * test/debug-thread.c:
11825 * test/debug-thread.h:
11826 Simple thread implementation that asserts() on deadlocks in
11827 single-threaded code.
11830 (main) Call debug_threads_init.
11833 Use disconnect message instead of disconnect callback.
11835 * bus/connection.c:
11836 * bus/connection.h:
11837 Don't call dbus_connection_set_disconnect_function. Instead export
11838 bus_connection_disconnect.
11841 Call bus_connection_disconnect when we get a disconnected message.
11843 2003-02-15 Havoc Pennington <hp@pobox.com>
11845 * dbus/dbus-message.c (dbus_message_new): fool around with the
11848 2003-02-14 Havoc Pennington <hp@pobox.com>
11850 * dbus/dbus-mempool.c: fail if the debug functions so indicate
11852 * dbus/dbus-memory.c: fail if the debug functions indicate we
11855 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11856 (_dbus_decrement_fail_alloc_counter): debug functions to
11857 simulate memory allocation failures
11859 2003-02-14 Havoc Pennington <hp@pobox.com>
11861 * dbus/dbus-errors.h (struct DBusError): add a word of padding
11864 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11866 * bus/driver.c: (bus_driver_handle_hello):
11868 * bus/services.c: (bus_service_lookup):
11869 Reorder message sending so we get a more sane order.
11871 * test/bus-test.c: (message_handler):
11874 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11876 * bus/driver.c: (bus_driver_send_service_deleted),
11877 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11878 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11879 (bus_driver_send_welcome_message),
11880 (bus_driver_handle_list_services),
11881 (bus_driver_handle_acquire_service),
11882 (bus_driver_handle_service_exists):
11883 * dbus/dbus-bus.c: (dbus_bus_register_client),
11884 (dbus_bus_acquire_service), (dbus_bus_service_exists):
11885 * dbus/dbus-errors.c: (dbus_result_to_string):
11886 * dbus/dbus-errors.h:
11887 * dbus/dbus-message.c: (dbus_message_append_args),
11888 (dbus_message_append_args_valist), (dbus_message_get_args),
11889 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11890 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11891 (dbus_message_iter_get_byte_array),
11892 (dbus_message_iter_get_string_array), (message_iter_test),
11893 (check_message_handling), (_dbus_message_test):
11894 * dbus/dbus-message.h:
11895 * test/bus-test.c: (main):
11896 Change fields to arguments in messages, so that they won't be
11897 confused with header fields.
11899 * glib/test-dbus-glib.c: (main):
11900 Remove append_fields from hello message.
11902 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11904 * dbus/dbus-errors.c:
11905 * dbus/dbus-message.c:
11906 * dbus/dbus-string.c:
11907 Documentation fixes.
11909 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11911 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11913 Implement support for timeouts in dbus-glib.
11915 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11917 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11918 * dbus/dbus-message.c: (process_test_subdir):
11919 * test/break-loader.c: (find_breaks_based_on):
11920 Plug some memory leaks.
11922 2003-02-13 Richard Hult <rhult@codefactory.se>
11924 * bus/main.c: Fix build.
11926 * dbus/dbus-errors.h:
11927 * dbus/dbus-errors.c: Fix copyright for Anders.
11929 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11934 * bus/connection.c: (bus_connection_foreach):
11937 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11938 (unescape_string), (new_section), (parse_section_start),
11939 (parse_key_value), (report_error), (bus_desktop_file_load),
11940 (bus_desktop_file_get_string):
11941 * bus/desktop-file.h:
11942 Use DBusError for error reporting.
11944 * bus/dispatch.c: (send_one_message),
11945 (bus_dispatch_message_handler):
11946 * bus/driver.c: (bus_driver_send_service_deleted),
11947 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11948 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11949 (bus_driver_send_welcome_message),
11950 (bus_driver_handle_list_services),
11951 (bus_driver_handle_acquire_service),
11952 (bus_driver_handle_service_exists):
11953 * bus/loop.c: (bus_loop_run):
11955 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11957 * bus/utils.c: (bus_wait_for_memory):
11959 New files with general utility functions.
11961 * dbus/dbus-internals.h:
11962 Remove _DBUS_HANDLE_OOM.
11964 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11966 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11967 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11968 * dbus/dbus-errors.h:
11969 Add DBusError structure.
11971 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11973 * test/data/valid-messages/standard-acquire-service.message:
11974 * test/data/valid-messages/standard-hello.message:
11975 * test/data/valid-messages/standard-list-services.message:
11976 * test/data/valid-messages/standard-service-exists.message:
11977 Add some standard messages.
11979 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11981 * bus/driver.c: (bus_driver_send_welcome_message),
11982 (bus_driver_handle_list_services),
11983 (bus_driver_handle_acquire_service),
11984 (bus_driver_handle_service_exists), (bus_driver_handle_message):
11985 Update for API changes in libdbus.
11987 * dbus/dbus-message.c: (dbus_message_new_reply):
11988 * dbus/dbus-message.h:
11989 Remove the name argument. The spec states that replies shouldn't
11992 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11994 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11995 (report_error), (bus_desktop_file_load), (lookup_section),
11996 (lookup_line), (bus_desktop_file_get_raw),
11997 (bus_desktop_file_get_string):
11998 * bus/desktop-file.h:
11999 Some fixes, and new functions for getting a key value from a section.
12001 2003-02-13 Havoc Pennington <hp@pobox.com>
12003 * test/data/auth/fail-after-n-attempts.auth-script: new test
12005 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12008 2003-02-13 Havoc Pennington <hp@pobox.com>
12010 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12011 dbus_credentials_match were backward
12013 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12014 NO_CREDENTIALS and ROOT_CREDENTIALS
12016 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12017 into here. Never process more commands after we've reached an
12018 end state; store further data as unused bytes.
12020 * test/data/auth/*: add more auth tests
12022 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12023 command to match exact string and EXPECT_UNUSED to match unused
12026 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12028 2003-02-12 Havoc Pennington <hp@pobox.com>
12030 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12031 \r off of popped lines
12033 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12036 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12039 2003-02-12 Havoc Pennington <hp@pobox.com>
12041 * dbus/Makefile.am: remove break-loader from the build, since it
12044 * configure.in: add --enable-gcov to turn on coverage profiling
12045 flags and disable optimization
12047 2003-02-10 Havoc Pennington <hp@pobox.com>
12049 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12050 initial cut at test framework for DBusAuth from laptop.
12051 Doesn't quite work yet but it compiles and I need to get
12052 it off the 266mhz laptop. ;-)
12054 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12055 fix a memleak in error case
12057 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12060 * bus/desktop-file.c:
12061 * bus/desktop-file.h:
12062 Add a desktop file parser.
12064 2003-02-11 Zack Rusin <zack@kde.org>
12066 * qt/message.[h|cpp]: sample implementation
12067 of the KDE wrapper for DBusMessage
12069 2003-02-09 Zack Rusin <zack@kde.org>
12071 * test/bus-test.c: make_it_compile
12072 * doc/dbus-specification.sgml: minimal semantic fix
12074 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12080 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12082 * dbus/Makefile.am:
12083 * dbus/dbus-break-loader.c:
12084 * test/Makefile.am:
12085 * test/break-loader.c:
12086 Move dbus-break-loader to test/ and rename it to break-loader.
12088 2003-02-02 Havoc Pennington <hp@pobox.com>
12090 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12091 for code to manage cookies in your home directory
12093 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12095 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12096 to authenticate, then disconnect the client.
12098 2003-02-03 Alexander Larsson <alexl@redhat.com>
12100 * dbus/dbus-message.c (dbus_message_append_fields):
12103 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12105 * doc/dbus-specification.sgml:
12106 Update address format section.
12108 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12110 * test/Makefile.am:
12111 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12112 (message_handler), (new_connection_callback), (loop_quit),
12113 (loop_run), (main):
12116 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12118 * bus/driver.c: (bus_driver_handle_service_exists):
12119 Simplify the code a bit.
12121 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12124 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12127 Add libdbus-daemon.la and link to it.
12129 2003-02-01 James Willcox <jwillcox@gnome.org>
12131 * bus/driver.c: (bus_driver_handle_own_service):
12132 Actually include the service reply code in the message.
12134 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12136 * bus/driver.c: (bus_driver_handle_service_exists):
12137 Don't unref the incoming message.
12139 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12141 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12143 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12145 * dbus/dbus-server.c: (dbus_server_listen):
12146 * dbus/dbus-transport.c: (_dbus_transport_open):
12147 ifdef out the calls to the debug transport and server.
12149 2003-02-02 Alexander Larsson <alexl@redhat.com>
12151 * dbus/dbus-watch.c (dbus_watch_get_flags):
12152 Add note in the docs that ERROR or HANGUP won't be returned
12153 and are assumed always on.
12155 * glib/dbus-gmain.c (add_watch):
12156 Always add IO_ERR | IO_HUP
12158 * dbus/dbus-message.h:
12159 Add semicolon after dbus_message_iter_get_string_array().
12160 Makes qt code build again
12162 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12164 * bus/driver.c: (create_unique_client_name),
12165 (bus_driver_handle_hello):
12166 Don't take a name, just use a numeric id to identify
12169 * dbus/Makefile.am:
12170 * dbus/dbus-bus.c: (dbus_bus_register_client),
12171 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12173 Add new convenience functions for communicating with the bus.
12175 * dbus/dbus-message.h:
12177 * dbus/dbus-protocol.h:
12180 2003-02-01 Alexander Larsson <alexl@redhat.com>
12182 * dbus/dbus-message.c (dbus_message_append_fields):
12183 Add some more doc comments.
12185 2003-02-01 Havoc Pennington <hp@pobox.com>
12187 * dbus/dbus-break-loader.c (randomly_modify_length): change
12188 a 4-byte value in the message as if it were a length
12190 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12191 execute bit on saved files
12193 2003-02-01 Havoc Pennington <hp@pobox.com>
12195 * dbus/dbus-break-loader.c (main): new program to find messages
12196 that break the loader.
12198 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12199 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12201 * dbus/dbus-string.c (_dbus_string_set_byte): new
12203 2003-01-31 Havoc Pennington <hp@pobox.com>
12205 * dbus/dbus-message.c: refactor the test code to be more general,
12206 in preparation for writing a "randomly permute test cases to
12207 try to break the loader" program.
12209 2003-01-31 Havoc Pennington <hp@pobox.com>
12211 * doc/dbus-specification.sgml: work on the specification
12213 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12214 the protocol version of the message.
12216 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12217 no longer specifies that.
12218 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12221 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12222 "break" for DBUS_TYPE_NIL, remove @todo
12224 2003-01-31 Havoc Pennington <hp@pobox.com>
12226 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12227 just set_is_error/get_is_error as this is a commonly-used
12228 function, and write docs.
12230 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12232 * dbus/dbus-address.c: (dbus_address_entry_free):
12233 Free key and value lists.
12235 * dbus/dbus-internals.c: (_dbus_type_to_string):
12236 Add the types we didn't have.
12238 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12239 (_dbus_marshal_validate_arg):
12242 * dbus/dbus-message.c: (dbus_message_set_sender):
12243 Remove todo about being able to set sender to NULL.
12245 (dbus_message_set_is_error_reply),
12246 (dbus_message_get_is_error_reply):
12247 * dbus/dbus-message.h:
12250 * dbus/dbus-protocol.h:
12251 Add error reply flag.
12253 * test/data/valid-messages/opposite-endian.message:
12254 Add NIL type to test.
12256 2003-01-31 Havoc Pennington <hp@pobox.com>
12258 * doc/dbus-specification.sgml: fully specify the header. Add
12259 flags and major protocol version, and change header/body len to
12262 * dbus/dbus-message-builder.c (append_saved_length): append length
12265 * dbus/dbus-message.c (dbus_message_create_header): change header
12266 length and body length to unsigned. Add the new fields from the
12268 (_dbus_message_loader_return_buffer): unsigned header/body len
12270 2003-01-30 Havoc Pennington <hp@pobox.com>
12272 * dbus/dbus-auth.c: rework to use only REJECTED, no
12275 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12276 use REJECTED, suggested by Mark McLoughlin
12278 2003-01-30 Havoc Pennington <hp@pobox.com>
12280 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12281 a better way to report errors here. e.g. "unix address lacks
12282 path" or something. also "no such file" when the path doesn't
12285 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12287 (dbus_parse_address): add @todo about documenting address format,
12288 and allowing , and ; to be escaped
12290 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12292 * dbus/Makefile.am:
12293 Add dbus-address.[ch]
12295 * dbus/dbus-address.c: (dbus_address_entry_free),
12296 (dbus_address_entries_free), (create_entry),
12297 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12298 (dbus_parse_address), (_dbus_address_test):
12299 * dbus/dbus-address.h:
12300 New files for dealing with address parsing.
12302 * dbus/dbus-connection.c:
12303 Document timeout functions.
12305 * dbus/dbus-message.c:
12306 Document dbus_message_new_from_message.
12308 * dbus/dbus-server-debug.c:
12311 * dbus/dbus-server.c: (dbus_server_listen):
12312 Parse address and use correct server implementation.
12314 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12315 * dbus/dbus-string.h:
12316 New function with test.
12318 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12319 * dbus/dbus-test.h:
12322 * dbus/dbus-transport-debug.c:
12325 * dbus/dbus-transport.c: (_dbus_transport_open):
12326 Parse address and use correct transport implementation.
12328 2003-01-30 Havoc Pennington <hp@pobox.com>
12330 * dbus/dbus-message.c: use message->byte_order instead of
12331 DBUS_COMPILER_BYTE_ORDER throughout.
12332 (dbus_message_create_header): pad header to align the
12333 start of the body of the message to 8-byte boundary
12335 * dbus/dbus-marshal.h: make all the demarshalers take const
12336 DBusString arguments.
12338 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12339 validate message args here, so we don't have to do slow validation
12340 later, and so we catch bad messages as they are incoming. Also add
12341 better checks on header_len and body_len. Also fill in
12342 message->byte_order
12344 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12345 implemented properly)
12346 (_dbus_string_validate_nul): new function to check all-nul
12348 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12349 get_arg_end_pos and remove all validation
12350 (_dbus_marshal_validate_arg): actually do validation here.
12352 2003-01-29 Havoc Pennington <hp@pobox.com>
12354 * dbus/dbus-message.c (check_message_handling): fix assertion
12355 failure on set_client_serial
12357 2003-01-28 Havoc Pennington <hp@pobox.com>
12359 * dbus/dbus-server-debug.c: Add doc section comments
12361 * dbus/dbus-transport-debug.c: add doc section comments
12363 2003-01-28 Havoc Pennington <hp@redhat.com>
12365 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12366 the reverse order from how I had it
12367 (_dbus_string_base64_encode): reverse encoding order. I was
12368 basically byteswapping everything during encoding.
12370 2003-01-28 Anders Carlsson <andersca@codefactory.se>
12372 * dbus/dbus-connection-internal.h:
12373 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12374 (_dbus_connection_remove_timeout):
12375 Add functions for adding and removing timeouts.
12377 * dbus/dbus-message.c: (dbus_message_new_from_message):
12378 Add new function that takes a message and creates an exact
12379 copy of it, but with the refcount set to 1.
12380 (check_message_handling):
12383 * dbus/dbus-server-protected.h:
12384 * dbus/dbus-server.c: (_dbus_server_init_base),
12385 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12386 (dbus_server_set_timeout_functions):
12387 (_dbus_server_remove_timeout):
12388 New functions so that a server can add and remove timeouts.
12390 (dbus_server_listen):
12391 Add commented out call to dbus_server_debug_new.
12393 * dbus/dbus-timeout.c: (_dbus_timeout_new):
12394 Actually set the handler, doh.
12396 * dbus/dbus-transport.c: (_dbus_transport_open):
12397 Add commented out call to dbus_transport_debug_client_new.
12399 * dbus/Makefile.am:
12400 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12402 2003-01-28 Havoc Pennington <hp@pobox.com>
12404 * dbus/dbus-message.c (check_message_handling): function to check
12405 on the loaded message, iterates over it etc.
12407 2003-01-28 Havoc Pennington <hp@pobox.com>
12409 * test/Makefile.am (dist-hook): fix make distdir
12411 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12413 2003-01-27 Havoc Pennington <hp@pobox.com>
12415 * dbus/dbus-mempool.c (time_for_size): replace printf with
12418 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12419 empty lines; fix the SAVE_LENGTH stuff to be
12420 START_LENGTH/END_LENGTH so it actually works; couple other
12423 * test/Makefile.am (dist-hook): add dist-hook for .message files
12425 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12426 can be constant or locked.
12427 (_dbus_string_free): allow freeing a const string as
12428 documented/intended
12430 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12432 * dbus/dbus-test-main.c (main): take an argument which is the
12433 directory containing test data
12435 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12436 argument to this and load all the messages in test/data/
12437 checking that they can be loaded or not loaded as appropriate.
12439 2003-01-27 Anders Carlsson <andersca@codefactory.se>
12441 * bus/dispatch.c: (bus_dispatch_message_handler):
12442 Dispatch messages sent to services.
12444 * bus/driver.c: (bus_driver_send_service_deleted),
12445 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12446 (bus_driver_send_service_acquired):
12447 Add helper functions for sending service related messages.
12449 (bus_driver_send_welcome_message):
12450 Send HELLO_REPLY instead of WELCOME.
12452 (bus_driver_handle_list_services):
12453 Send LIST_SERVICES_REPLY instead of SERVICES.
12455 (bus_driver_handle_own_service),
12456 (bus_driver_handle_service_exists):
12457 New message handlers.
12459 (bus_driver_handle_message):
12460 Invoke new message handlers.
12462 (bus_driver_remove_connection):
12463 Don't remove any services here since that's done automatically
12464 by bus_service_remove_owner now.
12467 New function signatures.
12469 * bus/services.c: (bus_service_add_owner):
12470 Send ServiceAcquired message if we're the only primary owner.
12472 (bus_service_remove_owner):
12473 Send ServiceAcquired/ServiceLost messages.
12475 (bus_service_set_prohibit_replacement),
12476 (bus_service_get_prohibit_replacement):
12477 Functions for setting prohibit replacement.
12479 (bus_service_has_owner):
12480 New function that checks if a connection is in the owner queue of
12484 Add new function signatures.
12486 * dbus/dbus-list.c: (_dbus_list_test):
12487 Add tests for _dbus_list_remove_last and traversing the list backwards.
12489 * dbus/dbus-list.h:
12490 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12491 go any further, so return NULL then.
12493 * dbus/dbus-protocol.h:
12494 Add new messages, service flags and service replies.
12496 2003-01-26 Havoc Pennington <hp@pobox.com>
12498 * dbus/dbus-message-builder.c: implement, completely untested.
12500 * test/data/*: add data to be used in testing.
12501 ".message" files are our simple loadable text format.
12502 ".message-raw" will be binary dumps of messages.
12504 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12506 2003-01-26 Havoc Pennington <hp@pobox.com>
12508 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12510 * dbus/dbus-errors.c (dbus_result_to_string): add
12513 * dbus/dbus-message-builder.c: new file, will contain code to load
12514 up messages from files. Not implemented yet.
12516 2003-01-26 Havoc Pennington <hp@pobox.com>
12518 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12519 the sender by setting to NULL
12521 2003-01-26 Havoc Pennington <hp@pobox.com>
12523 The unit tests pass, but otherwise untested. If it breaks, the
12524 tests should have been better. ;-)
12526 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12529 * dbus/dbus-message.c: redo everything so we maintain
12530 message->header as the only copy of the various fields.
12531 This avoids the possibility of out-of-memory in some cases,
12532 for example dbus_message_lock() can't run out of memory anymore,
12533 and avoids extra copying. Figured I may as well go ahead and do
12534 this since it was busted for dbus_message_lock to not return
12535 failure on OOM, and dbus_message_write_header was totally
12536 unchecked for OOM. Also fixed some random other bugs.
12538 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12539 that strings are nul-terminated. Also, end_pos can be equal
12540 to string length just not greater than, I think.
12541 (_dbus_marshal_set_int32): new function
12542 (_dbus_marshal_set_uint32): new function
12543 (_dbus_marshal_set_string): new function
12545 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12546 a warning, init timeout_list to NULL
12547 (dbus_connection_send_message): don't use uninitialized variable
12550 * dbus/dbus-string.c (_dbus_string_replace_len): new function
12552 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12554 * bus/driver.c: (bus_driver_handle_hello),
12555 (bus_driver_send_welcome_message):
12558 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12560 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12561 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12562 (dbus_connection_unref):
12563 * dbus/dbus-marshal.c: (_dbus_marshal_test):
12564 * dbus/dbus-message.c: (dbus_message_unref),
12567 (dbus_message_get_fields):
12568 Remove debugging printout.
12570 (_dbus_message_loader_return_buffer):
12571 Don't store the header string.
12573 (_dbus_message_test):
12576 2003-01-26 Richard Hult <rhult@codefactory.se>
12578 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12579 the file descriptor list, since it can change under us.
12581 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12583 * glib/dbus-gmain.c: (dbus_connection_prepare),
12584 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12585 (remove_watch), (dbus_connection_hookup_with_g_main):
12586 Rewrite the glib handling to use its own GSource instead of a
12587 GIOChannel so we can catch messages put in the queue while waiting
12590 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12593 * bus/connection.c: (connection_disconnect_handler),
12594 (connection_watch_callback), (bus_connection_setup):
12595 * bus/dispatch.c: (send_one_message),
12596 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12597 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12599 * bus/driver.c: (bus_driver_send_service_deleted),
12600 (bus_driver_send_service_created), (bus_driver_handle_hello),
12601 (bus_driver_send_welcome_message),
12602 (bus_driver_handle_list_services), (bus_driver_remove_connection),
12603 (bus_driver_handle_message):
12605 Refactor code, put the message dispatching in its own file. Use
12606 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12609 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12611 * dbus/dbus-internals.h:
12612 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12614 * dbus/dbus-message.c: (dbus_message_get_sender):
12615 * dbus/dbus-message.h:
12616 Implement dbus_message_get_sender.
12618 * dbus/dbus-protocol.h:
12619 Add message and service defines.
12621 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12623 * dbus/dbus-connection.c: (dbus_connection_send_message):
12624 * dbus/dbus-message-internal.h:
12625 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12626 (dbus_message_write_header):
12627 Remove _dbus_messag_unlock and don't set the client serial on a
12628 message if one already exists.
12630 2003-01-24 Havoc Pennington <hp@pobox.com>
12632 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12635 * bus/driver.c (bus_driver_handle_list_services): fix a leak
12638 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12640 * dbus/dbus-list.c: (alloc_link), (free_link):
12641 Use a memory pool for the links.
12643 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12645 * bus/connection.c: (bus_connection_foreach):
12646 * bus/connection.h:
12647 Add new bus_connection_foreach function.
12649 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12650 Add function that broadcasts a message to all clients.
12652 (bus_driver_send_service_created), (bus_driver_handle_hello),
12653 (bus_driver_send_welcome_message),
12654 (bus_driver_handle_list_services), (bus_driver_message_handler):
12655 Implement functions that take care of listing services, and notifying
12656 clients when new services are created.
12658 * bus/services.c: (bus_services_list):
12660 Add new function that returns an array of strings with the currently
12661 registered services.
12663 * glib/dbus-glib.h:
12664 * glib/dbus-gmain.c:
12665 Update copyright year.
12667 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12669 * dbus/dbus-connection.c: (dbus_connection_send_message):
12670 Unlock the message in case it was sent earlier.
12672 (dbus_connection_send_message_with_reply_and_block):
12673 Remove the reply message from the list.
12675 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12676 Set array_len and new_pos correctly.
12678 (_dbus_marshal_test):
12679 Remove debug output.
12681 * dbus/dbus-message-internal.h:
12682 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12683 New function that returns the reply serial.
12685 (_dbus_message_unlock):
12686 New function that unlocks a message and resets its header.
12688 (dbus_message_append_string_array),
12689 (dbus_message_get_fields_valist),
12690 (dbus_message_iter_get_field_type),
12691 (dbus_message_iter_get_string_array),
12692 (dbus_message_get_fields),
12693 (dbus_message_append_fields_valist):
12694 Handle string arrays.
12696 (dbus_message_set_sender):
12697 Make this function public since the bus daemon needs it.
12699 (decode_header_data):
12700 Set the reply serial to -1 initially.
12702 * dbus/dbus-message.h:
12703 Add dbus_message_set_sender.
12705 2003-01-24 Havoc Pennington <hp@pobox.com>
12707 * doc/dbus-specification.sgml: add some stuff
12709 2003-01-22 Havoc Pennington <hp@pobox.com>
12711 * doc/dbus-specification.sgml: Start to document the protocol.
12713 2003-01-22 Havoc Pennington <hp@pobox.com>
12715 * dbus/dbus-connection.c
12716 (dbus_connection_send_message_with_reply_and_block): add some @todo
12718 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12720 2003-01-21 Havoc Pennington <hp@pobox.com>
12722 (patch untested because can't compile)
12724 * bus/driver.c (create_unique_client_name): make this function
12725 never recycle client names. Also, caller should initialize
12728 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12730 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12732 * dbus/dbus-marshal.c: (_dbus_marshal_double),
12733 (_dbus_marshal_int32), (_dbus_marshal_uint32),
12734 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12735 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12736 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12737 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12738 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12739 * dbus/dbus-marshal.h:
12740 * dbus/dbus-protocol.h:
12741 Add support for marshalling and demarshalling integer, double
12744 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12749 * bus/connection.c: (connection_disconnect_handler):
12750 Remove the connection from the bus driver's list.
12752 (connection_watch_callback): Dispatch messages.
12754 (free_connection_data): Free connection name.
12756 (bus_connection_setup): Add connection to the bus driver's list.
12757 (bus_connection_remove_owned_service):
12758 (bus_connection_set_name), (bus_connection_get_name):
12759 Add functions for setting and getting the connection's name.
12761 * bus/connection.h:
12762 Add function headers.
12764 * bus/driver.c: (create_unique_client_name),
12765 (bus_driver_handle_hello_message),
12766 (bus_driver_send_welcome_message), (bus_driver_message_handler),
12767 (bus_driver_add_connection), (bus_driver_remove_connection):
12770 * bus/services.c: (bus_service_free):
12772 New file that handles communication and registreation with the bus
12775 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12777 * dbus/dbus-connection.c: (dbus_connection_send_message):
12778 Add a new client_serial parameter.
12780 (dbus_connection_send_message_with_reply):
12781 Remove a @todo since we've implemented the blocking function.
12783 (dbus_connection_send_message_with_reply_and_block):
12784 New function that sends a message and waits for a reply and
12785 then returns the reply.
12787 * dbus/dbus-connection.h:
12790 * dbus/dbus-errors.c: (dbus_result_to_string):
12791 * dbus/dbus-errors.h:
12792 Add new DBUS_RESULT.
12794 * dbus/dbus-message-internal.h:
12795 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12796 (_dbus_message_set_sender), (dbus_message_write_header),
12797 (dbus_message_new_reply), (decode_header_data),
12798 (_dbus_message_loader_return_buffer), (_dbus_message_test):
12799 * dbus/dbus-message.h:
12800 Add new functions that set the reply serial and sender.
12801 Also marshal and demarshal them correctly and add test.
12803 * dbus/dbus-protocol.h:
12804 Add new DBUS_MESSAGE_TYPE_SENDER.
12806 * glib/dbus-glib.h:
12807 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12808 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12809 (dbus_connection_hookup_with_g_main):
12810 * glib/test-dbus-glib.c: (main):
12811 Rewrite to use GIOChannel and remove the GSource crack.
12813 * test/echo-client.c: (main):
12814 * test/watch.c: (check_messages):
12815 Update for changed APIs
12817 2003-01-19 Anders Carlsson <andersca@codefactory.se>
12819 * dbus/Makefile.am: Add dbus-timeout.[cħ]
12821 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12822 Create a DBusTimeoutList.
12823 (dbus_connection_set_timeout_functions): Add new function to
12824 set timeout callbacks
12826 * dbus/dbus-connection.h: Add public DBusTimeout API.
12828 * dbus/dbus-message.c: (dbus_message_get_service):
12829 * dbus/dbus-message.h: New function.
12831 * dbus/dbus-server.c: Fix small doc typo.
12833 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12835 2003-01-19 Anders Carlsson <andersca@codefactory.se>
12837 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12838 of the string, just as long as specified.
12840 2003-01-19 Havoc Pennington <hp@pobox.com>
12842 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12845 * dbus/dbus-server.c (dbus_server_set_max_connections)
12846 (dbus_server_get_max_connections, dbus_server_get_n_connections):
12847 keep track of current number of connections, and add API for
12848 setting a max (but haven't implemented enforcing the max yet)
12850 2003-01-18 Havoc Pennington <hp@pobox.com>
12852 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12853 reading/writing if read_watch != NULL or write_watch != NULL.
12855 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12856 the message loader code to actually load message->header and
12857 message->body into the newly-created message.
12859 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12862 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12863 (dbus_connection_get_max_message_size)
12864 (dbus_connection_set_max_live_messages_size)
12865 (dbus_connection_get_max_live_messages_size): implement some
12866 resource limitation functions
12868 * dbus/dbus-resources.c: new file implementing some of the
12869 resource limits stuff
12871 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12872 missing docs, add @todo to handle OOM etc.
12874 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12877 2003-01-18 Havoc Pennington <hp@pobox.com>
12879 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12880 connection if it hasn't been already.
12882 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12883 replace with DisconnectFunction.
12885 2003-01-18 Havoc Pennington <hp@pobox.com>
12887 Building --disable-verbose-mode --disable-asserts --disable-tests
12888 cuts the library from 112K to 45K or so
12890 * configure.in: check for varargs macro support,
12891 add --enable-verbose-mode, --enable-asserts.
12893 * dbus/dbus-internals.h (_dbus_assert): support
12894 DBUS_DISABLE_ASSERT
12895 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12897 2003-01-18 Havoc Pennington <hp@pobox.com>
12899 * dbus/dbus-test.c: include config.h so that tests actually run
12901 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12902 so the failure mode when that assumption fails will be plenty
12905 2003-01-18 Havoc Pennington <hp@pobox.com>
12907 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12909 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12912 * test/Makefile.am: don't use special variable "TESTS" for echo-*
12913 since we don't want to use those in make check
12915 2003-01-15 Havoc Pennington <hp@redhat.com>
12921 2003-01-15 Havoc Pennington <hp@redhat.com>
12923 * test/Makefile.am: fix so that test source code ends up in the
12924 distribution on make distcheck
12926 2003-01-15 Havoc Pennington <hp@redhat.com>
12932 2003-01-15 Havoc Pennington <hp@redhat.com>
12934 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12935 fix build when --disable-tests
12937 * Makefile.am (EXTRA_DIST): put HACKING in here
12939 * HACKING: document procedure for making a tarball release.
12941 2003-01-14 Anders Carlsson <andersca@codefactory.se>
12943 * bus/connection.c: (connection_error_handler),
12944 (bus_connection_setup):
12945 * bus/main.c: (main):
12946 Make sure that the DBusConnectionData struct is NULLed
12947 out to prevent a segfault.
12949 * dbus/dbus-errors.c: (dbus_result_to_string):
12950 * dbus/dbus-errors.h:
12951 * dbus/dbus-message.c: (dbus_message_get_fields),
12952 (dbus_message_get_fields_valist), (_dbus_message_test):
12953 * dbus/dbus-message.h:
12954 Make dbus_message_get_fields return a result code so we can
12955 track invalid fields as well as oom.
12957 2003-01-11 Havoc Pennington <hp@pobox.com>
12959 * configure.in: change --enable-test/--enable-ansi action-if-given
12960 to enable_foo=$enableval instead of enable_foo=yes
12962 2003-01-08 Havoc Pennington <hp@pobox.com>
12964 * dbus/dbus-string.c (_dbus_string_align_length): new function
12966 * dbus/dbus-test-main.c: move main() for test app here
12968 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12969 symbol to run tests, because dbus-test isn't in the main
12972 Code review nitpicks.
12974 * dbus/dbus-message.c (dbus_message_write_header): add newlines
12975 for people with narrow emacs ;-). Assert client_serial was filled
12976 in. Assert message->name != NULL.
12977 (dbus_message_append_fields): have "first_field_type" arg separate
12978 from va list, needed for C++ binding that also uses varargs IIRC
12979 and helps with type safety
12980 (dbus_message_new): add @todo about using DBusString to store
12981 service/name internally
12982 (dbus_message_new): don't leak ->service and ->name on OOM later
12984 (dbus_message_unref): free the service name
12985 (dbus_message_get_fields): same change to varargs
12986 i.e. first_field_type
12987 (_dbus_message_loader_return_buffer): assert that the message data
12988 is aligned (if not it's a bug in our code). Put in verbose griping
12989 about why we set corrupted = TRUE.
12990 (decode_header_data): add FIXME that char* is evil. Was going to
12991 add FIXME about evil locale-specific string.h strncmp, but just
12992 switched to wacky string-as-uint32 optimization. Move check for
12993 "no room for field name" above get_const_data_len() to avoid
12994 assertion failure in get_const_data_len if we have trailing 2
12995 bytes or the like. Check for service and name fields being
12996 provided twice. Don't leak service/name on error. Require field
12997 names to be aligned to 4 bytes.
12999 * dbus/dbus-marshal.c: move byte swap stuff to header
13000 (_dbus_pack_int32): uscore-prefix
13001 (_dbus_unpack_int32): uscore-prefix
13002 (_dbus_unpack_uint32): export
13003 (_dbus_demarshal_string): add @todo complaining about use of
13005 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13006 handling allowing corrupt data to go unchecked
13008 2003-01-08 Havoc Pennington <hp@redhat.com>
13010 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13011 to the select() as needed for authentication. (should be using
13012 _dbus_poll() not select, but for another day)
13014 * dbus/dbus.h: include dbus/dbus-protocol.h
13016 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13018 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13021 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13023 * dbus/dbus-internals.c: (_dbus_type_to_string):
13024 New function that returns a string describing a type.
13026 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13027 * dbus/dbus-marshal.h:
13028 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13029 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13030 (dbus_message_iter_get_byte_array):
13031 * dbus/dbus-message.h:
13032 Add new convenience functions for appending and getting message fields.
13033 Also add demarshalling routines for byte arrays.
13035 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13037 * dbus/dbus-connection-internal.h:
13038 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13039 (_dbus_connection_get_next_client_serial),
13040 (dbus_connection_send_message):
13041 * dbus/dbus-internals.h:
13042 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13043 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13044 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13045 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13046 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13047 (_dbus_verbose_bytes), (_dbus_marshal_test):
13048 * dbus/dbus-marshal.h:
13049 * dbus/dbus-message-internal.h:
13050 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13051 (dbus_message_write_header), (_dbus_message_lock),
13052 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13053 (dbus_message_get_name), (dbus_message_append_int32),
13054 (dbus_message_append_uint32), (dbus_message_append_double),
13055 (dbus_message_append_string), (dbus_message_append_byte_array),
13056 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13057 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13058 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13059 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13060 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13061 (decode_header_data), (_dbus_message_loader_return_buffer),
13062 (message_iter_test), (_dbus_message_test):
13063 * dbus/dbus-message.h:
13064 * dbus/dbus-protocol.h:
13065 * dbus/dbus-test.c: (main):
13066 * dbus/dbus-test.h:
13067 * glib/test-dbus-glib.c: (message_handler), (main):
13068 * test/echo-client.c: (main):
13069 * test/watch.c: (check_messages):
13070 Make messages sendable and receivable for real.
13072 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13074 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13075 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13076 * dbus/dbus-message.c: (dbus_message_append_int32),
13077 (dbus_message_append_uint32), (dbus_message_append_double),
13078 (dbus_message_append_string), (dbus_message_append_byte_array):
13079 Handle OOM restoration.
13081 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13083 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13084 (_dbus_demarshal_string), (_dbus_marshal_test):
13085 * dbus/dbus-marshal.h:
13086 * dbus/dbus-message.c: (dbus_message_get_name),
13087 Document these functions.
13089 (dbus_message_append_int32), (dbus_message_append_uint32),
13090 (dbus_message_append_double), (dbus_message_append_string),
13091 (dbus_message_append_byte_array):
13092 * dbus/dbus-message.h:
13093 Add functions for adding message fields of different types.
13095 * dbus/dbus-protocol.h:
13096 Add the different types.
13098 2003-01-05 Havoc Pennington <hp@pobox.com>
13100 * bus/connection.c: implement routines for handling connections,
13101 first thing is keeping a list of owned services on each connection
13102 and setting up watches etc.
13104 * bus/services.c: implement a mapping from service names to lists
13107 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13109 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13110 to use static mutexes for global data
13112 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13113 collection of functions to set/get application-specific data
13114 on the DBusConnection.
13116 2003-01-04 Havoc Pennington <hp@pobox.com>
13118 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13119 (_dbus_poll): new function
13121 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13124 * bus/loop.c: initial code for the daemon main loop
13126 2003-01-04 Havoc Pennington <hp@pobox.com>
13128 * test/watch.c (error_handler): make it safe if the error handler
13129 is called multiple times (if we s/error handler/disconnect
13130 handler/ we should just guarantee it's called only once)
13132 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13133 error handler on disconnect (it's quite possible we should
13134 just change the error handler to a "disconnect handler," I'm
13135 not sure we have any other meaningful errors)
13137 * configure.in: check for getpwnam_r
13139 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13140 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13141 mechanism as in SASL spec, using socket credentials
13143 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13144 (_dbus_send_credentials_unix_socket): new function
13146 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13148 (_dbus_write): only check errno if <0 returned
13149 (_dbus_write_two): ditto
13151 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13153 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13154 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13155 (_dbus_marshal_test):
13156 * dbus/dbus-marshal.h:
13157 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13158 to _dbus_marshal_utf8_string. Also fix some tests.
13160 2002-12-28 Harri Porten <porten@kde.org>
13162 * configure.in: added check for C++ compiler and a very cheesy
13163 check for the Qt integration
13165 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13167 * qt/Makefile.am: added
13169 * qt/.cvsignore: added
13171 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13172 latter, added #ifdef QT_THREAD_SUPPORT guard.
13174 * dbus/Makefile.am: added missing headers for make dist
13176 2002-12-28 Kristian Rietveld <kris@gtk.org>
13178 * dbus/Makefile.am: fixup export-symbols-regex.
13180 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13182 * acinclude.m4: Add this file and put the
13183 PKG_CHECK_MODULE macro in it.
13185 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13187 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13188 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13189 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13190 (_dbus_marshal_test):
13191 Make the demarshalling routines align the pos argument.
13192 Add string marshalling tests and fix the obvious bugs
13195 2002-12-26 Havoc Pennington <hp@pobox.com>
13197 * dbus/dbus-auth.c: fixes fixes fixes
13199 * dbus/dbus-transport-unix.c: wire up support for
13200 encoding/decoding data on the wire
13202 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13203 (_dbus_auth_decode_data): append to target string
13204 instead of nuking it.
13206 2002-12-26 Havoc Pennington <hp@pobox.com>
13208 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13209 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13212 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13213 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13214 now). Main point is because I wanted unpack_uint32 to implement
13215 _dbus_verbose_bytes
13216 (_dbus_verbose_bytes): new function
13218 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13220 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13221 mechanism to handle a corrupt message stream
13222 (_dbus_message_loader_new): fix preallocation to only prealloc,
13225 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13226 (_dbus_string_test): enhance tests for copy/move and fix the
13229 * dbus/dbus-transport-unix.c: Hold references in more places to
13230 avoid reentrancy problems
13232 * dbus/dbus-transport.c: ditto
13234 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13235 leak reference count in no-message case
13237 * test/watch.c (do_mainloop): handle adding/removing watches
13238 during iteration over the watches. Also, ref the connection/server
13239 stored on a watch, so we don't try to mangle a destroyed one.
13241 * dbus/dbus-transport-unix.c (do_authentication): perform
13244 * dbus/dbus-auth.c (get_state): add a state
13245 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13246 (_dbus_auth_get_unused_bytes): append the unused bytes
13247 to the passed in string, rather than prepend
13249 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13250 the auth conversation DBusAuth
13252 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13253 (_dbus_transport_new_for_domain_socket): when creating a
13254 transport, pass in whether it's a client-side or server-side
13255 transport so we know which DBusAuth to create
13257 2002-12-03 Havoc Pennington <hp@pobox.com>
13259 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13260 _after_ finalizing the derived members
13261 (unix_connection_set): unref watch if we fail to add it
13263 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13264 transport first, so that the connection owned by the
13265 transport will be valid as the transport finalizes.
13267 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13268 if necessary, and remove watches from the connection.
13270 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13272 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13274 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13275 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13276 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13277 (_dbus_marshal_test):
13278 * dbus/dbus-marshal.h:
13279 Add string marshal functions and have the demarshal functions
13280 return the new position.
13282 2002-12-25 Havoc Pennington <hp@pobox.com>
13284 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13285 it is a simple protocol that just maps directly to SASL.
13287 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13288 initial implementation, not actually used yet.
13290 * dbus/dbus-string.c (_dbus_string_find): new function
13291 (_dbus_string_equal): new function
13292 (_dbus_string_base64_encode): new function
13293 (_dbus_string_base64_decode): new function
13295 2002-12-25 Anders Carlsson <andersca@codefactory.se>
13297 * dbus/Makefile.am:
13298 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13299 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13300 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13301 (_dbus_demarshal_uint32), (_dbus_marshal_test):
13302 * dbus/dbus-marshal.h:
13303 * dbus/dbus-protocol.h:
13304 * dbus/dbus-test.c: (main):
13305 * dbus/dbus-test.h:
13306 Add un-optimized marshalling/demarshalling routines.
13308 2002-12-25 Harri Porten <porten@kde.org>
13310 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13312 2002-12-24 Zack Rusin <zack@kde.org>
13314 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13315 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13318 2002-12-24 Havoc Pennington <hp@pobox.com>
13320 * glib/dbus-gthread.c: fix include
13322 * glib/dbus-glib.h: rename DBusMessageHandler for now.
13323 I think glib API needs to change, though, as you don't
13324 want to use DBusMessageFunction, you want to use the
13325 DBusMessageHandler object. Probably
13326 dbus_connection_open_with_g_main_loop()
13327 and dbus_connection_setup_g_main_loop() or something like that
13328 (but think of better names...) that just create a connection
13329 that has watch/timeout functions etc. already set up.
13331 * dbus/dbus-connection.c
13332 (dbus_connection_send_message_with_reply): new function just to
13333 show how the message handler helps us deal with replies.
13335 * dbus/dbus-list.c (_dbus_list_remove_last): new function
13337 * dbus/dbus-string.c (_dbus_string_test): free a string that
13340 * dbus/dbus-hash.c: use memory pools for the hash entries
13341 (rebuild_table): be more paranoid about overflow, and
13342 shrink table when we can
13343 (_dbus_hash_test): reduce number of sprintfs and write
13344 valid C89. Add tests for case where we grow and then
13345 shrink the hash table.
13347 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13349 * dbus/dbus-connection.c (dbus_connection_register_handler)
13350 (dbus_connection_unregister_handler): new functions
13352 * dbus/dbus-message.c (dbus_message_get_name): new
13354 * dbus/dbus-list.c: fix docs typo
13356 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13357 an object representing a handler for messages.
13359 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13361 * glib/dbus-glib.h:
13362 * glib/dbus-gthread.c: (dbus_gthread_init):
13363 Don't use the gdbus prefix for public functions.
13365 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13369 Add GLib checks and fixup .pc files
13371 * glib/Makefile.am:
13372 * glib/dbus-glib.h:
13373 * glib/dbus-gmain.c: (gdbus_connection_prepare),
13374 (gdbus_connection_check), (gdbus_connection_dispatch),
13375 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13376 (dbus_connection_gsource_new):
13377 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13378 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13379 * glib/test-dbus-glib.c: (message_handler), (main):
13382 2002-12-15 Harri Porten <porten@kde.org>
13384 * autogen.sh: check for libtoolize before attempting to use it
13386 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13389 * .cvsignore: ignore more stamp files
13391 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13393 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13394 without make install.
13396 2002-12-15 Havoc Pennington <hp@pobox.com>
13398 * dbus/dbus-threads.c: add thread stubs that a higher library
13399 layer can fill in. e.g. the GLib wrapper might fill them in with
13400 GThread stuff. We still need to use this thread API to
13401 thread-safe-ize the library.
13403 2002-12-12 Havoc Pennington <hp@pobox.com>
13405 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13406 below new interfaces and include fewer system headers.
13408 * dbus/dbus-sysdeps.c (_dbus_read): new function
13409 (_dbus_write): new function
13410 (_dbus_write_two): new function
13411 (_dbus_connect_unix_socket): new function
13412 (_dbus_listen_unix_socket): new function
13414 * dbus/dbus-message-internal.h: change interfaces to use
13417 2002-12-11 Havoc Pennington <hp@pobox.com>
13419 * dbus/dbus-types.h: add dbus_unichar
13421 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13423 * dbus/dbus-connection.c (dbus_connection_send_message): return
13426 * dbus/dbus-transport.c: include dbus-watch.h
13428 * dbus/dbus-connection.c: include dbus-message-internal.h
13430 * HACKING: add file with coding guidelines stuff.
13432 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13433 handling here, for security purposes (as in vsftpd). Not actually
13434 using this class yet.
13436 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13437 system/libc usage here, as in vsftpd, for ease of auditing (and
13438 should also simplify portability). Haven't actually moved all the
13439 system/libc usage into here yet.
13441 2002-11-25 Havoc Pennington <hp@pobox.com>
13443 * dbus/dbus-internals.c (_dbus_verbose): fix to not
13444 always print the first verbose message.
13446 2002-11-24 Havoc Pennington <hp@pobox.com>
13448 * test/echo-client.c, test/echo-server.c: cheesy test
13451 * configure.in (AC_CHECK_FUNCS): check for writev
13453 * dbus/dbus-message.c (_dbus_message_get_network_data): new
13456 * dbus/dbus-list.c (_dbus_list_foreach): new function
13458 * dbus/dbus-internals.c (_dbus_verbose): new function
13460 * dbus/dbus-server.c, dbus/dbus-server.h: public object
13461 representing a server that listens for connections.
13463 * dbus/.cvsignore: create
13465 * dbus/dbus-errors.h, dbus/dbus-errors.c:
13466 public API for reporting errors
13468 * dbus/dbus-connection.h, dbus/dbus-connection.c:
13469 public object representing a connection that
13470 sends/receives messages. (Same object used for
13471 both client and server.)
13473 * dbus/dbus-transport.h, dbus/dbus-transport.c:
13474 Basic abstraction for different kinds of stream
13475 that we might read/write messages from.
13477 2002-11-23 Havoc Pennington <hp@pobox.com>
13479 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13482 * dbus/dbus-test.c (main): add list test, and include
13483 dbus-test.h as intended
13485 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13486 (_dbus_hash_table_remove_int): return value indicates
13487 whether the entry existed to remove
13489 * dbus/dbus-list.c: add linked list utility class,
13490 with docs and tests
13492 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13495 2002-11-23 Havoc Pennington <hp@pobox.com>
13497 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13498 DBUS_END_DECLS to nothing, that should fix this once and for all
13500 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13502 * dbus/dbus-message.c, dbus/dbus-hash.c:
13503 add some missing @brief
13505 2002-11-23 Havoc Pennington <hp@pobox.com>
13507 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13508 to avoid confusing Doxygen
13510 * dbus/dbus-hash.c: @} not }@
13512 * dbus/dbus-message.c (struct DBusMessage): split out
13515 2002-11-23 Havoc Pennington <hp@pobox.com>
13517 * configure.in: pile on more warning flags if using gcc
13519 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13520 to document static functions
13522 * configure.in: add summary to end of configure so it
13523 looks nice and attractive
13525 * dbus/dbus-hash.c: finish implementation and write unit
13528 * configure.in: add --enable-tests to enable unit tests
13530 * dbus/dbus-test.c: test program to run unit tests
13531 for all files in dbus/*, initially runs a test for
13534 * dbus/dbus-internals.h: file to hold some internal utility stuff
13536 2002-11-22 Havoc Pennington <hp@redhat.com>
13538 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13539 "ported" away from Tcl
13541 * dbus/dbus-types.h: header for types such as dbus_bool_t
13543 2002-11-22 Havoc Pennington <hp@redhat.com>
13545 * dbus/dbus.h: fixups for doc warnings
13547 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13549 (QUIET): make it quiet so we can see warnings
13551 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13553 2002-11-22 Havoc Pennington <hp@redhat.com>
13555 * Makefile.am: include "Doxyfile" target in all-local
13557 * configure.in: generate the Doxyfile
13559 * Doxyfile.in: move Doxyfile here, so we can use
13560 configure to generate a Doxyfile with the right
13561 version number etc.
13563 2002-11-22 Havoc Pennington <hp@redhat.com>
13565 * dbus/dbus-message.c: move inline docs into .c file
13567 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13568 so all docs are under doc/
13569 (MAN_EXTENSION): generate man pages. Use extension
13570 ".3dbus" which matches ".3qt" on my system,
13571 I guess this is OK, I don't know really.
13572 (FILE_PATTERNS): look for .c files not .h, makes sense
13573 for plain C I think
13575 2002-11-22 Havoc Pennington <hp@pobox.com>
13577 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13578 because any app can be a server, and any app can be a client,
13579 the bus is a special kind of server.
13581 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
13583 * Doxyfile : adding. Still needs Makefile rules to be generated
13584 automatically (just run "doxygen" in the toplevel dir for now to
13587 * dbus/dbus-message.h : Adding sample docs (javadoc since
13588 resembles gtk-doc a little more)
13590 * dbus/dbus.h : Adding sample docs
13592 2002-11-21 Havoc Pennington <hp@redhat.com>
13594 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13595 so we can allow ourselves to include files directly,
13596 instead of having to use dbus.h
13598 * dbus/dbus.h: fill in
13600 * dbus/dbus-message.h: sketch out a sample header file.
13601 Include griping if you include it directly instead of
13604 * dbus/dbus-macros.h: new file with macros for extern "C",
13605 TRUE/FALSE, NULL, etc.
13607 * doc/file-boilerplate.c: put include guards in here
13609 2002-11-21 Havoc Pennington <hp@redhat.com>
13611 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13613 * COPYING: include the GPL as well, and license code
13614 under both AFL and GPL.
13616 2002-11-21 Havoc Pennington <hp@redhat.com>
13618 * acconfig.h: get rid of this
13620 * autogen.sh (run_configure): add --no-configure option
13622 * configure.in: remove AC_ARG_PROGRAM to make
13623 autoconf complain less. add AC_PREREQ.
13624 add AC_DEFINE third arg.
13626 2002-11-21 Anders Carlsson <andersca@codefactory.se>
13629 Fix references so we can distcheck.
13631 2002-11-21 Havoc Pennington <hp@redhat.com>
13633 * Initial module creation