* Update ChangeLog for binding removal commit
[platform/upstream/dbus.git] / ChangeLog
1 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
2
3         * Remove all bindings
4
5 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
6
7         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
8         and set pending_reply out arg to NULL is connection is disconnected
9         (connection_timeout_and_complete_all_pending_calls_unlocked): New
10         static method for cleaning up pending calls on disconnect
11         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
12         calls queued timeouts on disconnect 
13
14          * dbus/dbus-pending-call.ci (_dbus_pending_call_set_connection):
15         Remove 
16
17 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
18
19         * bus/activation.[ch] (bus_activation_list_services): new function to 
20         get the list of services that can be activated
21
22         * bus/dispatch.c: test coverage for the new bus method
23         ListActivatableNames
24
25         * bus/driver.c: new bus method ListActivatableNames to get the list of
26         services that can be activated
27
28         * doc/dbus-specification.xml: ListActivatableNames method documentation
29
30 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
31         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
32         source files
33
34 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
35         * dbus/dbus-message-factory.c:
36         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
37
38 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
39         * dbus/dbus-connection-internal.h:
40         * dbus/dbus-connection.c:
41         * file dbus/dbus-pending-call.c:
42         * dbus/dbus-pending-call.h:
43         Make DBusPendingCall an opaque type even to D-Bus internals
44
45 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
46
47         * dbus/dbus-connection.h: remove connection_disconnect and replace with
48         connection_close
49
50         * dbus/dbus-connection.c: include dbus-bus.h
51         (_dbus_connection_read_write_dispatch): make static
52
53 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
54
55         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
56         function
57         (dbus_connection_dispatch): On disconnect unref any shared connections
58
59         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
60         for cleaning up shared connections on disconnect
61         (internal_bus_get): get a hard refrence to shared connections when
62         they are created
63         
64         * doc/TODO: Remove items which are no longer relevent or have been fixed
65         Split 1.0 todo items with a 0.90 freeze todo list
66  
67 2006-06-14  Ross Burton  <ross@openedhand.com>
68
69         * glib/dbus-gobject.c:
70         Free a leaking GArray (surely not!) in dbus_g_method_return.
71
72 2006-06-14  Ross Burton  <ross@openedhand.com>
73
74         * tools/Makefile.am:
75         * tools/dbus-monitor.c:
76         Don't use the GLib bindings in dbus-monitor (patch from Ralf
77         Habacker).
78         
79 2006-06-14  Ross Burton  <ross@openedhand.com>
80
81         * tools/dbus-print-message.c:
82         Also print the object path when outputting signals or method calls.
83
84 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
85
86         * qt/src/Makefile.am: install the qdbus.h header.
87         This allows people to actually use the installed code.
88
89 2006-06-12  Ross Burton  <ross@openedhand.com>
90
91         * glib/dbus-gproxy.c:
92         Don't leak a GArray when firing signals (thank Rob Taylor for review).
93
94 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
95
96         * Released 0.62
97
98 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
99
100         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
101         break pedantic builds. Closes bug 6043 (patch approved by
102         Havoc back in February).
103
104 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
105
106         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
107         that took a QDBusMessage parameter.
108         * qt/src/qdbusbus.h: Add a default flag for RequestName.
109         * qt/tools/dbus.cpp: Don't use automatic call because we might
110         be calling an async method: request a reply.
111
112 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
113
114         * test/qt/*: Update the testcases, including testing the new
115         functionality of sending null QByteArray and QString over the
116         bus. Add new headertest test and restore the old
117         qdbusxmlparser test.
118
119 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
120
121         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
122         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
123
124         * qt/examples/Makefile.am:
125         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
126         form.
127
128         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
129         QByteArray() (nulls) over the bus.
130         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
131         the one that has the signature suffix stripped.
132         * qt/src/qdbusreply.h: Make some methods const.
133
134 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
135
136         Patch from Timo Hoenig <thoenig@suse.de>.
137
138         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
139         required during build to EXTRA_DIST.
140         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
141         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
142         * configure.in: Fix "make dist", take care that the Makefile for
143         qt/dbus is being generated.
144
145 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
146
147         * bus/bus.c: Fix eavesdropping on method calls
148
149 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
150
151         * configure.in:
152         * dbus/dbus-userdb-util.c:
153         Add Solaris console owner patch from Artem Kachitchkine
154
155 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
156
157         * qt/Makfile.am:
158         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
159         reorganisation. Thanks to Timo Hoenig for pointing this out.
160
161 2006-06-06  Robert McQueen  <robot101@debian.org>
162
163         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
164           call to dbus_g_type_get_struct.
165
166 2006-06-06  Robert McQueen  <robot101@debian.org>
167
168         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
169           pointers were put into a GPtrArray-based specialised collection, and
170           then freed along with the array. GValues which you add into
171           collections or maps which have the NOCOPY flag set are assumed to not
172           belong to the caller, so rather than the existing pointer-stealing
173           semantics, they are copied instead. Given that the main consumers of
174           this abstraction are the bindings themselves, I don't think this is
175           too bad, but others should watch their choice of take vs set_static.
176
177 2006-06-06  Robert McQueen  <robot101@debian.org>
178
179         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
180           of g_slist_prepend not being used. Fixed copying of slist-based
181           specialised collections, then wrote a test case and found that it was
182           all broken. Went on to fix iterating and appending too. Good thing
183           nobody uses this code yet.
184
185 2006-06-06  Robert McQueen  <robot101@debian.org>
186
187         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
188           the iterators use gvalue_take_ptrarray_value (the GValues themselves
189           are discarded without unsetting, so it makes no difference whether
190           we take or set_static). Remove cases for G_TYPE_POINTER because
191           there really is nothing useful we can do with them in our
192           specialised types - we *need* boxed copy/free functions at the very
193           least.
194
195 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
196
197         * qt/dbus: Add directory. I had forgotten to add this
198         yesterday after the move...
199
200         * qt/examples/Makefile.am:
201         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
202
203         * qt/tools/Makefile.am:
204         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
205         Added feature to get and set properties.
206         Added validation of service, object path and interface names.
207
208         * qt/tools/dbusidl2cpp.cpp: Two new features:
209         1) Allow specifying both the header and the source file names,
210         by separating them with a colon.
211         2) Don't write an interface output if the -p switch wasn't
212         given, but the -a was.
213
214         * qt/src/*: Fix usage of Iterators and ConstIterators.
215         Fix shadowing of variables by other variables (-Wshadow).
216         Fix keyword-cleanliness in headers.
217         Fix ASCII-cast (QLatin1String, QLatin1Char).
218         Fix validation of member names.
219         Add extra checking of introspection data during XML parsing.
220         Various bug fixes.
221
222 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
223
224         * dbus/Makefile.am:
225         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
226         qt/dbus/qdbus.h now.
227
228 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
229
230         * configure.in: Make --disable-qt actually do
231           something. Patch inspired by Zack Rusin.
232
233 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
234
235         * qt/: Update to Subversion r548032.
236         This includes a big reorganisation of the files inside the
237         subdir.
238
239 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
240
241         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
242         clear:  
243         "Failed to connect to socket <host>:<port> <error>" instead of
244         "Failed to connect to socket <host>: <error>:<port>"
245
246         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
247         for a tcp transport. 
248
249 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
250
251         * qt/*: Update the QtDBus bindings up to revision 546310 in
252         Subversion.
253         This adds the dbuscpp2xml tool, that parses a C++ header and
254         outputs a D-BUS Introspection XML.
255
256 2006-05-21  Havoc Pennington  <hp@redhat.com>
257
258         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
259         is not NULL when it shouldn't be. Also a couple of possible fixes
260         for #4637 though I don't understand why the bug happens, to be
261         honest... also the object constructor has an assert name != NULL
262         and the name is only currently NULL for peer-to-peer proxies that 
263         I don't think anyone uses? So it should be asserting.
264         Anyway, for now at least see if we get an earlier assertion failure.
265
266         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
267         apparently broken code to be sure the tests fail and someone 
268         will fix them...
269
270 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
271
272         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
273         and arrays when they had a single element: has_next returns
274         false, even before you read the element. So, instead, check
275         the array length.
276
277 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
278
279         * qt/qdbusmessage.cpp:
280         * qt/qdbustypehelper_p.h:
281         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
282         the list is a const-reference
283
284 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
285
286         * Adding old doc patch that never got applied
287         
288         * dbus/bus.c (dbus_bus_add_match): Add documentation
289
290         * doc/dbus-specification.xml: Add documentation for the match rules
291           and the AddMatch and RemoveMatch methods
292
293 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
294
295         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
296         call (r535506)
297
298         * qt/dbusidl2cpp.cpp:
299         * qt/qdbusabstractadaptor.cpp:
300         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
301         sibling of the QDBusAbstractAdaptor objects instead of the
302         parent. (r535848)
303
304         * qt/dbusidl2cpp.cpp:
305         * qt/qdbusabstractinterface.cpp:
306         * qt/qdbusabstractinterface.h:
307         * qt/qdbusabstractinterface_p.h:
308         * qt/qdbusinterface.cpp: Make properties in interfaces
309         actually work. The code that was generated would not compile,
310         due to moc calls to functions that did not exist. They now
311         shall. (r536571)
312
313 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
314
315         * Makefile.am:
316         * configure.in:
317         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
318         Thanks to Brad Hards for providing the patch
319
320 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
321
322         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
323         call. (r535506)
324
325 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
326
327         * qt/examples/dbus.cpp: Enhance error messages and use
328         QDBusInterfacePtr.
329
330 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
331
332         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
333         and disable the copy operators. (r533772, r534746)
334
335         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
336
337         * qt/qdbusabstractinterface.cpp:
338         * qt/qdbusabstractinterface.h: Change the default call mode to
339         not use the event loop. Add convenience call() methods that
340         take a CallMode parameter. (r534042)
341
342         * qt/qdbusconnection.h: Change the default call mode to not
343         use the event loop. (r534042)
344
345         * qt/qdbusinterface.cpp:
346         * qt/qdbusinterface.h: Add a method to tell us if the
347         interface is valid (since we don't return a null pointer
348         anymore) (r534099)
349
350         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
351         (r534101)
352
353         * qt/qdbusinternalfilters.cpp: Decouple the introspection
354         function in two so taht we get the chance to introspect
355         without having a QDBusMessage (r534102)
356
357         * qt/qdbusbus.h:
358         * qt/qdbusconnection.cpp:
359         * qt/qdbusconnection_p.h:
360         * qt/qdbusintegrator.cpp: Keep a list of our own names to
361         avoid a round-trip to the server when attempting to introspect
362         one of our own objects. Also make sure the filter functions
363         match the empty interface as well. (r534108)
364         Don't keep the connection names. Instead, trust the unique
365         connection name (r534111)
366         Remove event loop usage (r534112)
367
368 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
369
370         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
371         Brad Hards.
372
373 2006-04-28  Robert McQueen  <robot101@debian.org>
374
375         * glib/dbus-gproxy.c: Fix properties so that they can be given in
376         any order, making it easier for people who inherit from this
377         object.
378
379 2006-04-28  Robert McQueen  <robot101@debian.org>
380
381         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
382         of memory from within pointer arrays and lists. Fixes bug #6300.
383
384 2006-04-28  Robert McQueen  <robot101@debian.org>
385
386         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
387         generating struct signatures. Fixes bug #6083.
388
389 2006-04-28  Robert McQueen  <robot101@debian.org>
390
391         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
392         to qdbusconnection_p.moc.
393
394 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
395
396         * README, INSTALL: Doc fixes
397         Patch from Brad Hards <bradh at frogmouth.net>
398
399 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
400
401         * qt/examples/dbus.cpp: Use the new merged-interface mode for
402         the dynamic meta object. No need to guess which interface to
403         call.
404
405 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
406
407         * qt/qdbusconnection_p.h:
408         * qt/qdbusmetaobject.cpp:
409         * qt/qdbusmetaobject_p.h:
410         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
411         for the dynamic meta object. No need to guess which
412         interface to call.
413         * qt/qdbusabstractinterface_p.h:
414         * qt/qdbusconnection.cpp:
415         * qt/qdbusintegrator.cpp:
416         * qt/qdbusinterface.cpp:
417         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
418         Add a QDBusRef that looks and behaves like DCOPRef.
419
420 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
421
422         * dbus/dbus-connection.c: Interfaces are optional in method
423         calls, so don't give up if the interface parameter is NULL.
424         Patch reviewed by Havoc Pennington.
425
426 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
427
428         * qt/qdbusreply.h: Add default constructor and operator=
429           (r532625)
430         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
431           in public headers (r532952)
432         * qt/qdbusabstractinterface.cpp:
433         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
434           make it the default (r532951)
435
436 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
437
438         * dbus/dbus-connection.c: Fix asserts
439         Patch from Tim Moloney <t.moloney at verizon.net>
440
441 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
442
443         * mono/Connection.cs, mono/Message.cs: Check Target type
444         Patch from Aaron Bockover (abockover at novell.com)
445
446 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
447
448         * INSTALL: fine-tune the requirements for the Qt4 binding.
449
450 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
451
452         * tools/dbus-print-message.c: Added support for printing of all 
453           remaining data types. Fixed logic for indentation of compound
454           data types.
455         
456 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
457
458         * INSTALL: fill out content of file providing DBus specific
459           build installations, followed by generic Auto* INSTALL file
460           content
461         
462 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
463
464         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
465           Patch by Stefan Eilers. (r529537)
466
467 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
468
469         * qt/qdbusinternalfilters.cpp: Don't show the parent's
470           contents (r528208)
471
472 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
473
474         * qt/Makefile.am: fix the dependency for
475           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
476           not in qdbusconnection.cpp.
477           Thanks to Jakub Stachowski <stachowski@hypair.net> for
478           spotting this.
479
480 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
481
482         * qt/examples/listnames.cpp:
483         * qt/examples/Makefile.am: Three ways to list the names on the
484           bus.
485
486 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
487
488         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
489           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
490
491 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
492
493         Merge from Subversion:
494         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
495           something that exists (r526315)
496         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
497           slots/signals (r526316)
498         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
499           also return an unknown-method error if the parameters don't
500           match for org.freedesktop.DBus.Properties. (r526842)
501         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
502         * qt/qdbusintegrator.cpp: Restore the proper order of
503           delivery: don't make method returns be delivered on priority
504           (r528150)
505
506 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
507
508         * configure.in qt/Makefile.am: add qt/examples
509         * qt/examples: Add QtDBus example programs:
510           - hello: Hello, World
511           - ping: Simple method-calling program
512           - pong: Simple object-exporting program (not using adaptors)
513           - complexping: Interactive method-calling program 
514                 (also gets and sets properties).
515           - complexpong: Sample program exporting methods, signals and
516                 properties, using adaptors.
517           - dbus: Simple implementation of a generic method-calling
518                 program, similar to 'dbus-send', but with semantics
519                 similar to 'dcop'.
520           - chat: Simplistic chat program, implemented using signals
521                 and the system bus. Looks like IRC.
522
523 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
524
525         * configure.in: Detect QtGui (necessary for one of the
526           example programs). Note: this increases the minimum required
527           version of Qt to 4.1.3.
528
529 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
530
531         * test/qt/*: Sync with KDE Subversion revision 523647.
532         Update the testcases to the new API. Remove testcases for
533         classes that are no longer public or have been removed.
534
535 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
536
537         * qt/*: 
538         * dbus/qdbus.h: Sync with KDE Subversion revision
539         523647. Hopefully, this will be the last of the
540         source-incompatible changes. Documentation has been improved;
541         support for QList<basic-types> has been added; QDBusObject is
542         gone; QDBus(Abstract)Interface is now a QObject with
543         auto-generated meta-object; QDBusIntrospection is marked
544         private, since QMetaObject can be used now; lots of bugfixes.
545
546 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
547
548         Patch from Milosz Derezynski <internalerror at gmail.com>
549         
550         * configure.in:
551         Output the service directory in the configure summary
552
553         * dbus-1.pc.in:
554         Add session_bus_services_dir
555
556 2006-03-10  Ross Burton  <ross@openedhand.com>
557
558         * tools/dbus-print-message.c:
559         Add support for object paths and signatures.
560
561 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
562
563         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
564         config reload.
565         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
566         information caches
567         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
568         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
569         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
570         * dbus/dbus-userdb.h: Add function to flush all user/group information
571         caches.
572
573 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
574
575         * qt/dbusidl2cpp.cpp:
576         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
577         for dcopidl2cpp, found in the KDE installations (or the more
578         modern kalyptus): generate Qt4 C++ code for the input XML
579         introspection. Currently no IDL parsing.
580
581 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
582
583         * test/qt/*: Update the self-tests.
584
585 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
586
587         * qt/*: 
588         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
589         represents the first feature-complete version of the Qt4
590         bindings since I took ove maintainership.
591
592 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
593
594         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
595         dir. This is C++, so we can't use the DBus ones.
596
597 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
598
599         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
600         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
601
602 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
603
604         * dbus/dbus-connection.c: 
605         (_dbus_connection_block_pending_call):
606         Check to see if our data has already been read off the connection
607         by another blocking pending call before we block in poll.
608         (check_for_reply_and_update_dispatch_unlocked):
609         Code taken from _dbus_connection_block_pending_call - checks for
610         an already read reply and updates the dispatch if there is one.
611
612         * test/name-test/test-pending-call-dispatch.c:
613         New test for making sure we don't get stuck polling a 
614         dbus connection which has no data on the socket when
615         blocking out of order on two or more pending calls.
616
617 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
618
619         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
620         make/automake don't detect that we're talking about the same
621         .lo file if I specify the full path to the source files.
622
623 2006-02-26  Havoc Pennington  <hp@redhat.com>
624
625         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
626
627         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
628         session bus variable is unset, suggest "man dbus-launch" and "man
629         dbus-daemon" to figure out how to fix the problem
630
631 2006-02-25  Havoc Pennington  <hp@redhat.com>
632
633         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
634         should make this thing use the new glib options parser
635
636 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
637
638         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
639         .lo files taking moc sources.
640
641 2006-02-25  Havoc Pennington  <hp@redhat.com>
642
643         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
644         and install it as a public header
645
646 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
647
648         * Released 0.61
649
650 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
651         
652         * proxies.py: Fix the callchain
653
654 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
655         
656         * patch from Sjoerd Simons <sjoerd at debian.org>:      
657
658         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
659         dbus/dbus-sysdeps.c
660
661         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
662         call _dbus_group_info_free_allocated which causes infinite loop,
663         correctly call _dbus_group_info_free
664
665 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
666
667         * qt/qdbusinterface_p.h:
668         * qt/qdbusinterface.cpp: Use the standard
669         org.freedesktop.DBus.Method.NoReply annotation for the "async"
670         calls instead of creating one for us.
671
672         * qt/qdbusconnection_p.h:
673         * qt/qdbusintegrator.cpp: Remove debugging code.
674
675         * qt/qdbusintegrator.cpp:
676         * qt/qdbusmessage.cpp:
677         * qt/qdbusmessage_p.h:
678         * qt/qdbusmessage.h: Change the behaviour of automatic
679         reply-sending: now a reply is always sent, unless the caller
680         didn't request one or if the user slot has already sent one.
681
682 2006-02-16  Robert McQueen  <robot101@debian.org>
683
684         * configure.in: Patch from Debian packages by Sjoerd Simons
685         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
686         arguments so it's possible to build both bindings in the
687         same tree.
688
689         * qt/Makefile.am: Fix truncated value so that make dist works.
690
691 2006-02-16  Robert McQueen  <robot101@debian.org>
692
693         * acinclude.m4, configure.in: Patch from Brad Hards
694         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
695         improving quoting, re-ordering a few checks, and a few other
696         aesthetic tidy-ups.
697
698 2006-02-16  Robert McQueen  <robot101@debian.org>
699
700         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
701         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
702         assertion that the next element to read from the iter is fixed in
703         size. This is not the case when you are at the end of the iter,
704         because the next element type is INVALID.
705
706         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
707         a bogus assert which means that you may not initialise a 0-length
708         string unless you provide a non-NULL pointer. This prevented
709         you from marshalling messages containing zero-length arrays in
710         some cases.
711
712         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
713         from Rob to correct bogus asserts when trying to demarshal an
714         array and get_fixed_array got you 0 elements. Append nothing to
715         the GArray in this case.
716
717         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
718         an empty array via the glib bindings. Without all of the above
719         patches, this new test fails.
720
721 2006-02-16  Robert McQueen  <robot101@debian.org>
722
723         * glib/dbus-gmain.c: Make the previous commit compile.
724
725         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
726         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
727         specify sender_keyword="foo", path_keyword="bar" when adding
728         a signal listener, so that you can bind to signals generically
729         but still do something useful in your callback.
730
731         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
732         chars so that they're not cast to chars and made negative. Thanks
733         to Jakub Stachowski for reporting this and testing the fix.
734
735 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
736
737         * dbus/dbus-glib.h:
738         * glib/dbus-gmain.h:
739         (dbus_g_connection_open): new method for openning
740         a connection to an arbitrary address in the glib bindings
741
742         * ChangeLog: checkin last entry which doesn't seem to be commited
743
744 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
745
746         * tools/dbus-launch.c: Fixed sh syntax output
747
748 2006-02-13  Robert McQueen  <robot101@debian.org>
749
750         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
751         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
752         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
753         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
754         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
755         missing piece of the glib bindings jigsaw puzzle. This modifies
756         the existing specialised types to have N type parameters (rather
757         than the current 1 or 2 for arrays and dictionaries respectively).
758         You can then use this to get a glib type to represent any arbitrary
759         D-Bus struct type using dbus_g_type_get_struct. The only
760         implementation of these types is with GValueArrays as before,
761         but it's now possible to store these in arrays, emit them in
762         signals, etc.
763
764 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
765
766         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
767         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
768         <thiago.macieira at trolltech.com>
769
770 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
771
772         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
773         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
774
775 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
776
777         * bus/connection.c (bus_connections_expect_reply): Make
778         pending reply limit not common to all connections (Bug #5416)
779         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
780
781 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
782
783         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
784
785 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
786
787         * gcj/Makefile.am: point to correct jar command (Bug #4529)
788         patch from Doug Goldstein <cardoe at gentoo.org>
789
790 2006-02-09  Joe Shaw  <joeshaw@novell.com>
791
792         * mono/Arguments.cs: Fix a magic number in the mono bindings
793         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
794
795 2006-01-27  Robert McQueen  <robot101@debian.org>
796
797         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
798         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
799         when generating the client-side methods, instead of overloading
800         CSymbol which broke everything horribly. My apologies.
801
802 2006-01-27  Robert McQueen  <robot101@debian.org>
803
804         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
805         by me and Rob Taylor to add a simple_free function to D-Bus map
806         and collection types, which allows those types which can be freed
807         with a GDestroyNotify (such as GHashTables and GArrays, but not
808         GPtrArrays) to be stored as the values in hashtables.
809
810         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
811         Patch by Rob Taylor to add nested dicts to the glib tests to check
812         the above code works, and appears not to leak when called repeatedly.
813
814 2006-01-27  Robert McQueen  <robot101@debian.org>
815
816         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
817         to free a D-Bus allocated string with dbus_free () instead of
818         g_free ().
819
820 2006-01-27  Iain Holmes  <iain@openedhand.com>
821
822         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
823         method from being called multiple times.
824
825 2006-01-19  Robert McQueen  <robot101@debian.org>
826
827         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
828         <rob.taylor@collabora.co.uk> to add support for generating bindings
829         to arrays that are represented as GPtrArrays rather than GArrays (ie
830         size-variable things, such as strings, objects, structs, etc).
831
832 2006-01-05  Robert McQueen  <robot101@debian.org>
833
834         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
835         <ricardo.kekki@movial.fi> to make it possible to inherit from
836         DBusGProxy, by splitting the DBusGProxy struct into a public part and
837         a private part, and moving the setting of the DBusGProxyManager into a
838         connection property, allowing proper GObject construction.
839
840 2006-01-05  Robert McQueen  <robot101@debian.org>
841
842         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
843         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
844         annotations when generating glib client bindings.
845
846 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
847
848         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
849
850         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
851
852 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
853
854         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
855
856 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
857
858         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
859
860 2005-12-19  Ross Burton  <ross@openedhand.com>
861
862         * doc/dbus-tutorial.xml:
863         Document the Glib client-side bindings, and list all possible annotations.
864
865 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
866
867         * dbus/bus.c (dbus_bus_release_name): Add documentation
868
869 2005-12-06  Robert McQueen  <robot101@debian.org>
870
871         * python/service.py: s/sucessful/successful/ so we're allocating to
872         and reading from the same variable. Oops.
873
874 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
875
876         * Released 0.60
877
878 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
879
880         * test/qt/Makefile.am: build from srcdir
881
882         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
883         Note - this code is wrong and needs to be fixed by the Qt binding
884         developers.  The flags should be treated as bitfields and not enums.
885
886         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
887
888 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
889
890         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
891           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
892           in production code
893
894 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
895
896         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
897         method for getting messages off the bus in the absence of a
898         mainloop.  This method is much like 
899         dbus_connection_read_write_dispatch except it does not dispatch
900         the messages to a registered filter function.  Instead it
901         allows a developer to process messages by directly popping
902         them off the bus.
903
904 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
905
906         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
907         the parser to continue instead of returning error
908         (bus_desktop_file_load): Do not free parser data when
909         parse_section_start or parse_key_value fails because it was 
910         already freed by parser_free (patch from Carlos Garcia Campos  
911         <carlosgc at gnome.org>)
912
913 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
914
915         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
916         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
917         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
918         test/test-segfault.c, test/test-utils.c,
919         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
920         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
921         Various cleanup of dead code and compiler warnings (patch from
922         Kjartan Maraas <kmaraas at gnome.org>) 
923
924 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
925
926         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
927         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
928
929 2005-11-27  Robert McQueen  <robot101@debian.org>
930
931         * python/dbus_bindings.pyx: Repair my previous commit which reverted
932         part of the preceding one. Oops. Merge patch by Johan Hedberg
933         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
934         on big-endian platforms.
935
936         * test/python/test-client.py: Add some 16-bit integers to the test
937         values.
938
939 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
940
941         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
942         method return message for property getters
943
944 2005-11-27  Robert McQueen  <robot101@debian.org>
945
946         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
947         with type v of an instance of dbus.Variant(foo, type='x') caused
948         it to be boxed twice before sending over the bus.
949
950         * python/dbus_bindings.pyx, python/service.py,
951         test/python/test-client.py: Update the constants for the new
952         request_name flags, and update comments/test cases now that queueing
953         is the default action.
954
955 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
956
957         * configure.in:
958         - Change version to 0.60 for impending release
959         - upped the sonames because of ABI and API breakage
960
961 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
962
963         * configure.in: Add test/name-test/Makefile to the generated
964         Makefile list
965
966         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
967         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
968         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
969         not to queue an ower if it can't be the primary owner
970
971         * bus/bus.h: Add new internal BusOwner struct
972
973         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
974         to bus_registry_ensure and don't set the prohibit_replacement flag
975         since they are now set per BusOwner and not per name.
976         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
977         that returns the list of connections in a name's connection queue
978         
979         * bus/services.c (struct BusService): remove prohibit_replacement field
980         (struct BusOwner): new struct for keeping track of queued connections
981         and their associated flags for the queue
982         (struct BusRegistry): add a BusOwner memory pool
983         (bus_registry_new): initialize the BusOwner memory pool
984         (bus_registry_unref): free the BusOwner memory pool
985         (_bus_service_find_owner_link): new internal method for
986         searching the queue for a specific connection
987         (bus_owner_set_flags): new method for adding setting the flags on a
988         bus owner
989         (bus_owner_new): new method that creates a BusOwner object from the
990         pool and sets its flags
991         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
992         (bus_registry_ensure): Add the flags parameter
993         (bus_registry_acquire_service): Switch from using raw connections to
994         using the BusOwner struct
995         Add new state machine for dealing with the new set of flags
996         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
997         cancel_ownership, free_ownership_cancel_data, 
998         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
999         restore_ownership, free_ownership_restore_data, 
1000         add_restore_ownership_to_transaction): Switch to using BusOwner 
1001         instead of raw connections
1002         (bus_service_add_owner): Add flags parameter
1003         Switch to using BusOwner instead of raw connections
1004         Add state machine for dealing with the new set of flags
1005         (bus_service_swap_owner): Swaps the first and second owners in the
1006         queue.  Used to make sure proper signals are sent when a service looses 
1007         or gains primary ownership.  We never insert an owner at the top of the
1008         queue.  Instead we insert it in the second position and then swap.
1009         (bus_service_remove_owner): Remove the owner from the queue sending
1010         out the NameLost and NameOwnerChanged signals if the we were the 
1011         primary owner
1012         (bus_service_get_primary_owners_connection): New method that extracts
1013         the connection from the primary owner
1014         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1015         connection
1016         (bus_service_get_allow_replacement): Changed from the old 
1017         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1018         primary owner and returns if it can be replaced or not
1019         (bus_service_set_prohibit_replacement): removed
1020         (bus_service_has_owner): returns TRUE if and owner with
1021         the specified connection exists in the queue
1022         
1023         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1024         method that only compiles if tests are enabled.  Allows us to get the 
1025         unique name of a connection so we can check it against the queue when
1026         doing regression tests
1027
1028         * bus/activation.c (bus_activation_send_pending_auto_activate),
1029         bus/dispatch.c (bus_dispatch),  
1030         bus/driver.c (bus_driver_handle_get_service_owner, 
1031         bus_driver_handle_get_connection_unix_user, 
1032         bus_driver_handle_get_connection_unix_process_id,
1033         bus_driver_handle_get_connection_selinux_security_context),
1034         bus/signals.c (connection_is_primary_owner): 
1035         use bus_service_get_primary_owners_connection instead of
1036         bus_service_get_primary_owner
1037
1038         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1039         _dbus_listen_unix_socket): Calculate the length of the socket
1040         path and use that instead of using a fixed length which was
1041         causing socket names to contain many trailing Nul bytes.
1042
1043         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1044         (dbus_g_method_get_sender): New method for extracting the sender 
1045         from a DBusGMethodInvocation
1046         (dbus_g_method_return_get_reply): changed name to 
1047         dbus_g_method_get_reply
1048         (dbus_g_method_return_send_reply): changed name to
1049         dbus_g_method_send reply
1050
1051         * doc/dbus-specification.xml: New docs that describe how the new
1052         queueing system works and talks about the changes to the how
1053         we specify socket names
1054
1055         * glib/examples/example-service.c, 
1056         glib/examples/example-signal-emitter.c,
1057         glib/examples/statemachine/statemachine-server.c:
1058         Changed the RequestName flags to the new system
1059
1060         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1061         regression test suite for testing various states of the new
1062         queueing system
1063         
1064 2005-11-15  Robert McQueen  <robot101@debian.org>
1065
1066         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1067         Taylor to add two methods, dbus_g_method_return_get_reply and
1068         dbus_g_method_return_send_reply, to allow you to get the reply
1069         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1070         and send it. The GLib bindings can't marshal a return value of
1071         something like a(s) if the array is empty - ultimately they should be
1072         made to heed the signature of the out arguments as the Python bindings
1073         now can, but this is a workable interim solution which might have
1074         other applications.
1075
1076 2005-11-15  Robert McQueen  <robot101@debian.org>
1077
1078         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1079         method to org.freedesktop.DBus to release a bus name or give up
1080         waiting in the queue for it.
1081
1082         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1083         dbus_bus_release_name method to send the ReleaseName method calls.
1084         Add constants for the return values to dbus/dbus-shared.h.
1085
1086         * doc/dbus-specification.xml: Document the new ReleaseName method
1087         in the specification.
1088
1089         * python/dbus_bindings.pyx: Add a low-level python binding for the
1090         release name method.
1091
1092         * python/exceptions.py, python/service.py: Make freeing BusName
1093         objects release the name. Add a NameExistsException, and fix a
1094         bug with creating UnknownMethodException.
1095
1096         * test/python/test-client.py: Add tests for freeing BusName
1097         objects causing names to be released.
1098
1099 2005-11-14  Robert McQueen  <robot101@debian.org>
1100
1101         * python/service.py: Include the traceback in the error reply when we
1102         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1103
1104 2005-11-14  David Zeuthen  <davidz@redhat.com>
1105
1106         Patch from Timo Hoenig <thoenig@suse.de>.
1107
1108         * bus/bus.c: I've recently investigated why the automatic reload
1109         of configuration files does not work as expected.
1110
1111         Currently, reloading configuration files does only work when
1112         running dbus-daemon with --nodaemon.  If we are running as daemon
1113         we're hitting a dnotify bug once we fork the process.
1114
1115         We're initializing the dnotify fds before calling fork().  Once
1116         the child process forked it does still have the fds (and they
1117         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1118         getting SIGIO as changes are made to the configuration files.
1119
1120         The attached patch moves the initialization of the dnotify fds to
1121         process_config_postinit().  This is safe for all current code
1122         paths and solves the dnotify disfunction.  If we're running
1123         dbus-daemon as daemon the fds for dnotify are now being
1124         initialized after fork() for the child process.
1125
1126         * configure.in: The current configure.in check for dnotify probes
1127         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1128         match for 'xlinux', too. Additionally I have adapted the configure
1129         option's style to match with the others.
1130
1131 2005-11-14  Robert McQueen  <robot101@debian.org>
1132
1133         * python/decorators.py, python/service.py: Add a new argument to the
1134         dbus.service.method decorator called sender_keyword, which if set,
1135         specifies the name of an argument which will be provided the bus
1136         name of the method caller.
1137
1138         * test/python/test-client.py, test/python/test-service.py: Add a
1139         method and test to check the sender_keyword functionality.
1140
1141 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1142
1143         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1144         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1145         Simons <sjoerd at luon.net>)
1146
1147         * AUTHORS: Add Robert McQueen for his work on the Python
1148         Bindings and other parts of D-Bus
1149
1150 2005-11-07  Robert McQueen  <robot101@debian.org>
1151
1152         * python/decorators.py: Change emit_signal function to use the
1153         signature annotation of the signal when marhsalling the arguments from
1154         the service. Fix a bug where the code checking signature length
1155         against argument length referenced the wrong variable.
1156
1157         * python/introspect_parser.py: Avoid adding the type signature of
1158         signal arguments to any methods which occur after them in the
1159         introspection data (!) by making the parser a little more careful
1160         about its current state.
1161
1162         * python/service.py: Remove debug prints from last commit (again :D).
1163
1164         * test/python/test-client.py, test/python/test-service.py: Add test
1165         signals with signature decorators to test the strict marshalling code
1166         gives errors at the right time. Could do with checking the signals
1167         actually get emitted too, given that the test does nothing with
1168         signals at the moment...
1169
1170 2005-11-07  Robert McQueen  <robot101@debian.org>
1171
1172         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1173         instances to stop madness of creating new instances representing
1174         the same bus connection all the time, rendering any tracking of
1175         match rules and bus names quite meaningless. Caught a bug where
1176         the private argument to SessionBus() and friends was being passed
1177         in as use_default_mainloop by mistake. Still some problems with
1178         multiple dbus_binding.Connection instances representing the same
1179         low-level connection (eg when you use both SessionBus() and
1180         StarterBus() in same process), but it's a lot better now than it
1181         was.
1182
1183         * python/dbus_bindings.pyx: Add constants with the return values
1184         for bus_request_name().
1185
1186         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1187         and retrieve the same instances for the same name, so deletion can be
1188         done with refcounting. Also now throws some kind of error if you
1189         don't actually get the name you requested, unlike previously...
1190
1191         * test/python/test-client.py: Add tests for instance caching of buses
1192         and bus name objects.
1193
1194 2005-11-04  Robert McQueen  <robot101@debian.org>
1195
1196         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1197         marshalling of boolean values. Add some booleans to the values in
1198         the test client.
1199
1200         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1201         argument to the dbus.service.method decorator, which allows you to
1202         name arguments to take two callback functions for replying with
1203         return values or an exception.
1204
1205         * test/python/test-client.py, test/python/test-service.py: Add test
1206         case using asynchronous method reply functions, both return values and
1207         errors, and from within both the function itself and from a mainloop
1208         callback.
1209
1210         * python/decorators.py, python/service.py: Perform checking that the
1211         number of method/signal arguments matches the number of types in the
1212         signature at class loading time, not when you first introspect the
1213         class.
1214
1215         * python/service.py: Remove debug print left by the last commit.
1216
1217 2005-11-03  Robert McQueen  <robot101@debian.org>
1218
1219         * python/service.py: Heavy refactoring of method invocation, with
1220         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1221         in favour of a new _message_cb that uses seperate functions for
1222         looking up the method to call, marshalling the return values, and
1223         sending exceptions as errors, and is easier to follow as a
1224         consequence.  Fixes some corner cases about returning things that
1225         don't match your declared out_signature, allows exceptions to define
1226         _dbus_error_name and have it be sent over the bus as the error name,
1227         and paves the way for cool stuff like heeding the message no reply
1228         flag, asynchronous method implementations, informing the method of the
1229         sender, and including backtraces in the error messages.
1230
1231         * test/python/test-client.py: Catch and print exceptions thrown in the
1232         async callback tests, rather than passing them to the low-level
1233         bindings to be ignored in a noisy and frustrating manner.
1234
1235 2005-11-03  Robert McQueen  <robot101@debian.org>
1236
1237         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1238         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1239         tweak others to be consistent.
1240
1241         * test/python/test-client.py: Tweak output of testInheritance.
1242
1243 2005-10-29  Robert McQueen  <robot101@debian.org>
1244
1245         * python/service.py: Major changes to allow multiple inheritance
1246         from classes that define D-Bus interfaces:
1247         
1248          1. Create a new Interface class which is the parent class of
1249             Object, and make the ObjectType metaclass into InterfaceType.
1250         
1251          2. Patch written with Rob Taylor to replace use of method_vtable
1252             with code that walks the class's __MRO__ (method resolution order)
1253             to behave like Python does when invoking methods and allow
1254             overriding as you'd expect. Code is quite tricky because
1255             we have to find two methods, the one to invoke which has the
1256             right name and isn't decorated with the /wrong/ interface,
1257             and the one to pick up the signatures from which is decorated
1258             with the right interface.
1259         
1260             The same caveats apply as to normal multiple inheritance -
1261             this has undefined behaviour if you try and inherit from two
1262             classes that define a method with the same name but are
1263             decorated with different interfaces. You should decorate
1264             your overriding method with the interface you want.
1265         
1266          3. Replace grungy introspection XML generation code in the metaclass
1267             with dictionaries that cope correctly with multiple inheritance
1268             and the overriding of methods. This also uses the signature
1269             decorations to provide correct introspection data, including
1270             the debut appearance of the types of your return values. :D
1271
1272         * test/python/test-client.py, test/python/test-service.py: Add a test
1273         case to try invoking an method that overrides one inherited from a
1274         D-Bus interface class.
1275
1276 2005-10-29  Robert McQueen  <robot101@debian.org>
1277
1278         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1279         Add checking for the end of struct character when marshalling a
1280         struct in MessageIter.append_strict.
1281
1282         * python/examples/example-service.py,
1283         python/examples/gconf-proxy-service.py,
1284         python/examples/gconf-proxy-service2.py: Update to use gobject
1285         mainloop directly rather than appearing to depend on gtk.
1286
1287         * python/test/test-client.py, python/test/test-server.py: Remove
1288         obsolete and broken test scripts for old bindings. We have up to date
1289         and working tests in test/python/.
1290
1291 2005-10-29  Robert McQueen  <robot101@debian.org>
1292
1293         * python/decorators.py: Add optional arguments to the method and
1294         signal decorators to allow you to specify the signature of arguments
1295         and return values. Preserve the doc strings of signal functions in the
1296         decorated version, for pydoc and friends.
1297
1298         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1299         parse_signature_block function with an iterable dbus.Signature()
1300         type. Fix a bug in MessageIter.append_strict where you could append
1301         anything by claiming it was a string.
1302
1303         * python/service.py: Use the out_signature decoration on methods to
1304         marshal return values, meaning you no longer require dbus.Array()
1305         or dbus.Dictionary() to indicate the type when returning empty
1306         arrays or dictionaries. Fix a bug where exceptions which are defined
1307         in __main__ are not turned into error replies.
1308
1309         * test/python/test-client.py, test/python/test-service.py: Add test
1310         for correct marshalling of return values according to out_signature.
1311         Fix a bug in the async call test where the error_handler is missing a
1312         self argument.
1313
1314 2005-10-29  Robert McQueen  <robot101@debian.org>
1315
1316         * glib/Makefile.am, glib/examples/Makefile.am,
1317         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1318         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1319
1320         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1321
1322         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1323         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1324         the command line.
1325
1326 2005-10-27  Ross Burton  <ross@openedhand.com>
1327
1328         * dbus/dbus-marshal-header.c:
1329         Remove dead code.
1330
1331         * glib/dbus-gobject.c:
1332         Stop compiler warning.
1333
1334 2005-10-25  Ross Burton  <ross@openedhand.com>
1335
1336         * dbus/dbus-auth.c:
1337         * dbus/dbus-server-unix.c:
1338         * dbus/dbus-transport-unix.c:
1339         * glib/dbus-gmain.c:
1340         * glib/dbus-gobject.c:
1341         Add some const keywords.
1342
1343 2005-10-25  Ross Burton  <ross@openedhand.com>
1344
1345         * doc/dbus-specification.xml:
1346         Document the NoReply annotation.
1347
1348         * glib/dbus-binding-tool-glib.h:
1349         * glib/dbus-binding-tool-glib.c:
1350         Respect the NoReply annotation.
1351
1352 2005-10-24  Robert McQueen <robot101@debian.org>
1353
1354         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1355         derive from unicode instead of str, and encode/decode UTF-8 when
1356         marshalling/unmarshalling bus messages
1357
1358         * python/introspect_parser.py: encode introspection data as UTF-8
1359         before passing the buffer into libxml2
1360
1361         * test/python/test-client.py: add unicode test strings
1362
1363         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1364         ignore generated python test files
1365
1366 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1367
1368         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1369         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1370         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1371
1372         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1373         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1374         when constructing struct signatures
1375
1376         * python/_dbus.py (Bus): handle private connections using the
1377         private keyword in the constructor. defaults to private=False
1378         (Bus::close): new method to close a connection to the bus
1379
1380         * python/dbus_bindings.pyx (Connection::close): renamed method
1381         was previously called disconnect
1382         (bus_get): now supports getting a private connection
1383
1384         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1385         keyword is set to True.  if it is, execute the method without waiting
1386         for a reply
1387         (ProxyObject::_introspect_execute_queue): new method for executing
1388         all the pending methods that were waiting for the introspect to
1389         finish.  this is called when introspect either succeeds or fails
1390         (ProxyObject::_introspect_error_handler): call queued methods
1391
1392 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1393
1394         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1395         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1396
1397         * python/service.py (Object::_message_cb): handle exceptions correctly
1398         by sending them over the wire to the calling app.  This makes sure
1399         the client returns immediately instead of waiting the 15 seconds to
1400         timeout.
1401
1402         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1403         Add a test to benchmark how long it takes to introspect a service and 
1404         call a method which returns a large element (pretty fast)
1405
1406         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1407         method which pushes a lot of data
1408
1409 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1410
1411         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1412         reclaim memory outside of the loop and use del istead of just setting
1413         the key to None
1414
1415 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1416
1417         * python/service.py (ObjectType::_reflect_on_signal): Always close
1418         signal tag even when there are no arguments
1419
1420 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1421
1422         * configure.in: Set mono, mono-docs and Qt3 to default
1423         to no instead of auto when building.  These bindings do not
1424         have full time maintainers and will not be supported for the
1425         1.0 release.
1426
1427 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1428
1429         patches from Michael Krivoruchko <misha at sun.com>: 
1430         
1431         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1432         _dbus_connection_message_sent, 
1433         _dbus_connection_send_preallocated_unlocked_no_update, 
1434         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1435         is NULL when calling _dbus_verbose
1436
1437         * configure.in: check for functions getpeerucred and getpeereid
1438
1439         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1440         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1441         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1442         Patch was only tested on Solaris 10 x86 so it might be issues
1443         with other platforms (i.e. BSDs and MacOSX)
1444         
1445
1446 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1447
1448         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1449         instead of marshal basic so we can handle recursive types in a variant
1450
1451         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1452         in variants
1453
1454         * test/glib/test-service-glib.c, test-service-glib.xml
1455         (my_object_echo_variant [EchoVariant], 
1456         my_object_process_variant_of_array_of_ints123
1457         [ProcessVariantOfArrayOfInts123]): 
1458         Add two test methods
1459
1460         * python/introspect_parser.py: New module for parsing introspect
1461         data.
1462
1463         * python/dbus_bindings.pyx:
1464         (various places): when throwing errors fix to use errormsg instead 
1465         of message local variable because Pyrex can get confused with other 
1466         message variables (initial patch by Robert McQueen 
1467         <robert.mcqueen at collabora.co.uk>)
1468         (MessageIter::parse_signature_block): new method for getting the next
1469         block in a signiture.
1470         (MessageIter::append_strict): new method for appending values strictly
1471         using the passed in signature instead of guessing at the type
1472         (MessageItter:: append_dict, append_struct, append_array): use 
1473         signatures to marshal children if the signature is available
1474         
1475         * python/exceptions.py (IntrospectionParserException): new exception
1476
1477         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1478         introspected signatures if available, else we fall back to the
1479         old way of doing things.
1480         (ProxyObject::_introspect_reply_handler ): parse introspection data
1481         
1482         * python/service.py (ObjectType::_reflect_on_method): Properly
1483         terminate <method> if there are no args in the reflection data
1484
1485         * test/python/test-client.py: add tests for talking with the GLib
1486         test server.  This gives us better coverage for introspection since
1487         python to python will always generate arguments as variants.  It also
1488         allows us to test the robustness of the GLib bindings and interlanguage
1489         communications.
1490
1491         
1492 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1493
1494         * bus/driver.c (bus_driver_handle_introspect): Add signals
1495         to the introspect data. (patch from Daniel P. Berrange 
1496         <dan at berrange.com>)
1497
1498         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1499         
1500         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1501         _dbus_connection_run_builtin_filters): Changed these to
1502         be unlock_no_update functions and call 
1503         _dbus_connection_send_unlocked_no_update instead of
1504         dbus_connection_send to avoid locking errors.
1505         
1506         * doc/TODO: Removed the make Ping test TODO
1507         
1508 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1509
1510         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1511         We now copy the message from a DBusError and then free 
1512         the error object befor throwing the error
1513
1514         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1515         DBusBindingOutputMode enum which was causing a warning.
1516         #include <time.h> so using time_t is explicitly defined
1517
1518 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1519
1520         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1521         - dbus/dbus-bus.c
1522         (internal_bus_get): new method that take over the heavy lifting
1523         of dbus_bus_get and adds the ability to get a private connection
1524         to the bus
1525         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1526         interface as in previous versions
1527         (dbus_bus_get_private): new method that is a wrapper to 
1528         internal_bus_get to get a private connection to the bus
1529
1530         - dbus/dbus-bus.h
1531         (dbus_bus_get_private): add as a public libdbus interface
1532
1533         - dbus-1.pc.in: output system_bus_default_address and 
1534         sysconfdir variables so apps can use them when compiling
1535
1536 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1537         * dbus/qt: New Qt bindings
1538
1539 2005-09-12  Waldo Bastian  <bastian@kde.org>
1540
1541         * dbus/dbus-marshal-validate.c,
1542         doc/dbus-specification.xml, test/Makefile.am,
1543         test/test-names.c: allow hyphens in bus names.
1544
1545 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1546
1547         * test/data/auth/fallback.auth-script: we don't
1548         retry the EXTERNAL method when we know its going
1549         to fail anymore.
1550
1551 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1552
1553         * dbus/dbus-connection-internal.h: rename
1554         (add|remove|toggle)_(watch|timeout) to unlocked()
1555         
1556         * dbus/dbus-connection.c: ditto.
1557         
1558         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1559         Update some callers for the renaming.
1560
1561 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1562
1563         * dbus/dbus-auth.c: (record_mechanisms): don't
1564         retry the first auth mechanism because we know
1565         we're just going to get rejected again.
1566         
1567         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1568         Fix thinko ... and what a nasty little bugger to
1569         track down you were ...
1570
1571         * dbus/dbus-connection.c:
1572         (_dbus_connection_add_watch),
1573         (_dbus_connection_remove_watch): add note about
1574         these needing the connection to be locked.
1575         (_dbus_connection_get_dispatch_status_unlocked):
1576         set status to DATA_REMAINS when we queue the
1577         disconnected message.
1578         
1579         * bus/dispatch.c:
1580         (bus_dispatch): fix warning.
1581         (check_existent_service_no_auto_start):
1582         Expect ChildSignaled error too.
1583         (check_existent_hello_from_self): fix another
1584         couple of warnings.
1585         
1586 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1587
1588         Patches from James Willcox <snorp@snorp.net>
1589
1590         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1591
1592         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1593         support array "out" parameters.
1594
1595         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1596         for 16-bit int support.
1597
1598 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1599
1600         * Released 0.50
1601
1602         * Patch from Steve Grubb:
1603         - bus/activation.c (bus_activation_service_reload_test): clean up
1604         some indentation
1605         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1606         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1607         buffer overflows in the test suite.  This is non critical because
1608         it can not be exploited and this code is only run when doing a 
1609         make check.
1610
1611         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1612         - configure.in: Don't check and link against kdecore, only qt headers
1613         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1614         - gcj/org/freedesktop/dbus/Makefile.am:
1615         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1616         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1617         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1618         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1619         - tools/Makefile.am: Add platform extentions to binaries 
1620         (i.e. .exe on windows)
1621
1622         * configure.in: 
1623         - Make it so if no suitable version of python is found we only 
1624         disable building python instead of exiting the configure script
1625         - Require version 2.4 of glib for glib bindings
1626         - Up version to 0.50
1627
1628         * python/__init__.py: Sync version with libdbus to (0,50,0)
1629         
1630 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1631
1632         * dbus/dbus-object-tree.c (find_subtree_recurse):
1633         a couple of optimizations (bug #710):
1634         - do a binary search in the tree
1635         - insert a new child at the right place directly, no need for
1636           qsort anymore
1637         - do the "double alloc" thing when allocating children
1638
1639 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1640
1641         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1642
1643         * python/dbus_bindings.pyx: Memory management foo
1644         (global): remove hacky _user_data_references global list
1645         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1646         tuples. Unref user_data
1647         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1648         (Connection::__del__): Remove and replace with __dealloc__ method
1649         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1650         to keep tuple from being deallocated instead of the global var hack
1651         (Connection::register_object_path): Stuff user_data into a tuple.
1652         Use Py_INCREF to keep tuple from being deallocated instead of the 
1653         global var hack
1654         (Connection::register_fallback): Stuff user_data into a tuple.
1655         Use Py_INCREF to keep tuple from being deallocated instead of the 
1656         global var hack
1657         (GIL_safe_pending_call_notification): Don't unref the message
1658         because it gets unreffed when going out of scope.  Py_XDECREF
1659         the user_data
1660         (PendingCall::__del__): Remove and replace with __dealloc__ method
1661         (PendingCall::set_notify): ref the pending call because we will
1662         need it to stick around for when the notify callback gets called
1663         (Message::__del__): Remove and replace with __dealloc__ method
1664
1665         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1666         gthreads_init to match up with the dbus call
1667
1668         * python/glib.py (init_threads): Changed to threads_init to match
1669         up with gobject.threads_init().  init_threads is kept for backwards
1670         compat but will most likely be deprecated in the future
1671
1672         * test/python/test-client.py: 
1673         - revamp to use Python's unittest functionality
1674         - add async call tests
1675         - setup threads in glib and dbus so we make sure locks are working
1676         
1677 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1678
1679         * python/dbus_bindings.pyx 
1680         (_pending_call_notification, cunregister_function_handler, 
1681         cmessage_function_handler): All callback functions have been rearranged 
1682         to workaround a bug in Pyrex when working with the GIL which is Python's 
1683         global lock when dealing with threads.  They have been split into
1684         a wrapper function (which assumes the name of the old function) and
1685         a _GIL_safe_<function name> function which contains the functionality
1686         of the old function.  This ensures that Pyrex does not write code
1687         the lock is released.
1688         
1689
1690 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1691
1692         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1693         GIL global lock when calling back into Python
1694
1695 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1696
1697         * Release 0.36.2
1698
1699         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1700
1701         * bus/policy.c (bus_policy_allow_user): change default "user is
1702         allowed" to be "user has same uid as the bus itself"; any
1703         allow/deny rules will override.
1704
1705         * bus/session.conf.in: don't allow all users, since now by default
1706         the user that ran the bus can connect.
1707
1708 2005-08-26  Colin Walters  <walters@verbum.org>
1709
1710         * tools/dbus-print-message.c (print_message): Flush stdout
1711         after printing a message, so that redirecting to a file, then
1712         hitting Ctrl-C works.
1713
1714 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1715
1716         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1717         (EmptyMessage): new class that subclasses Message.  This is a workaround
1718         to a Pyrex bug that fails to call __del__ when the Message object goes out
1719         of scope.  For some reason subclassing Message fixes this bug
1720         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1721         - s/Message(_create=0)/EmptyMessage everywhere else
1722         
1723         * test/python/test-{server|client}.py: add the python/.libs directory
1724         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1725         get picked up from the system
1726
1727 2005-08-25  Colin Walters  <walters@verbum.org>
1728
1729         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1730         to Ryan Lortie for the suggestion.
1731
1732 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1733
1734         * test/python: Add python regression test
1735
1736         * configure.in: Add test/python/Makefile
1737
1738         * test/Makefile.am: Add the python directory to SUBDIRS
1739
1740 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1741
1742         * Release 0.36.1
1743
1744         * python/_dbus.py: 
1745         (Interface::connect_to_signal): propigate keywords for match on args
1746         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1747
1748         * python/proxies.py (ProxyObject::connect_to_signal):
1749         propigate keywords for match on args
1750
1751         * Makefile.am: point everything to pyexecdir since python borks
1752         on multilib
1753
1754 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1755
1756         * Release 0.36
1757
1758 2005-08-23  Colin Walters  <walters@verbum.org>
1759
1760         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1761
1762 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1763
1764         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1765         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1766         of defining DBusConnection ourselves.
1767
1768 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1769
1770         * python/dbus.pth: New path file to fix up problems when installing
1771         c libraries to lib64 and python files to lib.
1772
1773         * python/Makefile.am: install dbus.pth in the correct spot
1774
1775 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1776         * ChangeLog: clean up my last entry a bit
1777
1778         * doc/introspect.xsl: New stylesheet for converting introspection data
1779         into browser renderable xhtml. Contributed by Lennart Poettering.
1780
1781         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1782         Poettering.
1783
1784         * doc/dbus-tutorial.xml: 
1785         - Add Colin Walter to the Authors section for authoring the GLib
1786         section
1787         - Add descriptions of the new signature and type functionality
1788         in the Python complex type mapping section
1789         - Add a sidenote on the new args matching functionality in 
1790         the Python bindings
1791         - Fixed up some of the examples to use the gobject.MainLoop
1792         instead of gtk.main
1793         
1794         * python/_dbus.py:
1795         (Bus::_create_args_dict): New. Converts a hash of arg matches
1796         to a more useable format
1797         (Bus::add_signal_receiver): add a **keywords parameter for catching
1798         arg match parameters
1799         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1800         arg match parameters
1801         
1802         * python/matchrules.py:
1803         (MatchTree::exec_matches): Check for arg matches
1804         (SignalMatchRule::add_args_match): New method
1805         (SignalMatchRule::execute): Added args_list parameter as an optimization
1806         so we don't have to marshal the args more than once
1807         (SignalMatchRule::match_args_from_list): New method that checks to see
1808         if the rule's arg matches match an argument list.  Only arguments
1809         set in the rule are checked.
1810         (SignalMatchRule::match_args_from_rule): New method that checks to see
1811         if the rule's arg matches match another rule's.  All args have to match
1812         in order for this method to return true.  If either rule has more args
1813         then it is not a match.
1814         (SignalMatchRule::is_match): Add args match
1815         (SignalMatchRule::repr): Add args to the final output if they exist
1816
1817 2005-08-17  Ross Burton  <ross@burtonini.com>
1818
1819         * glib/dbus-gproxy.c:
1820         (dbus_g_proxy_call_no_reply): unref the message once sent.
1821         (dbus_g_proxy_call): protect against NULL proxy.
1822
1823 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1824
1825         * python/__init__.py: Version updated (0, 43, 0)
1826         
1827         * python/dbus_bindings.pyx: 
1828         - Fixed type objects to have self passed into __init__
1829         - Added the Variant type
1830         - Add the ability to specify types or signatures for Array, Variant 
1831         and Dictionary
1832         (Connection::send_with_reply_handlers): return a PendingCall object
1833         (_pending_call_notification): handle the case when an error is returned 
1834         without an error message in the body
1835         (MessageIter::get_boolean): return True or False instead of an integer
1836         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1837         and add checks for objects with embeded signatures or types (Array, 
1838         Variant and Dictionary)
1839         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1840         (MessageIter::append_dict): handle embeded types or signatures
1841         (MessageIter::append_array): handle embeded types or signatures
1842         (MessageIter::append_variant): new method
1843         
1844         * python/proxies.py:
1845         (DeferedMethod): New. Dummy executable object used when queuing calls 
1846         blocking on introspection data
1847         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1848         or shorter timeouts for method calls
1849         (ProxyObject): Add first pass at an introspection state machine
1850         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1851         introspection. 
1852         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1853         the usual mechanisms for sending messages.  This is to avoid a deadlock
1854         where the Intospect call would be queued waiting for the Introspect 
1855         call to finish ;-)
1856         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1857         when introspection returns with no error
1858         (ProxyObject::_introspect_error_handler): New.  This method is called 
1859         when introspection encounters an error
1860         (ProxyObject::__getattr__): Code to handle different introspection 
1861         states.  Queue async calls or block blocking calls if we are 
1862         introspecting.  Pass through as normal if we are not or are done with 
1863         introspecting.
1864         
1865         * python/service.py: Import signal and method from decorators.py
1866
1867         * python/types.py: Add Variant type
1868
1869 2005-08-16  Colin Walters  <walters@verbum.org>
1870
1871         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1872         DBusError message is NULL.
1873
1874 2005-08-09  Havoc Pennington  <hp@redhat.com>
1875
1876         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1877         malloc'd copy of the name parameter
1878
1879 2005-08-09  Havoc Pennington  <hp@redhat.com>
1880
1881         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1882         warning if the reply serial is set to 0
1883
1884 2005-08-04  Colin Walters  <walters@verbum.org>
1885
1886         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1887         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1888         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1889         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1890         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1891         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1892         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1893         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1894         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1895         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1896         
1897         Prefix name with _ to ensure they're not exported.  All callers
1898         updated.
1899
1900         * glib/dbus-gvalue.c (typecode_to_gtype)
1901         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1902         (signature_iter_to_g_type_dict)
1903         (signature_iter_to_g_type_array)
1904         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1905         (dbus_gtypes_from_arg_signature):
1906         Move to dbus-gsignature.c.
1907
1908         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1909         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1910         (dbus_binding_tool_output_glib_client): Ditto.
1911
1912         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1913         and dbus-gsignature.h
1914
1915         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1916         unused variable.
1917
1918 2005-08-03  Colin Walters  <walters@verbum.org>
1919
1920         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1921         catch any incompatible changes accidentally made.
1922
1923 2005-08-03  Havoc Pennington  <hp@redhat.com>
1924
1925         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1926         typo, from Julien Puydt
1927
1928         * bus/connection.c (bus_connection_disconnected): we were always
1929         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1930
1931 2005-08-01  Colin Walters  <walters@verbum.org>
1932
1933         Patch from Joe Markus Clarke:   
1934         
1935         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1936         use-after-free.
1937
1938 2005-08-01  Colin Walters  <walters@verbum.org>
1939         
1940         Patch from Joe Markus Clarke:   
1941         
1942         * tools/dbus-send.c (main): 
1943         
1944         Don't use C99 style initializers (bug #3933).
1945         
1946 2005-08-01  Colin Walters  <walters@verbum.org>
1947
1948         Patch from Joe Markus Clarke:   
1949
1950         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1951         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1952         * glib/dbus-gobject.c (write_interface):
1953
1954         Don't use C99 style initializers (bug #3933).
1955
1956 2005-07-31  Havoc Pennington  <hp@redhat.com>
1957
1958         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1959         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1960
1961 2005-07-30  Havoc Pennington  <hp@redhat.com>
1962
1963         * fix a bunch of Doxygen warnings and mistakes
1964
1965 2005-07-30  Havoc Pennington  <hp@redhat.com>
1966
1967         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1968         DBUS_BUILD_TESTS since it's now used in production code
1969
1970 2005-07-29  Havoc Pennington  <hp@redhat.com>
1971
1972         * test/glib/test-profile.c (write_junk): initialize the junk
1973         buffer so valgrind doesn't have a breakdown
1974
1975 2005-07-29  Havoc Pennington  <hp@redhat.com>
1976
1977         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1978         (match_rule_matches): remove unused arg
1979         (test_matching): add tests for match_rule_matches()
1980
1981         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1982         do arg0='foo' arg5='bar' in the match rules
1983         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1984
1985         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1986
1987 2005-07-29  Ross Burton  <ross@openedhand.com>
1988
1989         * dbus/dbus-connection.c:
1990         Don't create a DBusCondVar which is never used.
1991
1992 2005-07-27  Ross Burton  <ross@openedhand.com>
1993
1994         * dbus/dbus-message.c:
1995         Reduce the size of the maximum cached message to 10K.
1996
1997 2005-07-25  Ross Burton  <ross@openedhand.com>
1998
1999         * glib/dbus-gproxy.c:
2000         Remove matches when all proxies are unregistered.
2001
2002 2005-07-24  Colin Walters  <walters@verbum.org>
2003
2004         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2005         typedata; recursive arrays won't have it.
2006
2007         * test/glib/test-dbus-glib.c:
2008         * test/glib/test-service-glib.c:
2009         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2010         
2011 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2012
2013         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2014         proxies.py, service.py: Cleanup of code after running it through the
2015         pyflakes code checker mostly dealing with undefined names.  
2016         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2017
2018 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2019
2020         * NEWS: Update to 0.35.2
2021
2022 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2023
2024         * python/_dbus.py: Remove import of the dbus.services
2025         module as it no longer exists (patch from Dimitur Kirov)
2026
2027         * python/service.py (Object::__init__): Fixed typo
2028         s/name/bus_name (patch from Dimitur Kirov)
2029
2030         * python/examples/example-signal-emitter.py: import dbus.glib
2031         to get the main loop and use glib mainloop instead of gtk so
2032         X doesn't have to be running.
2033
2034         * python/examples/example-signal-recipient.py: import dbus.glib
2035         to get the main loop and use glib mainloop instead of gtk so
2036         X doesn't have to be running. Import the decorators module
2037         directly.
2038
2039         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2040         didn't pick up on but are needed to build
2041
2042         * configure.in: upped version to 0.35.2
2043
2044         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2045         added Colin Walters' SELinux API rename patch from head 
2046         s/unix sercurity context/selinux security context/
2047
2048 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2049
2050         * python/Makefile.am: dbus_binding.pxd.in should be included 
2051         in EXTRA_DIST not dbus_binding.pxd
2052         fix up $(srcdir) hopefully for the last time
2053
2054         * NEWS: Update to 0.35.1
2055
2056 2005-07-16  Colin Walters  <walters@verbum.org>
2057
2058         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2059         from bus_driver_handle_get_connection_unix_security_context.  Update for
2060         error usage.
2061         (message_handlers): Update for renames.
2062
2063         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2064         _dbus_string_init failure correctly.
2065         (bus_selinux_append_context): Convert SID to context.  Append it
2066         as a byte array.
2067         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2068         hasn't been called.
2069
2070         * bus/selinux.h: Update prototype.
2071
2072         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2073         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2074
2075 2005-07-15  Colin Walters  <walters@verbum.org>
2076
2077         * doc/TODO: Add note about convenience wrappers.
2078
2079 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2080
2081         * NEWS: Update to 0.35
2082
2083 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2084
2085         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2086         so distcheck doesn't fail
2087
2088         * glib/examples/Makefile.am: Add example-service.xml and 
2089         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2090
2091         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2092         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2093
2094         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2095         compiler looks in the right places during distcheck
2096
2097 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2098
2099         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2100         to fail
2101
2102 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2103
2104         * python/examples/example-service.py,
2105         python/examples/example-signal-emitter.py: Fixed up examples
2106         for API changes
2107
2108 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2109
2110         * python/__init__.py: Upped to version (0,42,0) because of
2111         the API change
2112
2113 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2114
2115         * ChangeLog: fix date in last entry
2116
2117         * configure.in, bus/system.conf.in: add the ability to configure 
2118         the system bus user at compiletime with the --with-dbus-user flag
2119         (patch from Kristof Vansant)
2120
2121 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2122
2123         * bus/dispatch.c, test/test-service.c: Add testcase
2124         for sending messages to oneself (TODO item).
2125
2126         * python/service.py (class Object): Swap ordering of bus_name 
2127         and object_path parameters to better support inheritance.
2128
2129         * doc/dbus-tutorial.xml: change Python docs to reflect change
2130         in parameter ordering and fix the inheritance section.
2131
2132         * doc/TODO: remove sending message to oneself TODO item
2133
2134 2005-07-15  Ross Burton  <ross@openedhand.com>
2135
2136         * glib/dbus-gproxy.c:
2137         Fix a leak when calling methods via the proxy.
2138
2139 2005-07-15  Colin Walters  <walters@verbum.org>
2140
2141         * bus/selinux.c (bus_selinux_append_context): Wrap in
2142         HAVE_SELINUX.
2143
2144 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2145
2146         * python/_dbus.py (Bus::remove_signal_receiver):
2147         don't add a callback to the match if none has been passed in
2148         
2149         * python/matchrules.py (SignalMatchTree::remove): if the rule
2150         being matched does not have a callback treat it as a wildcard
2151         fix matching logic
2152
2153         * doc/dbus-tutorial.xml: Add Python tutorial
2154
2155 2005-07-14  Colin Walters  <walters@verbum.org>
2156
2157         * bus/driver.c
2158         (bus_driver_handle_get_connection_unix_security_context): New function.
2159         (message_handlers): Add.
2160
2161         * bus/selinux.c (bus_selinux_append_context): New function; appends
2162         security context to message.
2163
2164         * bus/selinux.h: Prototype.
2165
2166         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2167
2168 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2169
2170         * bus/activation.c: clean up all tabs to be 8 spaces 
2171         (bus_activation_activate_service): make sure we clean up
2172         if activation fails
2173
2174         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2175         (check_shell_fail_service_auto_start): New function
2176         tests to make sure we get fail properly when trying to auto start a service
2177         with a faulty command line
2178         (check_shell_service_success_auto_start): New function tests to make sure
2179         auto started services get the arguments on the command line
2180
2181         * test/test-shell-service.c: Added service for testing auto-starting with 
2182         command line arguments
2183
2184         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2185         test/data/valid-service-files/debug-shell-echo-success.service.in:
2186         Added service files for testing auto-starting with command line arguments
2187
2188         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2189
2190 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2191
2192         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2193         
2194         * dbus/Makefile.am: added new files to build.
2195
2196         * bus/activation.c (bus_activation_activate_service): support
2197         activation commands with parameters.
2198
2199         * test/shell-test.c: added test program for the shell parsing
2200         code.
2201
2202 2005-07-13  David Zeuthen  <davidz@redhat.com>
2203
2204         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2205         64 bit signed and unsigned parameters
2206
2207 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2208
2209         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2210
2211         * python/service.py (class Name): renamed BusName to make it clearer
2212         what the object is for (a name on the bus)
2213
2214         * python/examples/example-service.py,
2215         python/examples/example-signal-emitter.py: change the Name object to
2216         BusName
2217
2218 2005-07-12  Colin Walters  <walters@verbum.org>
2219
2220         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2221
2222         * tools/dbus-launch.c: Include sys/select.h.
2223
2224 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2225         * python/dbus_bindings.pyx.in: removed
2226
2227         * python/dbus_bindings.pyx: Added.
2228         - Fixed some memleaks (patch from 
2229         Sean Meiners <sean.meiners@linspireinc.com>)
2230         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2231         own pxd file (Pyrex definition)
2232         - Broke out glib dependancies into its own pyx module
2233         
2234         * python/dbus_bindings.pdx: Added.
2235         - Defines C class Connection for exporting to other modules
2236
2237         * python/dbus_glib_bindings.pyx: Added.
2238         - New module to handle lowlevel dbus-glib mainloop integration
2239
2240         * python/glib.py: Added.
2241         - Registers the glib mainloop when you import this module
2242
2243         * python/services.py: Removed (renamed to service.py)
2244         
2245         * python/service.py: Added.
2246         - (class Server): renamed Name
2247
2248         * python/__init__.py: Bump ro version (0,41,0)
2249         -don't import the decorators or service module
2250         by default.  These now reside in the dbus.service namespace
2251
2252         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2253         setup function on creation 
2254
2255         * python/examples/example-service.py,
2256         python/examples/example-signal-emitter.py: update examples
2257
2258         * python/examples/gconf-proxy-service.py,
2259         python/examples/gconf-proxy-service2.py: TODO fix these up
2260
2261         * doc/TODO: Addition
2262         - Added a Python Bindings 1.0 section
2263         - added "Add match on args or match on details to match rules"
2264
2265
2266 2005-07-12  Colin Walters  <walters@verbum.org>
2267
2268         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2269         (statemachine-glue.h): 
2270         * glib/examples/Makefile.am (example-service-glue.h) 
2271         (example-signal-emitter-glue.h): 
2272         * glib/Makefile.am (dbus-glib-error-switch.h): 
2273         Add libtool --mode=execute so we use the built library instead
2274         of any installed one.
2275
2276 2005-07-11  Colin Walters  <walters@verbum.org>
2277
2278         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2279         (dbus_g_value_types_init): Remove assertion.
2280         (dbus_g_value_get_g_type, dbus_g_value_open)
2281         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2282         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2283         functions related to DBusGValue.  Now we marshal/demarshal
2284         structures as GValueArray.
2285         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2286         structures.
2287         (signature_iter_to_g_type_array): Don't call
2288         signature_iter_to_g_type_struct.
2289         (signature_iter_to_g_type_struct): Delete.
2290         (dbus_gvalue_to_signature): Delete.
2291         (dbus_gvalue_to_signature): New function with same name as other
2292         one; we can convert structures to signatures.
2293         (demarshal_valuearray): New function.
2294         (get_type_demarshaller): Use it.
2295         (demarshal_recurse): Delete.
2296         (marshal_proxy): New function.
2297         (marshal_map): Warn if we can't determine signature from type.
2298         (marshal_collection_ptrarray): Ditto.
2299         (marshal_collection_array): Ditto.
2300         (get_type_marshaller): Use marshal_valuearray.
2301         (marshal_recurse): Delete.
2302         (_dbus_gvalue_test): Add some tests.
2303
2304         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2305         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2306         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2307         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2308         (dbus_g_value_free): Remove prototypes.
2309
2310         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2311         G_TYPE_VALUE_ARRAY.
2312
2313         * glib/examples/example-service.c:
2314         * glib/examples/example-client.c: Implement GetTuple.
2315
2316         * test/glib/test-dbus-glib.c:
2317         * test/glib/test-service-glib.c:
2318         * test/glib/test-service-glib.xml: Add structure tests.
2319
2320 2005-07-10  Colin Walters  <walters@verbum.org>
2321
2322         * doc/TODO: Knock off some GLib items with this patch.
2323
2324         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2325         (_dbus_gvalue_signals_error): New functions.
2326
2327         * glib/dbus-gvalue-utils.h: Prototype them.
2328
2329         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2330         and change to not output const/retval flags for input args.  All
2331         callers updated.
2332         (invoke_object_method): Refactor to handle return values.  Add
2333         some more comments in various places.  Remove debug g_print.
2334
2335         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2336
2337         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2338         Handle G_TYPE_NONE.
2339         (compute_gsignature): New function; refactored from code from
2340         compute_marshaller and compute_marshaller_name.  Enhance to
2341         handle return values and async ops more cleanly.  Update for
2342         async ops returning NONE instead of BOOLEAN.
2343         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2344         and output appropriate string.
2345         (generate_glue): Handle return value annotation.  Also don't dump
2346         constness flag for input arguments.
2347
2348         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2349         files shared between installed library and utilities.
2350         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2351         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2352         binding tool can access gtype utility functions.
2353
2354         * test/glib/test-service-glib.c: 
2355         * test/glib/test-service-glib.xml: 
2356         * test/glib/test-dbus-glib.c: Add some tests for return values.
2357
2358 2005-07-09  Colin Walters  <walters@verbum.org>
2359
2360         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2361         argument if available, not method.
2362
2363         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2364         (invoke_object_method): First, remove some redundant
2365         GValues (object_value, error_value) in favor of working on
2366         array directly.  Second, rework constness to be less buggy.
2367         Now we iterate directly over the argument metadata instead
2368         of parallel iterating over output signature and metadata.
2369
2370         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2371
2372         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2373         annotation on input args.
2374         
2375 2005-07-09  Colin Walters  <walters@verbum.org>
2376
2377         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2378         Define.
2379
2380         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2381         annotation.
2382
2383         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2384         (method_dir_signature_from_object_info): Handle arg_iterate change.
2385         (write_interface): Ditto.
2386         (lookup_object_info): Don't barf if format_version is > 0.
2387         (invoke_object_method): Handle arg constness.
2388
2389         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2390         (arg_info_new): Create.
2391         (arg_info_unref): Destroy.
2392         (arg_info_get_annotations, arg_info_get_annotation) 
2393         (arg_info_add_annotation): New functions.
2394
2395         * glib/dbus-gidl.h: Prototype them.
2396
2397         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2398         args, disallow them in properties.
2399         (parse_annotation): Handle arg annotations.
2400
2401         * test/glib/test-service-glib.xml: 
2402         * test/glib/test-service-glib.c: Update to make some methods
2403         const.
2404
2405 2005-07-08  Colin Walters  <walters@verbum.org>
2406
2407         * test/glib/test-service-glib.xml: 
2408         * test/glib/test-service-glib.c:
2409         * test/glib/test-dbus-glib.c: Test a{sv}.
2410
2411         * glib/examples/statemachine/statemachine.c:
2412         * glib/examples/statemachine/statemachine-server.c:
2413         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2414         add progress bar, etc.
2415
2416         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2417         needed anymore due to generic array/map marshalling.
2418         (dbus_g_value_types_init): Don't register basic arrays or the
2419         string/string hash.
2420         (dbus_gtype_from_signature_iter): Don't try to recurse into
2421         variants.
2422         (dbus_gtype_to_signature): Check collection/map before type
2423         metadata.
2424         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2425         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2426         generic map creation/append functions instead of hash table
2427         specifically.
2428         (get_type_demarshaller): Handle maps.
2429         (demarshal_collection): Dispatch on collection type to either
2430         demarshal_collection_ptrarray or demarshal_collection_array.
2431         (get_type_marshaller): Handle maps.
2432         (marshal_collection): Dispatch collection type to either
2433         marshal_collection_ptrarray or marshal_collection_array.
2434         (_dbus_gvalue_test): New test.
2435
2436         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2437         (hash_free_from_gtype): Use it to free GValues.
2438         (hashtable_append): New function.
2439         (ptrarray_append): Fix prototype.
2440         (slist_append): Ditto.
2441         (_dbus_gvalue_utils_test): Extend tests.
2442
2443         * glib/dbus-gtype-specialized.c
2444         (dbus_g_type_specialized_init_append): Renamed from
2445         dbus_g_type_specialized_collection_init_append.  Remove const from
2446         value, since we steal it.
2447         (dbus_g_type_specialized_map_append): New function.
2448
2449         * glib/dbus-gtype-specialized.h: Update prototypes.
2450         Add DBusGTypeSpecializedMapAppendFunc.
2451
2452         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2453         _dbus_gvalue_test.
2454         
2455         * glib/dbus-gtest.h: Prototype it.
2456
2457 2005-07-08  Ross Burton  <ross@openedhand.com>
2458
2459         * dbus/dbus-glib.h:
2460         Add DBysGAsyncData for the async bindings.
2461
2462         * glib/dbus-binding-tool-glib.c:
2463         Re-enable the async bindings.
2464
2465         * test/glib/test-dbus-glib.c:
2466         Add a test for the generated async bindings.
2467
2468 2005-07-08  Colin Walters  <walters@verbum.org>
2469
2470         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2471         connection concept.
2472         
2473 2005-07-08  Colin Walters  <walters@verbum.org>
2474         
2475         * tools/Makefile.am: Kill of print-introspect in favor of using
2476         dbus-send --print-reply=literal.
2477
2478         * test/glib/test-service-glib.xml: 
2479         * test/glib/test-service-glib.c (my_object_get_objs): New test
2480         for "ao".
2481
2482         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2483         (main): Test GetObjs.
2484
2485         * glib/examples/statemachine/Makefile.am:
2486         * glib/examples/statemachine/sm-marshal.list:
2487         * glib/examples/statemachine/statemachine-client.c:
2488         * glib/examples/statemachine/statemachine-server.c:
2489         * glib/examples/statemachine/statemachine-server.xml:
2490         * glib/examples/statemachine/statemachine.c:
2491         * glib/examples/statemachine/statemachine.h:
2492         * glib/examples/statemachine/statemachine.xml:
2493
2494         New example.
2495
2496         * glib/examples/example-service.c (main): Move invocation
2497         of dbus_g_object_type_install_info earlier, to emphasize it
2498         should only be done once.
2499
2500         * glib/examples/example-signal-emitter.c (main): Ditto.
2501
2502         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2503
2504         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2505         (dbus_gvalue_marshal): Update prototypes.
2506
2507         * glib/dbus-gvalue.c: Update all marshalling functions to take
2508         const GValue instead of GValue.
2509         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2510         types.
2511         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2512         change.
2513         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2514         Return a newly-allocated string.
2515         (demarshal_proxy, demarshal_object_path, demarshal_object)
2516         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2517         we get the wrong types from message.
2518         (get_type_demarshaller): New function, extracted from
2519         dbus_gvalue_demarshal.
2520         (demarshal_collection): New function, demarshals generic
2521         collection.
2522         (dbus_gvalue_demarshal): Just invoke result of
2523         get_type_demarshaller.  Throw error if we don't have one.
2524         (marshal_garray_basic): Abort on OOM.
2525         (get_type_marshaller): New function, extracted from
2526         dbus_gvalue_marshal.
2527         (collection_marshal_iterator, marshal_collection): New functions;
2528         implements generic marshalling for an iteratable specialized
2529         collection.
2530         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2531
2532         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2533         G_TYPE_STRING.
2534         (ptrarray_value_from_gvalue): Ditto.
2535         (ptrarray_append, ptrarray_free): New functions.
2536         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2537         (slist_append, slist_end_append, slist_free): New functions.
2538         (dbus_g_type_specialized_builtins_init): Add append fuctions
2539         for GPtrArray and GSList.  Register GSList.
2540         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2541
2542         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2543         New.
2544         (dbus_g_type_specialized_collection_init_append)
2545         (dbus_g_type_specialized_collection_append)
2546         (dbus_g_type_specialized_collection_end_append): Prototype.
2547         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2548         end_append_func.
2549
2550         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2551         (dbus_g_type_specialized_collection_append) 
2552         (dbus_g_type_specialized_collection_end_append): New functions.
2553         (dbus_g_type_map_value_iterate): Take const GValue.
2554         (dbus_g_type_collection_value_iterate): Ditto.
2555
2556         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2557         _dbus_gvalue_utils_test.
2558         
2559         * glib/dbus-gtest.h: Prototype it.
2560
2561         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2562         using uninitialized owner_list.
2563         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2564         public API.
2565         (dbus_g_proxy_end_call_internal): Update to use error set
2566         from dbus_gvalue_demarshal instead of setting it here.
2567         (dbus_g_proxy_begin_call): Move return_if_fail here.
2568
2569         * glib/dbus-gobject.c (write_interface): Update for
2570         dbus_gtype_to_signature returning new string.
2571
2572         * configure.in: Add glib/examples/statemachine.
2573
2574 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2575
2576         * configure.in: Add a configure option, --with-console-auth-dir
2577         
2578         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2579         new setting.  Patch from Kay Sievers.
2580
2581 2005-07-06  Colin Walters  <walters@verbum.org>
2582
2583         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2584         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2585         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2586         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2587         Delete in favor of dbus_g_proxy_begin_call and
2588         dbus_g_proxy_cancel_call.
2589         (DBusGProxyCall, DBusGProxyCallNotify): New.
2590         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2591         data, and destroy function.  This replaces
2592         dbus_g_pending_call_set_notify.
2593         (dbus_g_proxy_cancel_call): Prototype.
2594         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2595
2596         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2597         pending_calls map.
2598         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2599         internal proxy for calls to the bus. Remove
2600         pending_nameowner_calls, now the internal proxy keeps track.
2601         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2602         pending_nameowner_calls.
2603         (got_name_owner_cb): Update prototype, and use
2604         dbus_g_proxy_end_call.
2605         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2606         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2607         favor of using internal proxy.
2608         (dbus_g_proxy_manager_unregister): Update to use
2609         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2610         (dbus_g_proxy_init): Initialize pending calls map.
2611         (dbus_g_proxy_constructor): New.
2612         (dbus_g_proxy_class_init): Add get/set property functions,
2613         constructor, and add NAME, PATH, and INTERFACE properties.
2614         (cancel_pending_call): New function.
2615         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2616         cancel them.
2617         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2618         (GPendingNotifyClosure): New structure.
2619         (d_pending_call_notify, d_pending_call_free): Moved here from
2620         dbus-glib.c.
2621         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2622         ordering.
2623         (manager_begin_bus_call): New internal function for talking to
2624         internal bus proxy.
2625         (dbus_g_proxy_new): Construct object using GObjet properties.
2626         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2627         Create closure of same, and insert call into map of pending calls.
2628         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2629         call.  Look up pending call in current set.  Remove it when we've
2630         completed.
2631         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2632         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2633         and destroy function directly.
2634         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2635         (dbus_g_proxy_call): Invoke with NULL callback.
2636         (dbus_g_proxy_cancel_call): New function, replaces
2637         dbus_g_pending_call_cancel.
2638
2639         * glib/dbus-gparser.c (validate_signature): Fix call to
2640         dbus_set_g_error.
2641
2642         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2643         New quark for attaching metadata to GType.
2644         (info_hash): Delete.
2645         (lookup_object_info): Look up using quark.
2646         (dbus_g_object_type_install_info): Check that a type is classed,
2647         not that it's an object.  Also just install type data using quark
2648         instead of using global hash.
2649
2650         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2651         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2652         (GPendingNotifyClosure): Delete.
2653         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2654         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2655
2656         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2657         client method generation until we can fix it...
2658         
2659         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2660         (load_from_service_thread_func): Ditto.
2661
2662         * tools/dbus-names-model.c (struct NamesModel): Hold
2663         DBusGProxyCall.
2664         (have_names_notify): Update prototype, use
2665         dbus_g_proxy_cancel_call.
2666         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2667
2668         * tools/dbus-monitor.c (filter_func): Update for print_message
2669         API change.
2670
2671         * test/glib/test-dbus-glib.c: Add more tests for async
2672         invocations.  Update many begin_call/end_call pairs to just use
2673         dbus_g_proxy_call.
2674
2675         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2676         allows us to dump print-introspect.c.
2677
2678         * tools/dbus-print-message.h (print_message): Add literal argument
2679         to print_message which is intended to allow printing arguments without
2680         metadata like "string=".
2681
2682         * tools/dbus-print-message.c (print_iter): Add literal argument.
2683         (print_message): Allow printing string messages literally.
2684
2685 2005-07-05  Colin Walters  <walters@verbum.org>
2686
2687         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2688         Remove value refcount leak, original patch from Jorn Baayen
2689         <jorn@openedhand.com>.  Also remove useless extra value in favor
2690         of prepending to value array directly.
2691
2692 2005-07-02  Colin Walters  <walters@verbum.org>
2693
2694         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2695
2696 2005-07-01  Colin Walters  <walters@verbum.org>
2697
2698         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2699         
2700         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2701         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2702         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2703         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2704
2705 2005-06-30  Colin Walters  <walters@verbum.org>
2706
2707         * test/glib/test-dbus-glib.c:
2708         * test/glib/test-service-glib.c:
2709         * test/glib/test-service-glib.xml: Update tests for new error
2710         setting bits, also add async tests (patch from Ross Burton).
2711
2712         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2713         DBUS_GLIB_THREADS_LIBS.
2714
2715         * glib/dbus-gproxy.c (get_name_owner)
2716         (dbus_g_pending_call_end_valist): Ditto.
2717
2718         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2719         domain (GQuark) to DBusGErrorInfo.  
2720         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2721         quark in error_metadata.  Take message interface as default
2722         error message interface.
2723         (gerror_to_dbus_error_message): Pass message interface.
2724         (dbus_set_g_error): Resurrected.
2725         (dbus_g_error_info_free): New function.
2726         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2727         of _peek to actually create the object class if it hasn't been
2728         created yet.
2729         (dbus_g_error_domain_register): New function.
2730
2731         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2732
2733         * glib/dbus-gparser.c (validate_signature): Ditto.
2734
2735         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2736         (dbus_g_error_domain_register): Prototype.
2737
2738         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2739         Update tests.
2740
2741 2005-06-29  Colin Walters  <walters@verbum.org>
2742
2743         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2744         DBUS_TYPE_G_OBJECT_PATH.
2745
2746         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2747         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2748         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2749         (dbus_g_object_path_get_g_type): New function.
2750         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2751         to DBUS_TYPE_G_OBJECT_PATH by default.
2752         (demarshal_proxy): Remove unused name variable.
2753         (demarshal_object_path, marshal_object_path): New functions.
2754         (demarshal_proxy_array, marshal_proxy_array): Delete.
2755         
2756         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2757         DBUS_TYPE_G_OBJECT_PATH to char *.
2758         (dbus_g_type_get_lookup_function): Map builtin
2759         DBUS_TYPE_G_OBJECT_PATH.
2760
2761         * test/glib/test-dbus-glib.c
2762         * test/glib/test-service-glib.c (my_object_objpath): 
2763         Adapt tests to new object path marshalling.
2764
2765 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2766
2767         * configure.in: force check for Python >= 2.4
2768
2769 2005-06-29  Colin Walters  <walters@verbum.org>
2770         
2771         Patch from Ross Burton <ross@openedhand.com>
2772         
2773         * glib/dbus-gobject.c (invoke_object_method): Unset object
2774         value in all cases, not only in async case.
2775
2776 2005-06-29  Colin Walters  <walters@verbum.org>
2777
2778         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2779         name_call for keeping track of any outgoing GetNameOwner call.
2780         Also add for_owner and associated.
2781         (struct _DBusGProxyManager): Add owner_names, which is hash table
2782         that maps a base name to a list of names it owns (that we're
2783         interested in).  Add pending_nameowner_calls which is a list of
2784         all outstanding GetNameOwner; avoids us having to iterate over
2785         every proxy.  Add unassociated_proxies which keeps track of name
2786         proxies with no associated name owner.
2787         (dbus_g_proxy_manager_unref): Destroy owner_names.
2788         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2789         name refcounts.
2790         (find_name_in_info, name_owner_foreach)
2791         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2792         (dbus_g_proxy_manager_monitor_name_owner)
2793         (dbus_g_proxy_manager_unmonitor_name_owner)
2794         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2795         New functions; they manipulate the owner_names mapping.
2796         (got_name_owner_cb): New function.
2797         (get_name_owner): New function, extracted from
2798         dbus_g_proxy_new_for_name_owner.
2799         (dbus_g_proxy_manager_register): For now we need to keep track of
2800         all NameOwnerChanged.  Also if the proxy is for a name, if we
2801         don't already know the name owner, queue a new GetNameOwner
2802         request and add it to our list of unassociated proxies.  Otherwise
2803         inc the refcount.
2804         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2805         cancel any pending GetNameOwner call, etc.
2806         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2807         the owner_names mapping to look up the current names for the
2808         signal source, and dispatch to any proxies for that name.
2809         (dbus_g_proxy_new): Initialize new members.
2810         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2811         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2812         (dbus_g_pending_call_end_valist): New function, extracted from
2813         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2814         but want to use the GLib infrastructure.  Also note how many
2815         arguments in reply were over.
2816         (dbus_g_pending_call_end): New function, just call
2817         dbus_g_pending_call_end_valist.
2818         (dbus_g_proxy_end_call_internal): Just call
2819         dbus_g_pending_call_end_valist.
2820
2821         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2822         of builtin marshaller for STRING_STRING_STRING.
2823
2824         * test/glib/test-dbus-glib.c: 
2825         * test/glib/test-service-glib.c:
2826         * test/glib/test-service-glib.xml:
2827         Extend tests to cover name proxies, destruction of owner proxies,
2828         etc.
2829         
2830         * glib/examples/example-signal-recipient.c
2831         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2832         
2833         * tools/dbus-send.c (main): Print D-BUS error name in addition
2834         to message.
2835
2836 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2837
2838         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2839         cmessage_function_handler): Patch from 
2840         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2841         by using the Py_GILState_Ensure/Release to synchronize with the
2842         python runtime.
2843         
2844 2005-06-28  Ray Strode  <rstrode@redhat.com>
2845
2846         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2847         babysitter helper process on last unref, bug #2813.
2848
2849 2005-06-27  Colin Walters  <walters@verbum.org>
2850
2851         * test/glib/test-dbus-glib.c: 
2852         * test/glib/test-service-glib.c:
2853         * test/glib/test-service-glib.xml:
2854         Test hash table signal emitting.
2855
2856         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2857         types to their fundamental basis types, since this is what
2858         marshallers operate on.  Also add an entry for VOID__BOXED.
2859         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2860
2861 2005-06-26  Havoc Pennington  <hp@redhat.com>
2862
2863         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2864         from Don Park
2865
2866 2005-06-26  Colin Walters  <walters@verbum.org>
2867
2868         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2869         (dbus_g_error_set): New public function from its ashes; used by
2870         both service-side method implementation and GLib bindings
2871         internals.
2872         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2873         (_dbus_glib_test): Add some tests.
2874
2875         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2876
2877         * test/glib/test-service-glib.c (my_object_throw_error): Use
2878         dbus_g_error_set.
2879
2880         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2881         errors thrown by dbus_g_error_set.
2882
2883         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2884
2885         * glib/dbus-gparser.c (validate_signature): Ditto.
2886
2887         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2888         (dbus_g_proxy_end_call_internal): Ditto.
2889
2890         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2891         converts DBUS_ERROR_x to DBUS_GERROR_x.
2892         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2893
2894         * doc/TODO: Remove error TODO.
2895
2896         * doc/dbus-tutorial.xml: Update with documentation about error
2897         handling.
2898
2899         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2900         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2901         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2902
2903 2005-06-22  Colin Walters  <walters@verbum.org>
2904         
2905         Patch from Ross Burton <ross@openedhand.com>
2906
2907         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2908
2909 2005-06-20  Colin Walters  <walters@verbum.org>
2910
2911         * configure.in: Add glib/examples.
2912
2913         * glib/Makefile.am: Add examples/
2914
2915         * glib/examples/.cvsignore
2916         * glib/examples/Makefile.am
2917         * glib/examples/example-client.c
2918         * glib/examples/example-service.c
2919         * glib/examples/example-service.xml
2920         * glib/examples/example-signal-emitter.c
2921         * glib/examples/example-signal-emitter.xml
2922         * glib/examples/example-signal-recipient.c:
2923         New files; GLib binding examples, ported from
2924         python/examples.
2925
2926 2005-06-20  Colin Walters  <walters@verbum.org>
2927
2928         * dbus/dbus-glib.h: 
2929         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2930         dbus_g_proxy_call.
2931
2932         * glib/dbus-binding-tool-glib.c: 
2933         * doc/dbus-tutorial.xml: 
2934         * test/glib/test-dbus-glib.c: Update for rename.
2935         
2936 2005-06-20  Colin Walters  <walters@verbum.org>
2937
2938         Patch suggested by Ross Burton <ross@openedhand.com>
2939
2940         * glib/dbus-gobject.c (export_signals): Free signal name.
2941         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2942         memory leak.  Add a bit of documentation.
2943         (dbus_g_method_return_error): Free context, and note we do
2944         so.
2945
2946 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2947
2948         * dbus/dbus-glib.h:
2949         * glib/dbus-gobject.c:
2950         * glib/dbus-gproxy.c:
2951         * glib/dbus-gvalue.c: Predeclare structs as 
2952         typedef struct _Something Something instead of 
2953         typedef struct Something Something, so we can 
2954         redeclare the prototypes. Other GNOME libraries 
2955         do this already.
2956
2957 2005-06-17  Colin Walters  <walters@verbum.org>
2958
2959         * tools/dbus-names-model.c (have_names_notify): Fix call
2960         to dbus_g_proxy_end_call.
2961         
2962 2005-06-17  Colin Walters  <walters@verbum.org>
2963
2964         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2965         spew warnings if we get malformed remote signals.
2966
2967         * glib/dbus-gobject.c (propsig_iterate): New function.
2968         (lookup_object_info): New function, extracted from
2969         lookup_object_and_method.
2970         (introspect_properties, introspect_signals): Delete; these
2971         are merged into write_interface.
2972         (write_interface): Write out signals and properties here;
2973         dump the org.gtk.object stuff and use the interface given
2974         in the introspection data blob.  Also fix up property XML.
2975         (lookup_values): New function.
2976         (introspect_interfaces): Gather a mapping from interface to a
2977         list of its methods, signals, and properties, then write out
2978         each interface.
2979         (lookup_object_and_method): Use lookup_object_info.
2980         (struct DBusGSignalClosure): Add interface.
2981         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2982         we can just use the constant data.
2983         (dbus_g_signal_closure_finalize): Don't free signal name.
2984         (signal_emitter_marshaller): Use interface from signal closure.
2985         (export_signals): Only export signals mentioned in introspection
2986         blob.
2987         (dbus_g_connection_register_g_object): Warn if we have no
2988         introspection data for an object.
2989         (funcsig_equal): Remove unused variable.
2990         (dbus_g_object_register_marshaller): Take varargs instead of
2991         list.
2992         (dbus_g_object_register_marshaller_array): New function,
2993         extracted from old dbus_g_object_register_marshaller.
2994
2995         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2996         signals and property data.
2997         (write_quoted_string): New function, extracted from generate_glue.
2998         (generate_glue): Write signals and properties to introspection
2999         blob.
3000
3001         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3002         exported_signals and exported_properties.
3003         (dbus_g_object_register_marshaller): Update prototype.
3004         (dbus_g_object_register_marshaller_array): Prototype.
3005         
3006         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3007
3008         * test/glib/test-service-glib.c: Add new test signals and method
3009         to emit them.
3010
3011         * test/glib/test-service-glib.xml: Add some test signals.
3012
3013         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3014         and my-object-marshal.h
3015         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3016         my-object-marshal.c.
3017         (my-object-marshal.c, my-object-marshal.h): Implement.
3018
3019         * test/glib/.cvsignore: Update.
3020
3021         * doc/TODO: Remove two GLib TODO items fixed by this
3022         patch.
3023
3024 2005-06-16  Colin Walters  <walters@verbum.org>
3025
3026         * doc/TODO: Update for GLib bindings.
3027         
3028 2005-06-16  Colin Walters  <walters@verbum.org>
3029
3030         * glib/dbus-binding-tool-glib.c:
3031         * glib/dbus-gobject.c:
3032         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3033         from Ross Burton, for his GLib bindings work.
3034
3035 2005-06-16  Colin Walters  <walters@verbum.org>
3036
3037         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3038         to iterate instead of walking to G_TYPE_INVALID.
3039
3040         Patch based on a patch from Ryan Gammon.
3041
3042 2005-06-16  Colin Walters  <walters@verbum.org>
3043
3044         * bus/bus.c (bus_context_new): Set parser to NULL
3045         after we unref it (Patch from Chris Boscolo, #2174).
3046         
3047 2005-06-16  Colin Walters  <walters@verbum.org>
3048
3049         * python/dbus_bindings.pyx.in: Import size_t,
3050         __int64_t, __uint64_t, and __signed.
3051
3052         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3053         Define cmsg struct, output it.
3054         (_dbus_read_credentials_unix_socket):
3055         Use cmsg struct.
3056         
3057         Patch from Joe Markus Clarke for FreeBSD support.
3058         
3059 2005-06-16  Colin Walters  <walters@verbum.org>
3060
3061         * tools/dbus-send.c (append_array): Use strtok.
3062         (append_dict): New function.
3063         (type_from_name): New function, extracted from main.
3064         (main): Handle sending dicts.
3065
3066         * tools/dbus-print-message.c (print_iter): Print dict
3067         entries.
3068         
3069 2005-06-16  Colin Walters  <walters@verbum.org>
3070
3071         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3072         values as the empty string (#2948).
3073         
3074 2005-06-16  Colin Walters  <walters@verbum.org>
3075
3076         * dbus/Makefile.am:
3077         * mono/doc/Makefile.am:
3078         * test/glib/Makefile.am:
3079
3080         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3081
3082 2005-06-16  Colin Walters  <walters@verbum.org>
3083
3084         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3085         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3086
3087         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3088         Increment pointer after swapping fixed array.  Add assertion
3089         for array length.
3090                 
3091 2005-06-15  Colin Walters  <walters@verbum.org>
3092
3093         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3094         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3095         
3096 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3097
3098         * NEWS: Update to 0.34
3099
3100 2005-06-15  David Zeuthen  <davidz@redhat.com>
3101
3102         * configure.in (LT_CURRENT): Revert back to 1 as the library
3103         hasn't changed and we've certainly not committed to protocol
3104         stability yet.  All this does is to break ABI. See commit note
3105         from hp@redhat.com 2005-05-05 for details.
3106         
3107 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3108
3109         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3110         (_dbus_connection_run_builtin_filters): New method
3111         (dbus_connection_dispatch): Run the builtin filters which in turn
3112         runs the peer filter which handles Ping messages.
3113
3114         * doc/TODO: 
3115          - Ping isn't handled: This patch fixes it
3116          
3117          - Add a test case for the Ping message: added TODO item
3118
3119 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3120
3121         * dbus/dbus-message.c:
3122         (dbus_message_has_path): New method
3123         (dbus_message_has_interface): New method
3124         (dbus_message_has_member): New method
3125
3126         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3127         New method
3128
3129         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3130         the keyring directory is private to the user
3131
3132         * doc/TODO:
3133          - The convenience functions in dbus-bus.h should perhaps have
3134          the signatures that they would have if they were autogenerated
3135          stubs. e.g. the acquire service function. We should also evaluate
3136          which of these functions to include, in light of the fact that
3137          GLib/Qt native stubs will probably also exist.: Punted
3138
3139          - add dbus_message_has_path(), maybe has_member/interface:
3140          fixed in this patch
3141
3142          - in dbus-keyring.c, enforce that the keyring dir is not
3143          world readable/writable: Fixed in this patch
3144
3145 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3146
3147         * dbus/dbus-marshal-validate.h: Added a new validation
3148         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3149         out of memory errors when validating signitures
3150
3151         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3152         in places where we previously used DBUS_VALID and a FALSE return 
3153         value to indicate OOM
3154         
3155         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3156         Use a stack to track the number of elements inside containers.  The 
3157         stack values are then used to validate that dict entries have only two
3158         elements within them.
3159         (validate_body_helper): check the reason for failure when validating
3160         varients
3161         
3162         * dbus/dbus-message.c (load_message): use 
3163         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3164         DBUS_VALID and a FALSE return value to indicate OOM
3165
3166         * doc/TODO: remove "- validate dict entry number of fields" as this
3167         patch fixes it
3168
3169 2005-06-14  David Zeuthen  <davidz@redhat.com>
3170
3171         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3172         watches (if applicable) and add new watches
3173
3174         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3175         (main): Setup SIGIO signal handler if using D_NOTIFY
3176
3177         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3178
3179         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3180         (merge_included): Also merge conf_dirs list
3181         (bus_config_parser_unref): Clear conf_dirs list
3182         (include_dir): Add directory to conf_dirs list
3183         (bus_config_parser_get_conf_dirs): New function
3184
3185         * bus/dir-watch.[ch]: New files
3186
3187         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3188
3189         * configure.in: Add checks for D_NOTIFY on Linux
3190
3191 2005-06-14  Colin Walters  <walters@verbum.org>
3192
3193         * glib/dbus-binding-tool-glib.c:
3194         * glib/dbus-gobject.c:
3195         * glib/dbus-gvalue.c: Fix indentation and brace style.
3196         
3197 2005-06-14  Ross Burton <ross@openedhand.com>.
3198
3199         * glib/dbus-glib.h: Make DBusGMethodInvocation
3200         a private structure.  Rearrange prototypes a bit.
3201         
3202         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3203         documentation for first_arg_type.
3204         
3205         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3206         here, add documentation.  Move dbus_g_method_return
3207         and dbus_g_method_return_error into public API
3208         section.
3209
3210 2005-06-14  Colin Walters  <walters@verbum.org>
3211
3212         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3213         Add missing return statements, noticed by Ross Burton.
3214         
3215 2005-06-13  Ross Burton <ross@openedhand.com>.
3216
3217         * glib/dbus-gobject.c: Handle errors on message
3218         demarshalling by sending error message back.
3219         * glib/dbus-gvalue.c: Initialize return variables.
3220
3221 2005-06-13  Colin Walters  <walters@verbum.org>
3222
3223         * glib/Makefile.am: Fix thinko in last patch.
3224
3225 2005-06-13  Colin Walters  <walters@verbum.org>
3226
3227         * glib/Makefile.am: Move dbus-gtype-specialized.c
3228         and dbus-gtype-specialized.h into a _HEADERS variable,
3229         install them.
3230
3231 2005-06-12  Colin Walters  <walters@verbum.org>
3232
3233         Async signals and various bugfixes and testing by
3234         Ross Burton <ross@openedhand.com>.
3235
3236         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3237         (dbus_gvalue_genmarshal_name_from_type)
3238         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3239         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3240         (dbus_g_value_types_init, dbus_gtype_from_signature)
3241         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3242         (dbus_gtypes_from_arg_signature): New function prototypes.
3243         (dbus_gvalue_demarshal): Take context and error arguments.
3244         (dbus_gvalue_demarshal_variant): New function.
3245         (dbus_gvalue_demarshal_message): New function.
3246         (dbus_gvalue_store): Delete.
3247
3248         * glib/dbus-gvalue.c:
3249
3250         File has been almost entirely rewritten; now we special-case
3251         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3252         hash tables correctly, etc.  Full support for recursive values
3253         is not yet complete.
3254
3255         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3256         argument of signal to G_TYPE_POINTER since we now pass a
3257         structure.
3258         (lookup_g_marshaller): Delete in favor of
3259         _dbus_gobject_lookup_marshaller.
3260         (marshal_dbus_message_to_g_marshaller): Use
3261         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3262         to handle remote signal callbacks.
3263         (dbus_g_proxy_new_from_proxy): New function; creates a new
3264         DBusGProxy by copying an existing one.
3265         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3266         (dbus_g_proxy_get_path): New functions.
3267         (dbus_g_proxy_marshal_args_to_message): New function;
3268         factored out of existing code.
3269         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3270         from a varargs array.
3271         (dbus_g_proxy_begin_call_internal): New function.
3272         (dbus_g_proxy_end_call_internal): New function.
3273         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3274         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3275         after collecting args into value array.
3276         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3277         invoke dbus_g_proxy_end_call_internal.
3278         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3279         end_call_internal.
3280         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3281         types.
3282         (array_free_all): New function.
3283         (dbus_g_proxy_add_signal): Take GTypes.
3284
3285         * glib/dbus-gobject.h:
3286         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3287         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3288         Prototype.
3289
3290         * glib/dbus-gobject.c: Add a global marshal_table hash which
3291         stores mappings from type signatures to marshallers.  Change lots
3292         of invocations of dbus_gtype_to_dbus_type to
3293         dbus_gtype_to_signature.
3294         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3295         (introspect_signals): Fix test for query.return_type.
3296         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3297         (invoke_object_method): Many changes.  Handle asynchronous
3298         invocations.  Convert arguments with
3299         dbus_gvalue_demarshal_message.  Handle errors.  Use
3300         DBusSignatureIter instead of strlen on args. Handle all arguments
3301         generically.  Special-case variants.
3302         (dbus_g_method_return, dbus_g_method_return_error): New function.
3303         (DBusGSignalClosure): New structure, closes over signal
3304         information.
3305         (dbus_g_signal_closure_new): New function.
3306         (dbus_g_signal_closure_finalize): New function.
3307         (signal_emitter_marshaller): New function; is special marshaller
3308         which emits signals on bus.
3309         (export_signals): New function; introspects object signals and
3310         connects to them.
3311         (dbus_g_object_type_install_info): Take GType instead of
3312         GObjectClass.
3313         (dbus_g_connection_register_g_object): Invoke export_signals.
3314         (dbus_g_connection_lookup_g_object): New function.
3315         (DBusGFuncSignature) New structure; used for mapping type
3316         signatures to marshallers.
3317         (funcsig_hash): New function; hashes DBusGFuncSignature.
3318         (funcsig_equal): New function; compares DBusGFuncSignature.
3319         (_dbus_gobject_lookup_marshaller): New function.
3320         (dbus_g_object_register_marshaller): New function; used to
3321         register a marshaller at runtime for a particular signature.
3322
3323         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3324
3325         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3326         which notes a server method implementation should be
3327         asynchronous.
3328
3329         * glib/dbus-binding-tool-glib.c
3330         (dbus_binding_tool_output_glib_server): Call
3331         dbus_g_value_types_init.
3332         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3333         variants specially.
3334         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3335         of a lookup function.
3336         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3337         (write_untyped_out_args): New method; write output arguments.
3338         (write_formal_declarations_for_direction): Function for
3339         writing prototypes.
3340         (write_formal_parameters_for_direction): Function for
3341         writing implementations.
3342         (write_typed_args_for_direction): Function for writing
3343         arguments prefixed with GTypes.
3344         (write_async_method_client): Write out async version
3345         of method.
3346
3347         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3348         (dbus_g_type_get_marshal_name): Move mapping from GType
3349         to marshal name into here.
3350         (dbus_g_type_get_c_name): Move into here.
3351         (compute_marshaller): Convert signature to type with
3352         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3353         (compute_marshaller_name): Ditto.
3354         (compute_marshaller): Handle async signal annotations.
3355         (gather_marshallers): Return if we don't have a known
3356         prefix.
3357         (generate_glue): Collect introspection blob here, and
3358         write all of the blob at the end.  This allows an object
3359         with multiple interfaces to work.
3360         Mark async methods in introspection blob.
3361
3362         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3363         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3364         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3365
3366         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3367         avoids people accidentally using DBUS_TYPE_* which should
3368         not be necessary anymore.
3369         Do include dbus-gtype-specialized.h, which are utilities
3370         for GLib container types.
3371         Add various #defines for types such as
3372         DBUS_TYPE_G_BOOLEAN_ARRAY.
3373         (DBusGValueIterator, DBusGValue): Define, not fully used
3374         yet.
3375         (dbus_g_value_get_g_type): Type for recursive value.
3376         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3377         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3378         (dbus_g_value_free): Prototypes.
3379         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3380         (dbus_g_proxy_set_interface): Prototype.
3381         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3382         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3383         types.
3384         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3385         Accessors.
3386         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3387         doing async invocations.
3388         (dbus_g_method_return, dbus_g_method_return_error):
3389         Prototypes.
3390         * doc/dbus-tutorial.xml: Update GLib section.
3391         
3392         * tools/dbus-viewer.c (load_child_nodes): Update
3393         for new invocation type of dbus_g_proxy_end_call.
3394         (load_from_service_thread_func): Ditto.
3395
3396         * tools/print-introspect.c (main): Ditto.
3397
3398         * tools/dbus-names-model.c (have_names_notify)
3399         (names_model_reload, names_model_set_connection)
3400         Use GTypes.
3401
3402         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3403         needed since Python bindings use GLib bindings.
3404
3405         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3406         Add --prefix argument.
3407
3408         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3409         unneeded --ignore-unsupported arg.
3410         
3411         * test/glib/test-service-glib.c: 
3412         * test/glib/test-service-glib.xml:
3413         * test/glib/test-dbus-glib.c: Add many more tests.
3414
3415 2005-06-06  David Zeuthen  <davidz@redhat.com>
3416
3417         * doc/TODO: Add item about need to remove deprecated functions.
3418
3419         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3420
3421         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3422         to repair the ABI which was broken with the last commit.
3423
3424 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3425
3426         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3427         (dbus_connection_disconnect): renamed to dbus_connection_close 
3428         for API symmetry with dbus_connection_open
3429         (_dbus_connection_open_internal): 
3430         s/dbus_connection_disconnect/dbus_connection_close
3431
3432         * dbus/dbus-bus.c (dbus_bus_get):
3433         s/dbus_connection_disconnect/dbus_connection_close
3434
3435         * bus/connection.c (bus_connections_unref, 
3436         bus_connections_setup_connection, bus_connections_expire_incomplete):
3437         s/dbus_connection_disconnect/dbus_connection_close
3438
3439         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3440         kill_client_connection_unchecked, check_hello_connection):
3441         s/dbus_connection_disconnect/dbus_connection_close
3442
3443         * bus/bus.c (new_connection_callback):
3444         s/dbus_connection_disconnect/dbus_connection_close
3445
3446         * tools/dbus-send.c (main):
3447         s/dbus_connection_disconnect/dbus_connection_close
3448
3449         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3450         s/dbus_connection_disconnect/dbus_connection_close
3451         
3452         * test/test-service.c (path_message_func, filter_func):
3453         s/dbus_connection_disconnect/dbus_connection_close
3454         
3455         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3456         
3457 2005-05-25  Colin Walters  <walters@verbum.org>
3458
3459         * dbus/dbus-protocol.h: Move various bus service #defines such
3460           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3461           dbus/dbus-shared.h.
3462         * dbus/dbus-shared.h: Various defines moved here.
3463         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3464
3465 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3466
3467         * python/__init__.py: Python bindings deserve a minor version
3468         update.  Upped to (0, 40, 2)
3469
3470 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3471
3472         * python/decorators.py: add explicitly_pass_message decorator
3473         for passing in the dbus message as keyword for edge case signal
3474         handling
3475
3476         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3477         to conform with what dbus expects for match rules
3478         (SignalMatchRule.execute): add the dbus message as a keyword
3479         if the signal handler has requested it
3480
3481         * python/examples/example/signal-recipient.py: added some more
3482         examples on how to hook up to signals
3483
3484 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3485
3486         * python/decorators.py: import dbus_bindings
3487
3488         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3489         SignalMatchNode): new classes that implement wildcard signal
3490         callback matching using a tree lookup. Heavily modified from a
3491         patch sent by Celso Pinto (fd.o bug #3241)
3492
3493         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3494         use new match classes to handle signals.
3495
3496 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3497         
3498         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3499
3500 2005-05-18  Havoc Pennington  <hp@redhat.com>
3501
3502         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3503         gettext. Not really worth requiring yet perhaps, but any
3504         production quality 1.0 would require it so we should go ahead and
3505         get things set up. We do have a couple token calls to
3506         bindtextdomain in the code already.
3507
3508 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3509
3510         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3511         when using recursive g_main_loops
3512
3513         * python/_dbus.py (class Bus): add the ProxyObjectClass
3514         alias for ProxyObject to make it easier for the Twisted 
3515         networking framework to integrate dbus.
3516
3517         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3518         alias for ProxyMethod to make it easier for the Twisted 
3519         networking framework to integrate dbus. 
3520
3521 2005-05-11  Ross Burton  <ross@openedhand.com>
3522
3523         * glib/dbus-glib-tool.c: Add --prefix argument.
3524         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3525         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3526         Add prefix argument.
3527         (generate_glue): Pass prefix argument down.
3528         (dbus_binding_tool_output_glib_server): Pass prefix to
3529         glib-genmarshal.
3530         
3531 2005-05-11  Colin Walters  <walters@verbum.org>
3532
3533         * tools/dbus-send.c (append_array): New function.
3534         (append_arg): Broken out from main.
3535         (main): Add cheesy hack to send arrays and variants.
3536         (usage): Update.
3537         * tools/dbus-print-message.c (print_iter): Broken out
3538         from main.
3539
3540 2005-05-11  Colin Walters  <walters@verbum.org>
3541
3542         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3543         New function, returns signature string for signature iter.
3544         * dbus/dbus-signature.h: Prototype it.
3545         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3546         New function, returns signature string for message iter.
3547         (dbus_message_iter_get_array_len): New function, returns
3548         length of array.
3549         (dbus_message_iter_get_fixed_array): Fix assertion; this
3550         function should be used when the iter is pointing to the
3551         contents of an array
3552         * dbus/dbus-message.h: Prototypes.
3553         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3554         New function; returns length of an array.
3555         * dbus/dbus-marshal-recursive.h: Prototype it.
3556         
3557 2005-05-11  Colin Walters  <walters@verbum.org>
3558
3559         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3560         compilation error.
3561         
3562 2005-05-08  Havoc Pennington  <hp@redhat.com>
3563
3564         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3565         daemon's pid, not the parent's pid, to the file descriptor.
3566         Reported by Taj Morton.
3567
3568 2005-05-05  Havoc Pennington  <hp@redhat.com>
3569
3570         * configure.in (LT_*): add notes on how the libtool versioning
3571         works to save thinking. Increment soname to indicate protocol
3572         breakage (though really the library interface hasn't changed I
3573         guess)
3574
3575         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3576         verify the GUID received from server matches what we were
3577         expecting, if we had an expectation
3578
3579         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3580         (_dbus_auth_get_guid_from_server): new function
3581         (send_begin): parse the OK args
3582
3583         * doc/dbus-specification.xml: add GUID to the auth protocol
3584
3585 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3586
3587         * Fix my name in previous changelog ;)
3588
3589         * python/proxies.py (ProxyObject.__getattr__): add further patch
3590         from Anthony Baxter to throw an AttributeError when python 
3591         __special__ functions are called instead of marshling them over 
3592         the bus (Bug#1685 comment 3).
3593
3594 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3595
3596         * python/Makefile.am: changed to use pyexecdir for the binding
3597         shared libraries (Bug#2494)
3598
3599         * python/exceptions.py: bring exceptions over from the bindings
3600         so they can be used in applications (Bug#2036)
3601         Make all exceptions derive from DBusException
3602
3603         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3604         of classes so that print obj doesn't throw an exception (Bug #1685)
3605
3606 2005-05-03  Ross Burton  <ross@openedhand.com>
3607
3608         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3609         Return if we get an error during registration.  Set up a
3610         weak reference on object to unregister if object is destroyed.
3611         (unregister_gobject): New function.
3612         
3613 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3614
3615         * python/dbus_bindings.pyx.in: 
3616         - added new type classes for hinting to the marashaler what type 
3617         to send over the wire
3618         - added int16 and uint16 marshalers
3619         - Fixed a bug in the type constants that caused int32 to go out
3620         as uint16 over the wire
3621         * python/dbus.py: split up into different files and renamed _dbus.py
3622         * python/__init__.py, python/_util.py, python/decorators.py, 
3623         python/exceptions.py, python/proxies.py, python/services.py,
3624         python/types.py: new files split off from dbus.py
3625         * python/Makefile.am: Add new files, remove dbus.py and 
3626         install all python files to <python module dir>/dbus
3627         * python/examples/*: Added #!/usr/bin/env python to the top of
3628         every example.  Patch provided by Tatavarty Kalyan
3629
3630 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3631
3632         * NEWS: Update to 0.33
3633
3634 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3635
3636         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3637         method for doing async calls
3638         (_pending_call_notification): New C function for handling pendning call
3639         callbacks
3640         (set_notify): New method for setting pending call notification
3641         
3642         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3643         Async capabilities added to remote method calls
3644         (Sender): class removed
3645         (RemoteService): class removed
3646         (ObjectTree): class removed for now
3647         (RemoteObject): Renamed to ProxyObject
3648         (RemoteMethod): Renamed to ProxyMethod
3649         (method): Decorator added for decorating python methods as dbus methods
3650         (signal): Decorator added for decorating python methods as signal emitters
3651         (ObjectType): Metaclass added for generating introspection data and the
3652         method callback vtable
3653         (Interface): Wrapper class added to wrap objects in a dbus interface
3654         (Object): Uses ObjectType as its metaclass and exports Introspect
3655         of the org.freedesktop.DBus.Introspectable interface
3656         (ValidationException, UnknownMethodException): new exceptions
3657
3658         * python/examples/*: Modified to fit with the new bindings
3659
3660 2005-04-23  Havoc Pennington  <hp@redhat.com>
3661
3662         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3663         reported by Tony Houghton
3664
3665         * test/test-service.c (main): test
3666         dbus_connection_get_object_path_data()
3667
3668         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3669         the exact_match
3670         (_dbus_object_tree_get_user_data_unlocked): new function used by
3671         dbus_connection_get_object_path_data()
3672         (do_register): add assertion test for get_user_data_unlocked
3673         (object_tree_test_iteration): more tests
3674
3675         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3676         new function from Dan Reed to let you get the user data from 
3677         dbus_connection_register_object_path()
3678
3679 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3680
3681         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3682         in numerous places that did not account for the NULL terminator
3683         (signature_from_seed): changed the manual string copy loop to 
3684         just use strcpy instead
3685         make check should now pass
3686
3687 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3688
3689         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3690         so that it allows messages that are not signals to pass in 
3691         NULL as the interface.
3692
3693 2005-04-18  David Zeuthen  <davidz@redhat.com>
3694
3695         * glib/dbus-gmain.c (io_handler_destroy_source): 
3696         (timeout_handler_destroy_source, connection_setup_free): 
3697         Also unref the source to avoid memory leaks.
3698
3699 2005-04-13  David Zeuthen  <davidz@redhat.com>
3700
3701         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3702         more reasonable, yet still totally arbitrary, value :-). 
3703
3704 2005-04-13  David Zeuthen  <davidz@redhat.com>
3705
3706         * doc/TODO: Added an "important for 1.0" item about selinux
3707         allow/deny messages
3708
3709 2005-04-13  David Zeuthen  <davidz@redhat.com>
3710
3711         * bus/selinux.c: Add c-file-style to top of file
3712         (log_audit_callback): Don't free the data here anymore
3713         (bus_selinux_check): Don't take spid and tpid since appending
3714         that to auxdata may OOM.
3715         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3716         to the caller if we are OOM by taking an error object.
3717         (bus_selinux_allows_send): -do-
3718
3719         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3720         and bus_selinux_allows_send
3721
3722         * bus/bus.c (bus_context_check_security_policy): Pass error and
3723         pass on OOM thrown by bus_selinux_allows_send()
3724
3725         * bus/services.c (bus_registry_acquire_service): Pass error and
3726         pass on OOM thrown by bus_selinux_allows_acquire_service()
3727
3728 2005-04-13  Havoc Pennington  <hp@redhat.com>
3729
3730         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3731         message at a time to avoid monopolizing the main loop, bug 
3732         #2953 from Benjamin Otte
3733
3734 2005-04-09  Havoc Pennington  <hp@redhat.com>
3735
3736         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3737         possible overlap, fix from Daniel Reed
3738         (fixup_alignment): fix signedness warnings
3739         (_dbus_string_append_unichar): ditto
3740
3741 2005-04-09  Havoc Pennington  <hp@redhat.com>
3742
3743         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3744
3745         * glib/dbus-glib-tool.c (main): fix warning
3746
3747         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3748
3749         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3750         add a new function that can be used in simple applications that
3751         don't have a main loop and are willing to block
3752
3753 2005-04-05  David Zeuthen  <davidz@redhat.com>
3754
3755         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3756
3757         * glib/dbus-gmain.c:
3758         (io_handler_destroy_source): Remove from list of IO handlers
3759         of the ConnectionSetup object
3760         (timeout_handler_destroy_source): -do- for timeout handlers
3761         (io_handler_source_finalized): Don't remove from list since
3762         we now do that in io_handler_destroy_source(). Renamed from
3763         io_handler_source_destroyed
3764         (timeout_handler_source_destroyed): -do- for timeout handlers
3765         (connection_setup_free): It is now safe to iterate over all
3766         IO and timeout handlers as the _destroy_source removes them
3767         from the list synchronously
3768
3769 2005-03-30  Havoc Pennington  <hp@redhat.com>
3770
3771         * configure.in: change check to gtk 2.4
3772
3773         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3774         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3775         to 2.4
3776
3777 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3778
3779         * News: Update 0.32
3780
3781         * HACKING: Fixed realease instructions.  configure.in should be updated to
3782           the next release by the person who made the last release.
3783
3784 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3785
3786         * python/lvalue_cast_post_process.py - removed.  Patch has been
3787           submitted to Pyrex maintainers that fixes gcc4.0 errors
3788
3789         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3790
3791 2005-03-24  Daniel Reed  <n@ml.org>
3792
3793         * tools/Makefile.am: Make print-introspect and
3794         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3795
3796 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3797
3798         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3799
3800         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3801           had in Red Hat packages for a while but for some reason never 
3802           got merged upstream
3803           (_dbus_is_a_number): New checks if a string
3804           can be converted to a number and does the conversion if it can
3805           (_dbus_user_database_lookup): Add check to see if the given username
3806           is a udi.  This allows udi's to be used instead of usernames in the
3807           config file.
3808           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3809           is a gdi.  This allows gdi's to be used instead of groupnames in the
3810           config file.
3811
3812 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3813
3814         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3815           code so that it compiles with gcc4.0
3816
3817         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3818           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3819           results back to dbus_binding.c
3820
3821 2005-03-20  Colin Walters  <walters@verbum.org>
3822
3823         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3824
3825         * configure.in: Require GTK+ 2.6.
3826         
3827 2005-03-20  Colin Walters  <walters@verbum.org>
3828
3829         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3830
3831 2005-03-17  Tom Parker  <palfrey@tevp.net>
3832
3833         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3834         print DBUS_UID_UNSET; instead print passed username.  Also
3835         be sure to actually use gid looked up in cache.
3836         
3837         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3838         for DBUS_GID_UNSET and groupname.
3839
3840 2005-03-17  Colin Walters  <walters@verbum.org>
3841
3842         * bus/print-introspect.c: Move to tools/.
3843         * bus/run-with-tmp-session-bus.sh: Ditto.
3844         
3845         * glib/Makefile.am (dbus-glib-bindings.h): Move
3846         generation to tools/Makefile.am.
3847
3848         * test/glib/run-test.sh: Update to handle move
3849         of run-with-tmp-session-bus.sh.
3850
3851         * test/glib/test-service-glib.c: Update to handle
3852         move of dbus-glib-bindings.h.
3853
3854         * tools/print-introspect.c: Moved here
3855         from bus/, and ported to GLib bindings.
3856
3857         * tools/run-with-tmp-session-bus.sh: Moved here
3858         from bus/.
3859
3860         * tools/Makefile.am: Generate dbus-glib-bindings.h
3861         and dbus-bus-introspect.xml here.
3862
3863         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3864         Update.
3865
3866 2005-03-17  Colin Walters  <walters@verbum.org>
3867
3868         * bus/driver.c (write_args_for_direction): Use
3869         _dbus_string_get_const_data to retrieve string;
3870         _dbus_string_get_const_data_len doesn't actually return
3871         a NULL-terminated substring.
3872
3873         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3874         (main): Change to use org_freedesktop_DBus_request_name
3875         instead of using g_proxy_begin_call/end_call.
3876
3877 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3878
3879         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3880         generating the finalizer.  Fixes from Ben Maurer.
3881
3882 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3883
3884         * mono/BusDriver.cs: Update method names: ListServices
3885         becomes ListNames; GetOwner becomes GetNameOwner.
3886
3887         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3888         onto the eval stack when removing the delegate.
3889
3890 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3891
3892         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3893         LT_CURRENT.  Set it to the autoconf variable.
3894                                                                                 
3895         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3896         classes that disconnects the signal handler delegate from the
3897         service object.  Fixes a big leak of proxy objects on the
3898         client side of things.  Patch from Ben Maurer
3899         <bmaurer@ximian.com>
3900
3901 2005-03-12  Colin Walters  <walters@verbum.org>
3902
3903         * bus/driver.c (write_args_for_direction): New function,
3904         parses a type signature into arguments and outputs to
3905         XML.
3906         (bus_driver_handle_introspect): Use it instead of
3907         hardcoding XML for certain signatures.
3908         
3909         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3910         dependency on dbus-daemon.
3911
3912         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3913         argument, pass it to dbus_binding_tool_output_glib_client.
3914
3915         * glib/dbus-binding-tool-glib.c
3916         (generate_client_glue): Protect against multiple inclusion.
3917         (dbus_binding_tool_output_glib_client): Add
3918         G_BEGIN_DECLS/G_END_DECLS.
3919
3920         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3921         Change to just take iface prefix directly.
3922         (write_formal_parameters): Clarify error message.
3923         (check_supported_parameters): New function; checks to see type
3924         signatures of method parameters are supported.
3925         (generate_client_glue): Handle ignore_unsupported flag.
3926         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3927         parameter.
3928
3929         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3930         --ignore-unsupported by default until glib bindings
3931         support arrays.
3932
3933 2005-03-11  Colin Walters  <walters@verbum.org>
3934
3935         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3936         install it.
3937
3938         * bus/print-introspect.c: New file; prints introspection
3939         data for a given name and object path.
3940
3941         * bus/run-with-tmp-session-bus.sh: New file, refactored
3942         from test/glib/run-test.sh.  Creates a temporary session
3943         bus and runs another program.
3944
3945         * test/glib/run-test.sh: Refactor to invoke
3946         run-with-tmp-session-bus.sh.
3947
3948         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3949         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3950         macros instead of hardcoding.
3951
3952         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3953
3954 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3955
3956         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3957         this unref; it doesn't match up evenly in some codepaths.
3958         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3959         this evenly matches with the ref near the top of this function.
3960
3961 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3962
3963         * dbus/dbus-object-tree.c
3964         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3965         and we try to unregister a path that's not registered, still go
3966         through the process of unlocking and don't just return.
3967
3968 2005-03-09  Colin Walters  <walters@verbum.org>
3969
3970         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3971         to this are generated for client-side wrappers.  Invokes a
3972         D-BUS method and returns reply values.  
3973
3974         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3975         function; writes signature string for argument direction.
3976         (write_args_for_direction): Change to pass input values directly
3977         instead of via address, and fix indentation.
3978         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3979         make generated wrappers inlineable.
3980
3981         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3982         note about using dbus_type_is_fixed.
3983
3984         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3985         dbus/dbus-signature.c as dbus_type_is_fixed.
3986
3987         All callers updated.
3988
3989         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3990         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3991
3992         * dbus/dbus-signature.h: Prototype.
3993
3994         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3995         error printf code.
3996
3997         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3998         appropriate instead of just freeing it.
3999         (main): Free returned strings using g_free.
4000
4001         * test/glib/Makefile.am (test-service-glib-glue.h)
4002         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4003
4004         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4005         simply maps a simple D-BUS type to GType.
4006         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4007         GType.
4008         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4009         initialize the value with it.
4010         (dbus_gvalue_binding_type_from_type): Unused, delete.
4011         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4012         various types instead of unmarshalling to value data directly.
4013         Remove can_convert boolean.
4014         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4015         returning directly instead of using can_convert boolean.
4016         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4017         Stores a GValue in a pointer to a value of its corresponding C
4018         type.
4019
4020         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4021         add dbus_gvalue_store.
4022
4023 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4024
4025         Fix a bunch of lifecycle and memory management problems
4026         in the mono bindings.
4027
4028         * mono/Arguments.cs (Arguments): Implement IDisposable
4029
4030         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4031         strictly a static class.
4032
4033         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4034         delegates into this file.
4035         (Connection): Implement IDisposable.
4036         (Dispose): Disconnect the connection and set the raw connection
4037         pointer to IntPtr.Zero.
4038         (~Connection): Call Dispose().
4039         (RegisterObjectPath): Added.  Manages the registration of object
4040         paths so we can cleanly disconnect them at dispose/finalize time.
4041         (UnregisterObjectPath): Ditto.
4042         (set_RawConnection): Unregister all of the object paths when
4043         changing the underlying DBusConnection.  Add them back onto the
4044         new connection, if any.
4045
4046         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4047         more unmanaged resources anymore, so it's not necessary.  Move all
4048         the DBusObjectPathVTable stuff out of here.
4049         (Handler): Save references to our delegates so that they don't get
4050         finalized.  Call Connection.RegisterObjectPath() instead of
4051         dbus_connection_register_object_path() directly.
4052         (Message_Called): Dispose the message after we're finished with
4053         it.
4054
4055         * mono/Message.cs (Message): Implement IDisposable.
4056         (Dispose): Dispose the Arguments, and set the RawMessage to
4057         IntPtr.Zero.
4058         (SendWithReplyAndBlock): We own the ref to the reply that comes
4059         back from dbus_connection_send_with_reply_and_block() so add a
4060         comment about that and unref it after we've constructed a managed
4061         MethodReturn class around it.  Fixes a big, big leak.
4062
4063         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4064         method.
4065         (BuildSignalHandler): After we've sent the Signal message, dispose
4066         of it.
4067         (BuildMethod): Dispose of the method call and reply messages after
4068         we've sent the message and extracted the data we want from the
4069         reply.
4070
4071         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4072         anymore.
4073         (Service_FilterCalled): Dispose of the message after we're
4074         finished with it.
4075
4076 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4077
4078         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4079         After we attach our pending call to the connection, unref
4080         it.  Fixes a leak.
4081  
4082         * mono/Connection.cs (set_RawConnection): Disconnect our
4083         filter and match callbacks from the old connection and
4084         reconnect them to the new connection, if any.
4085
4086         * mono/DBusType/Array.cs: "Code" is a static member, so
4087         don't use "this" to refer to it.  Fix for stricter checking
4088         in Mono 1.1.4.
4089  
4090         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4091         object path that we pass into unmanaged code.
4092  
4093         * mono/DBusType/String.cs (Append): Don't leak the string
4094         that we pass into unmanged code.
4095
4096 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4097         * NEWS: Update for 0.31
4098
4099         * configure.in: Release 0.31
4100         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4101
4102         * qt/Makefile.am: fixed build
4103
4104         * dbus/Makefile.am: soname bump for libdbus
4105
4106         * glib/Makefile.am: soname bump for libdbus-glib
4107
4108 2005-03-05  Havoc Pennington  <hp@redhat.com>
4109
4110         * dbus/dbus-sysdeps.c:
4111         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4112         value
4113         (_dbus_generate_random_bytes_buffer): fix return value
4114
4115         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4116         checks actually work, from Tom Parker <fdo@tevp.net>
4117
4118 2005-03-01  Colin Walters  <walters@verbum.org>
4119
4120         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4121         functions copied from dbus-glib-tool.c.
4122         (main): Convert lots of error code to use them.
4123         Also add some testing for introspection bits.
4124
4125 2005-03-01  Colin Walters  <walters@verbum.org>
4126         
4127         * doc/TODO: Remove introspection signature TODO.
4128
4129 2005-02-27  Colin Walters  <walters@verbum.org>
4130
4131         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4132         Change return value to const char * instead of int so we can do
4133         full signatures.
4134         (struct PropertyInfo, struct ArgInfo): Store char *.
4135         (property_info_new, arg_info_new): Update parameters, strdup.
4136         (property_info_unref, arg_info_unref): Free.
4137
4138         * glib/dbus-gidl.h: Update prototypes.
4139
4140         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4141         (validate_signature): New function, just validates signature and
4142         sets GError.
4143         (parse_property, parse_arg): Invoke validate_signature.  Store
4144         signature instead of just type code.
4145
4146         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4147         function to return a primary type for a signature, dropping
4148         information about types in container types.
4149         (dbus_gvalue_genmarshal_name_from_type)
4150         (dbus_gvalue_binding_type_from_type)
4151         (dbus_gvalue_ctype_from_type): Update to take full signature
4152          instead of type code.
4153         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4154
4155         * glib/dbus-gvalue.h: Update prototypes for above.
4156
4157         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4158         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4159         (introspect_properties, introspect_signals, write_interface):
4160         Update to handle signatures, and remove usage of
4161         _dbus_gutils_type_to_string.
4162         (handle_introspect): Print out type codes instead of e.g. "string"
4163         in hardcoded introspection XML; also use x_AS_STRING constants
4164         instead of hardcoding in string.
4165
4166         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4167         to string.  Remove usage of _dbus_gutils_type_to_string.
4168
4169         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4170
4171         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4172         deletion.
4173         
4174         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4175         (compute_marshaller_name, generate_glue): Handle signature change
4176         to string.
4177         (write_formal_parameters, write_args_for_direction): Ditto, and
4178         remove FIXME.
4179
4180         * tools/dbus-tree-view.c (type_to_string): Delete.
4181         (info_set_func_text): Update to print full signatures.
4182
4183         * test/glib/test-service-glib.xml: Change types to new
4184         introspection format.
4185
4186 2005-02-26  Havoc Pennington  <hp@redhat.com>
4187
4188         * doc/TODO: remove the "guid" item
4189
4190         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4191         (with_bus_thread_func): use open_private
4192
4193         * dbus/dbus-connection.c (dbus_connection_open_private): new
4194         function that works like the old dbus_connection_open()
4195         (dbus_connection_open): now returns an existing connection if
4196         possible
4197
4198         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4199         through the GUID to the transport
4200
4201         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4202         GUID in hex-encoded form.
4203
4204         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4205         pass GUID argument in to the transport
4206
4207         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4208         guid argument
4209
4210         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4211
4212         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4213
4214 2005-02-25  Havoc Pennington  <hp@redhat.com>
4215
4216         * doc/dbus-specification.xml: document the GUID thing
4217
4218         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4219         globally unique ID for the server, and put a "guid=hexencoded"
4220         field in the address
4221
4222         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4223
4224         * dbus/dbus-message.c: ditto
4225
4226         * dbus/dbus-dataslot.c: ditto
4227
4228         * dbus/dbus-list.c: ditto
4229
4230         * dbus/dbus-internals.h: wait, just include
4231         dbus-threads-internal.h here
4232         
4233         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4234         use in main library
4235
4236         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4237
4238 2005-02-24  Colin Walters  <walters@verbum.org>
4239
4240         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4241
4242 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4243
4244         * glib/Makefile.am: added dbus-gobject.h to sources list
4245         so distcheck doesn't fail
4246         
4247 2005-02-24  Havoc Pennington  <hp@redhat.com>
4248
4249         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4250         you must disconnect before unref, since locking and other things
4251         are screwed up otherwise. Fix assorted other locking stuff.
4252
4253         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4254         fix compilation
4255
4256         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4257         into a private header and don't export from the library
4258
4259         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4260
4261 2005-02-24  Colin Walters  <walters@verbum.org>
4262         
4263         * dbus/dbus-signature.c: New file; implements various functions
4264         related to type signatures.  Includes an interator for parsing,
4265         validation functions.
4266         (dbus_type_is_basic): Moved here from
4267         dbus-marshal-basic.c:_dbus_type_is_basic.
4268         (dbus_type_is_container): Moved here from
4269         dbus-marshal-basic.c:_dbus_type_is_container.
4270
4271         All callers of _dbus_type_is_container and _dbus_type_is_basic
4272         updated, and include dbus-signature.h.
4273
4274         * dbus/dbus-signature.h: New file; prototypes for the above.
4275
4276         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4277         dbus-signature.h.
4278
4279         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4280         function factored out of _dbus_first_type_in_signature.
4281         (_dbus_first_type_in_signature_c_str): New function; returns first
4282         type code for a type signature character.
4283
4284         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4285         handle function moves.
4286
4287         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4288
4289         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4290         function; skips to next complete type in type signature.
4291         Implemented using previous skip_one_complete_type.  Now
4292         skip_one_complete_type just delegates to
4293         _dbus_type_signature_next.
4294
4295         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4296         to dbus-signature.c
4297         (_dbus_type_is_container): Ditto.
4298
4299         * doc/dbus-specification.xml: Update introspection sample to
4300         use real type signatures.
4301
4302         * dbus/dbus-test.h: Prototype signature test.
4303
4304         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4305         signature tests.
4306
4307         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4308
4309 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4310
4311         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4312         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4313
4314 2005-02-21  Colin Walters  <walters@verbum.org>
4315
4316         * dbus/dbus-test-main.c (main): Take optional specific test
4317         argument.
4318
4319         * dbus/dbus-test.c (run_test): New function, runs a test function
4320         with no data directory.
4321         (run_data_test): Like above, but takes data directory.
4322         (dbus_internal_do_not_use_run_tests): Take
4323         specific test argument.  Replace lots of cut n' paste code
4324         with run_test and run_data_test.
4325
4326         * dbus/dbus-test.h: Update prototype for
4327         dbus_internal_do_not_use_run_tests.
4328
4329 2005-02-20  Havoc Pennington  <hp@redhat.com>
4330
4331         Fix bugs reported by Daniel P. Berrange
4332         
4333         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4334         (protected_change_watch): new function
4335         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4336         (_dbus_server_add_watch): change to work like the
4337         dbus-connection.c equivalents; like those, probably kind of
4338         busted, but should at least mostly work for now
4339         (dbus_server_disconnect): drop the lock if we were already
4340         disconnected, patch from Daniel P. Berrange
4341
4342         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4343         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4344         same stuff
4345
4346         * doc/TODO: todo about unscrewing this mess
4347
4348 2005-02-19  Colin Walters  <walters@verbum.org>
4349
4350         * glib/dbus-binding-tool-glib.c
4351         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4352
4353         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4354         as errno.h and sys/stat.h.
4355         (lose): New function, prints error with
4356         newline and exits.
4357         (lose_gerror): Similar, but takes GError for message.
4358         (main): Add --output argument to specify output file to write to,
4359         instead of always printing to stdout.  In this mode, determine
4360         timestamps on source files to see whether any are newer than the
4361         target file.  If not, exit.  Also convert a number of error
4362         messages to use lose (since it's shorter), and switch to using
4363         g_io_channel_shutdown.
4364
4365 2005-02-19  Havoc Pennington  <hp@redhat.com>
4366
4367         * glib/dbus-gobject.c
4368         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4369
4370         * glib/dbus-glib.c: fix doxygen warnings
4371
4372         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4373         is found on an <arg>
4374
4375 2005-02-17  Colin Walters  <walters@verbum.org>
4376
4377         * glib/dbus-gobject.h: Don't export
4378         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4379         
4380         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4381         (invoke_object_method): Handle it.
4382
4383         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4384         Handle rename.
4385         
4386 2005-02-17  Colin Walters  <walters@verbum.org>
4387
4388         * bus/.cvsignore, doc/.cvsignore
4389         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4390         Update.
4391
4392 2005-02-17  Colin Walters  <walters@verbum.org>
4393         
4394         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4395         Rename to DBUS_SERVICE_DBUS.
4396         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4397         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4398         Change the value from "org.freedesktop.Local"
4399         to "org.freedesktop.DBus.Local".
4400         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4401         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4402         DBUS_INTERFACE_INTROSPECTABLE.
4403         Change the value from "org.freedesktop.Introspectable"
4404         to "org.freedesktop.DBus.Introspectable".
4405         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4406         DBUS_INTERFACE_PROPERTIES.
4407         Change the value from "org.freedesktop.Properties"
4408         to "org.freedesktop.DBus.Properties".
4409         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4410         DBUS_INTERFACE_PEER.
4411         Change the value from "org.freedesktop.Peer"
4412         to "org.freedesktop.DBus.Peer".
4413         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4414         DBUS_INTERFACE_LOCAL.
4415         Change the value from "org.freedesktop.Local"
4416         to "org.freedesktop.DBus.Local".
4417
4418         All other users of those constants have been changed.
4419
4420         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4421
4422         * glib/dbus-gobject.c (handle_introspect): Use constants.
4423
4424         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4425
4426 2005-02-17  Colin Walters  <walters@verbum.org>
4427
4428         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4429         (parse_node, parse_interface, parse_method, parse_signal)
4430         (parse_property, parse_annotation): Lose if we're currently in an
4431         annotation.
4432         (parse_annotation): New function.
4433         (parser_start_element, parser_end_element): Handle annotation.
4434         (parse_method, parse_interface): Remove support for c_name attribute,
4435         switch to annotations.
4436
4437         * glib/dbus-gidl.h (interface_info_get_binding_names)
4438         (method_info_get_binding_names)
4439         (interface_info_get_binding_name, method_info_get_binding_name)
4440         (interface_info_set_binding_name, method_info_set_binding_name):
4441         Remove.
4442         (interface_info_get_annotations, method_info_get_annotations)
4443         (interface_info_get_annotation, method_info_get_annotation)
4444         (interface_info_add_annotation, method_info_add_annotation):
4445         Prototype.
4446
4447         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4448         for "bindings".
4449         (struct MethodInfo): Ditto.
4450         Straightfoward conversion of binding methods into annotation methods
4451         as prototyped.
4452
4453         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4454
4455         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4456
4457         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4458         Use new annotation API.
4459
4460         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4461         annotation element.
4462         
4463         * doc/dbus-specification.xml: Discuss introspection annotations,
4464         include list of well-known annotations.
4465
4466         * test/glib/test-service-glib.xml: Make validate against new DTD.
4467
4468 2005-02-17  Colin Walters  <walters@verbum.org>
4469
4470         This patch is based on initial work from
4471         Paul Kuliniewicz <kuliniew@purdue.edu>.
4472
4473         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4474         initialization of GValue from dbus type to here.
4475         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4476         for the "glib-genmarshal" program from a DBus type.
4477         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4478         into the C name for it we use in the glib bindings.
4479         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4480         glib C type (not GValue).
4481         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4482
4483         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4484         from dbus-gobject.c.
4485
4486         * glib/dbus-gutils.h: Prototype it.
4487
4488         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4489         (marshal_dbus_message_to_g_marshaller): Use new shared function
4490         dbus_glib_marshal_dbus_message_to_gvalue_array.
4491
4492         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4493         Will be changed once we have annotations.
4494
4495         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4496         GStaticRWLock.  Callers updated.
4497         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4498         (string_table_next): New function for iterating over zero-terminated
4499         string value array.
4500         (string_table_lookup): New function; retrieves specific entry in
4501         array.
4502         (get_method_data): New function; look up method data in object data chunk.
4503         (object_error_domain_prefix_from_object_info)
4504         (object_error_code_from_object_info): New functions, but not implemented yet.
4505         (method_interface_from_object_info): New function; retrieve interface name.
4506         (method_name_from_object_info): New function; retrieve method name.
4507         (method_arg_info_from_object_info): New function; retrieve argument data.
4508         (arg_iterate): New function; iterates over serialized argument data.
4509         (method_dir_signature_from_object_info): New function; returns a
4510         GString holding type signature for arguments for just one
4511         direction (input or output).
4512         (method_input_signature_from_object_info)
4513         (method_output_signature_from_object_info): New functions.
4514         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4515         converts dbus message arguments into a GValue array.  Used for both
4516         signal handling and method invocation.
4517         (struct DBusGlibWriteIterfaceData): New utility structure.
4518         (write_interface): New function; generate introspection XML for
4519         an interface.
4520         (introspect_interfaces): New function; gathers all interface->methods,
4521         generates introspection XML for them.
4522         (handle_introspect): Invoke introspect_interfaces.
4523         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4524         (lookup_object_and_method): New function; examines an incoming message
4525         and attempts to match it up (via interface, method name, and argument
4526         signature) with a known object and method.
4527         (gerror_domaincode_to_dbus_error_name): New function; converts a
4528         GError domain and code into a DBus error name.  Needs GError data
4529         added to object introspection to work well.
4530         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4531         GError.
4532         (invoke_object_method): New function to invoke an object method
4533         looked up via lookup_object_and_method.  Parses the incoming
4534         message, turns it into a GValue array, then invokes the marshaller
4535         specified in the DBusGMethodInfo.  Creates a new message with
4536         either return values or error message as appropriate.
4537         (gobject_message_function): Invoke lookup_object_and_method and
4538         invoke_object_method.
4539
4540         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4541         (enum DBusBindingOutputMode): New enum for binding output modes.
4542         (pretty_print): Print binding names.
4543         (dbus_binding_tool_error_quark): GError bits.
4544         (version): Fix typo.
4545         (main): Create GIOChannel for output.  Parse new --mode argument,
4546         possible values are "pretty-print", "glib-server", "glib-client".
4547         Use mode to invoke appropriate function.
4548         
4549         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4550
4551         * glib/dbus-glib-tool.h: New header, just includes GError bits
4552         for now.
4553
4554         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4555         maps binding style to name.
4556         (struct MethodInfo): Ditto.
4557         (get_hash_keys, get_hash_key): Utility function, returns keys for
4558         a GHashTable.
4559         (interface_info_new, method_info_new): Initialize bindings.
4560         (interface_info_unref, method_info_unref): Destroy bindings.
4561         (method_info_get_binding_names, method_info_get_binding_name)
4562         (interface_info_get_binding_names, interface_info_get_binding_name):
4563         Functions for retrieving binding names.
4564         (method_info_set_binding_name, interface_info_set_binding_name):
4565         Functions for setting binding names.
4566
4567         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4568         for glib binding generation.
4569
4570         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4571         and client-side glib glue generation.
4572
4573         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4574         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4575         dbus-glib-tool.h.
4576
4577         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4578         of using GClosureMarshal directly.
4579         (struct DBusGObjectInfo): Add n_infos member.
4580
4581         * test/glib/test-service-glib.xml: New file; contains introspection data
4582         for MyTestObject used in test-service-glib.c.
4583
4584         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4585         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4586         (my_object_uppercase, my_object_many_args): New test methods.
4587         (main): Use dbus_g_object_class_install_info to include generated object
4588         info.
4589
4590         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4591         as well as client-side bindings.
4592
4593         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4594         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4595         using both the dbus_gproxy stuff directly as well as the generated bindings.
4596
4597 2005-02-15  Havoc Pennington  <hp@redhat.com>
4598
4599         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4600         complete a pending call, don't run filters first.
4601
4602         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4603         dbus_pending_call_steal_reply
4604
4605         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4606         _dbus_connection_block_pending_call
4607         (dbus_pending_call_get_reply): change to steal_reply and return a
4608         ref
4609
4610         * dbus/dbus-connection.c
4611         (dbus_connection_send_with_reply_and_block): port to work in terms
4612         of DBusPendingCall
4613         (_dbus_connection_block_pending_call): replace block_for_reply
4614         with this
4615
4616 2005-02-14  Havoc Pennington  <hp@redhat.com>
4617
4618         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4619         properly handle looking up group information by name; fix 
4620         from j@bootlab.org
4621
4622 2005-02-13  Havoc Pennington  <hp@redhat.com>
4623
4624         * dbus/dbus-connection.c (dbus_connection_return_message) 
4625         (dbus_connection_borrow_message): hold dispatch lock while message
4626         is outstanding
4627         (_dbus_connection_block_for_reply): hold dispatch lock while we
4628         block for the reply, so nobody steals our reply
4629         (dbus_connection_pop_message): hold the dispatch lock while we
4630         pluck the message
4631
4632 2005-02-13  Havoc Pennington  <hp@redhat.com>
4633
4634         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4635         (_dbus_connection_release_dispatch)
4636         (_dbus_connection_acquire_io_path)
4637         (_dbus_connection_release_io_path): make the mutex and condvar
4638         control access to the "acquired" flag. Drop the connection lock
4639         while waiting on the condvar. Hopefully these are baby steps in
4640         roughly the right direction.
4641
4642 2005-02-13  Havoc Pennington  <hp@redhat.com>
4643
4644         * dbus/dbus-connection.c: use separate mutexes for the condition
4645         variables; this is some kind of baseline for sanity, but the
4646         condition variables still aren't used correctly afaict
4647
4648 2005-02-13  Havoc Pennington  <hp@redhat.com>
4649
4650         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4651         fix a double-unlock
4652
4653         * dbus/dbus-connection.c
4654         (_dbus_connection_detach_pending_call_unlocked): add this
4655
4656         Initial semi-correct pass through to fix thread locking; there are
4657         still some issues with the condition variable paths I'm pretty
4658         sure
4659         
4660         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4661         lock/unlock calls
4662
4663         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4664         rename to add _unlocked
4665         (struct DBusConnection): move "dispatch_acquired" and
4666         "io_path_acquired" to use only one bit each.
4667         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4668         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4669         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4670         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4671         (_dbus_connection_remove_timeout) 
4672         (_dbus_connection_toggle_timeout): drop lock when calling out to
4673         user functions; done in a hacky/bad way.
4674         (_dbus_connection_send_and_unlock): add a missing unlock
4675         (_dbus_connection_block_for_reply): add a missing unlock
4676
4677         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4678         drop lock in a hacky probably unsafe way to call out to user
4679         function
4680
4681 2005-02-12  Havoc Pennington  <hp@redhat.com>
4682
4683         * tools/dbus-tree-view.c (info_set_func_text): display more
4684         details on args
4685
4686         * bus/driver.c (bus_driver_handle_list_services): list the bus
4687         driver
4688
4689         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4690
4691         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4692         (method_info_get_n_args): new function
4693
4694 2005-02-12  Havoc Pennington  <hp@redhat.com>
4695
4696         * bus/driver.c (bus_driver_handle_introspect): add introspection
4697         for bus driver
4698
4699 2005-02-12  Havoc Pennington  <hp@redhat.com>
4700
4701         * bus/driver.c: put the signature of each bus driver method in the
4702         table of handlers and check it on incoming calls; this isn't
4703         really useful, but going to add introspect support in a minute.
4704
4705 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4706
4707         * mono/Connection.cs: The unpredictability of finalizers in mono
4708         prevents us from deterministically disconnecting the filters from
4709         the Service class's finalizer, so move tracking of filters and
4710         matches here.  Add API for that.
4711
4712         * mono/Service.cs: Remove the code, add code which calls the
4713         methods now on the Connection class.
4714
4715 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4716
4717         * python/dbus.py (class Sender): added to support dbus signals better
4718         (Bus::add_signal_receiver): added expand_args parameter which defaults
4719         to True.  When expand args is True the signal handler will pass the 
4720         message arguments as parameters to the signal handler.  If False
4721         revert to previous behavior where the signal handler must get the
4722         argument list from the message.  This is to help port applications
4723         like HAL that have a tendancy to send variable length argument lists.
4724         self._match_rule_to_receivers is now a dict of dicts.
4725         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4726         removing it from a list
4727         (Bus::_signal_func): change signal handlers so that interface,
4728         signal_name, service, path and message are packed into a Sender
4729         object and that is passed to the handler.  If expand_args is True
4730         extract the args list from the message and append it to the parameter
4731         list
4732         
4733         * python/dbus_bindings.pyx.in (class Signature): added to support 
4734         signiature types
4735         (MessageIter::__init__): changed iteration limit to match D-BUS
4736         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4737         STRUCT and VARIENT type support
4738         (MessageIter::python_value_to_dbus_sig): made recursive to support
4739         recursive types
4740         (MessageIter::append*): added Signature, dict, tuple 
4741         support
4742
4743         * python/examples/example-client.py: added examples of getting tuples
4744         and dicts
4745
4746         * python/examples/example-service.py: added examples of sending tuples
4747         and dicts
4748
4749         * python/examples/example-signal-recipient.py: Fixed to handle new
4750         signal callback format
4751
4752 2005-02-10  Havoc Pennington  <hp@redhat.com>
4753
4754         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4755         (call dbus_g_proxy_add_signal)
4756
4757         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4758         escape the hostname
4759         (_dbus_server_new_for_domain_socket): escape the path
4760
4761         * dbus/dbus-address.c (dbus_address_escape_value): new
4762         (dbus_address_unescape_value): new
4763         (dbus_parse_address): unescape values
4764
4765         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4766
4767         * doc/dbus-specification.xml: explain how to escape values in
4768         addresses
4769
4770 2005-02-10  Havoc Pennington  <hp@redhat.com>
4771
4772         * dbus/dbus-message-factory.c (generate_special): modify test to
4773         avoid using a non-basic dict key
4774
4775         * dbus/dbus-marshal-validate-util.c: add test for the below
4776
4777         * doc/dbus-specification.xml: require that dict keys are a basic
4778         type
4779
4780         * dbus/dbus-marshal-validate.c
4781         (_dbus_validate_signature_with_reason): require that dict key is a
4782         basic type
4783
4784 2005-02-10  Havoc Pennington  <hp@redhat.com>
4785
4786         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4787         change to be _and_unlock instead of _unlocked
4788
4789         * dbus/dbus-connection.c
4790         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4791         have no_update so we can find this bug quickly in future
4792
4793 2005-02-10  Havoc Pennington  <hp@redhat.com>
4794
4795         * dbus/dbus-message-util.c (verify_test_message): tests for string
4796         array
4797
4798         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4799         support for arrays of string/signature/path
4800
4801 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4802
4803         * dbus/dbus-connection.c
4804         (_dbus_connection_queue_received_message_link,
4805         _dbus_connection_message_sent): Add the path to
4806         the verbose output.
4807         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4808         _dbus_connection_send_preallocated_unlocked(), updated the
4809         dispatch status, and unlocks.  Fixes a bug where certain
4810         situations (like a broken pipe) could cause a Disconnect message
4811         to not be sent, tricking the bus into thinking a service was still
4812         there when the process had quit.
4813         (_dbus_connection_send_preallocated): Call
4814         _dbus_connection_send_preallocated_and_unlock().
4815         (_dbus_connection_send_and_unlock): Added.  Calls
4816         _dbus_connection_send_preallocated_and_unlock().
4817         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4818         (dbus_connection_send_with_reply): Update the dispatch status and
4819         unlock.
4820
4821         * mono/Service.cs (~Service): Added.  Removes the filter so that
4822         we don't get unmanaged code calling back into a GCed delegate.
4823         (RemoveFilter); Added.
4824
4825 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4826
4827         * dbus/dbus-message.c (dbus_message_iter_open_container):
4828         - Removed check for iterator type being an array because
4829         get_arg_type does not work with writer iterators
4830         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4831
4832 2005-02-07  Havoc Pennington  <hp@redhat.com>
4833
4834         * doc/dbus-specification.xml: some more language cleanups; add
4835         stuff about how to deal with invalid protocol and extension
4836         points; add _ to allowed chars in auth commands; add EXTENSION_
4837         auth command prefix
4838
4839 2005-02-06  Havoc Pennington  <hp@redhat.com>
4840
4841         * s/expected/required/ in a couple places for clarity
4842
4843 2005-02-07  Colin Walters  <walters@verbum.org>
4844
4845         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4846         sender or proposed_recipient.
4847
4848 2005-02-06  Havoc Pennington  <hp@redhat.com>
4849
4850         * dbus/dbus-message-factory.c (generate_special): more tests
4851
4852         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4853         array length that exceeds the maximum
4854
4855 2005-02-05  Havoc Pennington  <hp@redhat.com>
4856
4857         * dbus/dbus-message-factory.c (generate_special): more test cases,
4858         increasing coverage
4859
4860         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4861         reason why a signature was invalid
4862
4863         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4864         skip the length of the string before we look at it in validation
4865
4866         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4867         equal_substring
4868
4869         * dbus/dbus-message.c (_dbus_message_loader_new): default
4870         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4871
4872 2005-02-05  Havoc Pennington  <hp@redhat.com>
4873
4874         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4875         if the signature of a variant was empty
4876         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4877         struct with no element type)
4878
4879         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4880         mangled messages to break things
4881
4882 2005-02-04  Havoc Pennington  <hp@redhat.com>
4883
4884         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4885         g_quark_try_string() so it actually can return 0
4886         (dbus_g_proxy_connect_signal): ditto
4887
4888 2005-02-04  Havoc Pennington  <hp@redhat.com>
4889
4890         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4891         bogus warning
4892         (tristring_from_message): assert cleanly on null path/interface
4893         (should not be possible though I decided later)
4894         (dbus_g_proxy_dispose): move proxy manager unregistration here
4895         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4896         g_return_if_fail() checks
4897
4898 2005-02-04  Havoc Pennington  <hp@redhat.com>
4899
4900         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4901
4902         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4903         (with some minor changes)
4904
4905         * doc/dbus-specification.xml: add deprecated attribute to
4906         introspection format
4907
4908 2005-01-31  Havoc Pennington  <hp@redhat.com>
4909
4910         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4911         think it's sort of right
4912
4913 2005-01-30  Havoc Pennington  <hp@redhat.com>
4914
4915         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4916
4917 2005-01-30  Havoc Pennington  <hp@redhat.com>
4918
4919         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4920
4921         * autogen.sh: change to autotools 1.9
4922
4923         * glib/dbus-gproxy.c: completely change how signals work
4924         (dbus_g_proxy_add_signal): new function to specify signature of a
4925         signal
4926         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4927         and g_warning if the incoming message has the wrong signature.
4928
4929 2005-01-30  Havoc Pennington  <hp@redhat.com>
4930
4931         * tools/dbus-names-model.c (have_names_notify): fix this
4932
4933         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4934         up the string array handling a bit 
4935
4936 2005-01-30  Havoc Pennington  <hp@redhat.com>
4937
4938         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4939         (dbus_g_pending_call_cancel): new function
4940
4941         * dbus/dbus-glib.h: move GType decls for connection/message here;
4942         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4943         here, just kind of rationalizing how we handle all that
4944
4945         * tools/dbus-names-model.c: new file for a tree model listing the
4946         services on a bus
4947
4948         * tools/dbus-tree-view.c (model_new): use proper typing on the
4949         model rows
4950
4951 2005-01-30  Havoc Pennington  <hp@redhat.com>
4952
4953         * glib/dbus-gmain.c: add a custom GSource back that just checks
4954         whether the message queue has anything in it; otherwise, there are 
4955         cases where we won't see messages in the queue since there was no 
4956         IO visible to the glib main loop
4957
4958         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4959         increase default message timeout to 25 seconds
4960
4961 2005-01-30  Havoc Pennington  <hp@redhat.com>
4962
4963         * test/glib/test-profile.c (no_bus_stop_server): remove the
4964         warning about the g_warning that I just fixed
4965
4966         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4967         custom source, seems to be a lot easier to understand and work
4968         better.
4969
4970 2005-01-30  Havoc Pennington  <hp@redhat.com>
4971
4972         I think this main loop thing is conceptually broken, but here are 
4973         some band aids. I'll maybe rewrite it in a minute.
4974         
4975         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4976         custom GSource, so don't pass it in; confusing
4977         (gsource_server_finalize, gsource_connection_finalize): add
4978         finalize handlers that remove all the watches.  
4979
4980 2005-01-30  Havoc Pennington  <hp@redhat.com>
4981
4982         * glib/dbus-gobject.c (introspect_properties): fix the XML
4983         generated
4984
4985         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4986         which effectively detects the use of freed messages
4987
4988         * glib/dbus-gobject.c (handle_introspect): modify and return the
4989         reply message instead of the incoming message
4990
4991         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4992         gee, maybe it should SEND THE XML instead of just making a string
4993         and freeing it again ;-)
4994
4995         * tools/dbus-print-message.c (print_message): improve printing of
4996         messages
4997
4998         * configure.in: add debug-glib.service to the output
4999
5000 2005-01-30  Havoc Pennington  <hp@redhat.com>
5001
5002         dbus-viewer introspected and displayed the bus driver
5003         
5004         * dbus/dbus-object-tree.c 
5005         (object_tree_test_iteration): add tests for a handler registered on "/"
5006
5007         * dbus/dbus-object-tree.c
5008         (_dbus_decompose_path): fix to handle path "/" properly
5009         (run_decompose_tests): add tests for path decomposition
5010         
5011         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5012         properly
5013
5014         * glib/dbus-gobject.c (handle_introspect): fix quotes
5015
5016         * test/glib/run-test.sh: support launching the bus, then running
5017         dbus-viewer
5018
5019         * test/glib/test-service-glib.c (main): put in a trivial gobject
5020         subclass and register it on the connection
5021
5022         * bus/driver.c (bus_driver_handle_introspect): implement
5023         introspection of the bus driver service
5024
5025         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5026         identifiers, doctype decl
5027
5028         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5029         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5030         returning the service unchanged.
5031         (bus_driver_handle_message): remove old check for reply_serial in
5032         method calls, now the message type deals with that
5033         (bus_driver_handle_message): handle NULL interface
5034
5035         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5036
5037         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5038         -1 for len
5039
5040         * tools/dbus-viewer.c: add support for introspecting a service on
5041         a bus
5042
5043         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5044         (dbus_g_pending_call_unref): add
5045
5046 2005-01-29  Havoc Pennington  <hp@redhat.com>
5047
5048         * tools/dbus-tree-view.c: add support for displaying properties.
5049         (run dbus-viewer with an introspect xml file as arg, then resize
5050         the window so the tree elements show up, not sure what that is)
5051
5052         * glib/dbus-gobject.c (handle_introspect): return
5053         org.freedesktop.Properties and org.freedesktop.Introspectable
5054         interfaces when we are introspected.
5055
5056         * doc/dbus-specification.xml: allow empty interface name when 
5057         Get/Set a property
5058
5059 2005-01-29  Havoc Pennington  <hp@redhat.com>
5060
5061         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5062         though it uses glib, it could be extended for any binding in
5063         principle
5064
5065         * glib/dbus-gobject.c (gobject_message_function): change to the
5066         new way properties work
5067
5068         * dbus/dbus-protocol.h: add the new interfaces
5069
5070         * doc/dbus-specification.xml: document the introspection format,
5071         Introspectable interface, and add an org.freedesktop.Properties
5072         interface.
5073
5074         * glib/dbus-gparser.c: add support for a <property> element
5075
5076         * glib/dbus-gidl.c: add PropertyInfo
5077
5078         * glib/dbus-gobject.c (handle_introspect): put the outermost
5079         <node> outside the signal and property descriptions.
5080         (introspect_properties): export properties as <property> rather
5081         than as method calls
5082
5083 2005-01-28  Havoc Pennington  <hp@redhat.com>
5084
5085         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5086         related to authentication protocol
5087
5088 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5089
5090         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5091                 - BUS_ACTIVATION -> BUS_STARTER
5092                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5093                 - class MessageIter (__init__): Added recursion checking 
5094                 so we throw a nice error instead of just disconnecting from the
5095                 bus.
5096                 (get): Added arg_type parameter for recursion.
5097                 Removed the nil type
5098                 Added signiture type placeholder (not implemented)
5099                 Added struct type placeholder (not implemented)
5100                 Added varient type placeholder (not implemented)
5101                 Commented out dict type for now     
5102                 (get_element_type): renamed from get_array_type
5103                 (get_*): changed to use the dbus_message_iter_get_basic API
5104                 (get_*_array): removed in favor of recursive get_array method
5105                 (get_array): new recursive method which calls get to marshal
5106                 the elements of the array
5107                 (value_to_dbus_sig): New method returns the corrasponding
5108                 dbus signiture to a python value
5109                 (append): Comment out dict handling for now
5110                 Handle lists with the new recursive API
5111                 Comment out None handling for now
5112                 (append_nil): removed
5113                 (append_*): changed to use dbus_message_iter_append_basic API
5114                 (append_*_array): removed in favor of recursive append_array 
5115                 method
5116                 (__str__): Make it easier to print out recursive iterators
5117                 for debugging
5118                 - class Message (__str__): moved type inspection to the
5119                 MessageIter class' __str__ method
5120                 (get_iter): Added an append parameter wich defaults to False
5121                 If True use the new API's to create an append iterator
5122
5123         * python/dbus.py: Update to use new bindings API
5124                 - TYPE_ACTIVATION -> TYPE_STARTER
5125                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5126                 - class ActivationBus -> class StarterBus
5127                 - class RemoteObject (__call__): get an append iterator
5128                 - (_dispatch_dbus_method_call): get an append iterator
5129                 - class Object (emit_signal): get an append iterator
5130
5131         * python/examples/: Fixed up the examples to work with the new API
5132                 
5133 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5134
5135         * configure.in: Bump version up to 0.30.
5136
5137         * HACKING: Add a release item to bump the version number up after 
5138         a release.
5139
5140 2005-01-28  Havoc Pennington  <hp@redhat.com>
5141
5142         * doc/dbus-specification.xml: update to describe 16-bit types and
5143         dict entries
5144
5145         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5146         assertion
5147
5148         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5149         type
5150
5151         * dbus/dbus-marshal-recursive.c: implement
5152
5153 2005-01-27  Havoc Pennington  <hp@redhat.com>
5154
5155         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5156
5157         * configure.in: find the right type for 16 and 32 bit ints as well
5158         as 64
5159
5160         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5161         the 16-bit types so people don't have to stuff them in 32-bit or
5162         byte arrays.
5163
5164 2005-01-27  Havoc Pennington  <hp@redhat.com>
5165
5166         * dbus/dbus-message.c: byteswap the message if you init an
5167         iterator to read/write from it
5168         
5169         * dbus/dbus-marshal-byteswap.c: new file implementing 
5170         _dbus_marshal_byteswap()
5171
5172         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5173
5174 2005-01-26  Havoc Pennington  <hp@redhat.com>
5175         
5176         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5177         build, apparently - nobody noticed?)
5178         
5179 2005-01-26  Havoc Pennington  <hp@redhat.com>
5180
5181         * dbus/dbus-marshal-recursive.h: remove todo comment
5182
5183 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5184
5185         * Land the mono binding changes to conform to the new APIs.
5186
5187         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5188         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5189
5190         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5191         type code as a string.
5192         (InitAppending): Rename dbus_message_append_iter_init() to
5193         dbus_message_iter_init_append().
5194
5195         * mono/BusDriver.cs: Rename ServiceEventHandler to
5196         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5197         Rename ServiceOwnerChanged to NameOwnerChanged.
5198
5199         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5200         underlying C call.
5201
5202         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5203
5204         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5205         dbus_bus_acquire_service() to dbus_bus_request_name().
5206
5207         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5208         of Type.UnderlyingSystemType to get the correct element type for
5209         the array.
5210         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5211         dbus_message_get_{element|arg}_type() instead of
5212         dbus_message_iter_init_array_iterator().
5213         (Append): Replace dbus_message_iter_append_array() with
5214         dbus_message_iter_open_container() and
5215         dbus_message_iter_close_container().
5216
5217         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5218         types have been removed.
5219         
5220         * mono/DBusType/*.cs: Replace calls of
5221         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5222         but specify the type in the DllImport extern declaration.  Ditto
5223         for dbus_message_iter_append_[type]() ->
5224         dbus_message_iter_append_basic().
5225
5226         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5227         NameOwnerChangedHandler.
5228
5229 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5230
5231         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5232                 - get_base_service -> get_unique_name
5233                 - bus_get_base_service -> bus_get_unique_name
5234                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5235                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5236                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5237                 - bus_activate_service -> bus_start_service_by_name
5238                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5239                 - bus_acquire_service -> bus_request_name
5240                 - dbus_bus_acquire_service -> dbus_bus_request_name
5241                 - bus_service_exists -> bus_name_has_owner
5242                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5243
5244         * python/dbus.py: Rename of methods
5245                 - activate_service -> start_service_by_name
5246                 - bus_acquire_service -> bus_request_name
5247                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5248                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5249
5250         
5251 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5252
5253         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5254         signature for the method that can't be found.
5255
5256         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5257         the message has any arguments, we need to call
5258         _dbus_type_reader_get_current_type(), not
5259         _dbus_type_reader_has_next().
5260
5261 2005-01-24  Havoc Pennington  <hp@redhat.com>
5262
5263         * dbus/dbus-message-factory.c: more testing of message validation
5264
5265         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5266         header
5267
5268 2005-01-23  Havoc Pennington  <hp@redhat.com>
5269
5270         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5271         get this all working, not many tests in the framework yet though
5272
5273 2005-01-22  Havoc Pennington  <hp@redhat.com>
5274
5275         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5276         tutorial, based on work from David Wheeler.
5277
5278 2005-01-21  Havoc Pennington  <hp@redhat.com>
5279
5280         * dbus/dbus-bus.c: add more return_if_fail checks
5281
5282         * dbus/dbus-message.c (load_message): have the "no validation"
5283         mode (have to edit the code to toggle the mode for now though)
5284
5285         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5286         skips all validation; I want to use this at least for benchmark
5287         baseline, I'm not sure if it should be a publicly-available switch.
5288
5289 2005-01-21  Havoc Pennington  <hp@redhat.com>
5290
5291         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5292         toplevel doxygen group as the low-level API stuff
5293
5294         * dbus/dbus.h: note that libdbus is the low-level API
5295
5296 2005-01-20  Havoc Pennington  <hp@redhat.com>
5297
5298         * update-dbus-docs.sh: script to update docs on the web site, only
5299         works for me though. neener.
5300
5301 2005-01-20  Havoc Pennington  <hp@redhat.com>
5302
5303         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5304         code can reveal bugs in it
5305
5306 2005-01-20  Havoc Pennington  <hp@redhat.com>
5307
5308         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5309         select() version, patches from Tor Lillqvist
5310
5311 2005-01-20  Havoc Pennington  <hp@redhat.com>
5312
5313         * doc/dbus-tutorial.xml: replace > with &gt;
5314
5315         * bus/services.c (bus_registry_acquire_service): validate the name
5316         and return a better error if it's no good.
5317
5318         * doc/dbus-specification.xml: note NO_AUTO_START change
5319
5320         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5321         from AUTO_START, we're toggling the default
5322
5323         * bus/dispatch.c: adapt the tests to change of auto-start default
5324
5325 2005-01-18  Havoc Pennington  <hp@redhat.com>
5326
5327         * rename dbus-daemon-1 to dbus-daemon throughout
5328
5329 2005-01-18  Havoc Pennington  <hp@redhat.com>
5330
5331         * Throughout, grand renaming to strip out the use of "service",
5332         just say "name" instead (or "bus name" when ambiguous).  Did not
5333         change the internal code of the message bus itself, only the
5334         programmer-facing API and messages.
5335         
5336         * doc/dbus-specification.xml: further update the message bus section
5337         
5338         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5339         in error case
5340
5341 2005-01-17  Havoc Pennington  <hp@redhat.com>
5342
5343         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5344         ever
5345
5346         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5347         "invalid name character" not only non-ASCII
5348
5349         * doc/dbus-specification.xml: further update spec, message bus 
5350         parts are still out-of-date but the marshaling etc. stuff is now
5351         accurate-ish
5352
5353 2005-01-17  Havoc Pennington  <hp@redhat.com>
5354
5355         * doc/dbus-specification.xml: partially update spec
5356
5357 2005-01-17  Havoc Pennington  <hp@redhat.com>
5358
5359         * Throughout, align variant bodies according to the contained
5360         type, rather than always to 8. Should save a fair bit of space in
5361         message headers.
5362         
5363         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5364         fix handling of case where p == end
5365
5366         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5367
5368 2005-01-17  Havoc Pennington  <hp@redhat.com>
5369
5370         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5371
5372         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5373         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5374         are marshaling/unmarshaling a boolean.
5375
5376 2005-01-16  Havoc Pennington  <hp@redhat.com>
5377
5378         This is about it on what can be disabled/deleted from libdbus
5379         easily, back below 150K anyhow. Deeper cuts are more work than 
5380         just turning the code off as I've done here.
5381         
5382         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5383         signed int convenience funcs
5384
5385         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5386         verbose mode
5387
5388         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5389         things out of libdbus
5390
5391         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5392         
5393         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5394         tests-enabled-only, though it should probably be deleted)
5395
5396         * dbus/dbus-message-util.c: same stuff
5397
5398         * dbus/dbus-auth-util.c: same stuff
5399
5400 2005-01-16  Havoc Pennington  <hp@redhat.com>
5401
5402         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5403
5404         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5405         way for stripping down dbus-userdb.c stuff included in libdbus.
5406         Rename _dbus_parse_uid for consistency.
5407
5408 2005-01-16  Havoc Pennington  <hp@redhat.com>
5409
5410         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5411         name the assertion failed in
5412
5413         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5414         (_dbus_return_val_if_fail): assert that the name of the function
5415         containing the check doesn't start with '_', since we only want to 
5416         use checks on public functions
5417         
5418         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5419         checks to assertions
5420
5421         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5422         change checks to asserts for private function
5423
5424         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5425         to asserts for private function
5426
5427         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5428         broken assertion that was breaking make check
5429         (_dbus_type_reader_array_is_empty): remove this rather than fix
5430         it, was only used in assertions
5431
5432 2005-01-16  Havoc Pennington  <hp@redhat.com>
5433
5434         * test/unused-code-gc.py: hacky script to find code that's used
5435         only by the bus (not libdbus) or used only by tests or not used at
5436         all. It has some false alarms, but looks like we can clean up a
5437         lot of size from libdbus.
5438
5439         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5440         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5441         
5442 2005-01-16  Havoc Pennington  <hp@redhat.com>
5443
5444         * Add and fix docs according to Doxygen warnings throughout
5445         source.
5446         
5447         * dbus/dbus-marshal-recursive.c
5448         (_dbus_type_reader_array_is_empty): change this to just call
5449         array_reader_get_array_len() and make it static
5450
5451         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5452         from get_array_type
5453         (dbus_message_iter_init_append): rename from append_iter_init
5454
5455         * dbus/dbus-marshal-recursive.c
5456         (_dbus_type_reader_get_element_type): rename from
5457         _dbus_type_reader_get_array_type
5458
5459 2005-01-15  Havoc Pennington  <hp@redhat.com>
5460
5461         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5462
5463         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5464         when DBUS_DISABLE_ASSERT
5465         (_dbus_marshal_set_basic): be sure we align for the string length
5466
5467         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5468         this look faster
5469
5470         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5471         inline macro version
5472         (_dbus_string_set_byte): provide inline macro version
5473
5474 2005-01-15  Havoc Pennington  <hp@redhat.com>
5475
5476         * Land the new message args API and type system.
5477
5478         This patch is huge, but the public API change is not 
5479         really large. The set of D-BUS types has changed somewhat, 
5480         and the arg "getters" are more geared toward language bindings;
5481         they don't make a copy, etc.
5482
5483         There are also some known issues. See these emails for details
5484         on this huge patch:
5485         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5486         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5487         
5488         * dbus/dbus-marshal-*: all the new stuff
5489
5490         * dbus/dbus-message.c: basically rewritten
5491
5492         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5493         freed blocks to be all non-nul bytes so using freed memory is less
5494         likely to work right
5495
5496         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5497         DBUS_FAIL_MALLOC=N environment variable, so you can do
5498         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5499         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5500         thorough.
5501
5502         * qt/message.cpp: port to the new message args API
5503         (operator<<): use str.utf8() rather than str.unicode()
5504         (pretty sure this is right from the Qt docs?)
5505
5506         * glib/dbus-gvalue.c: port to the new message args API
5507
5508         * bus/dispatch.c, bus/driver.c: port to the new message args API
5509
5510         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5511         "locked" flag to TRUE and align_offset to 0; I guess we never
5512         looked at these anyhow, but seems cleaner.
5513
5514         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5515         move allocation padding macro to this header; use it to implement
5516         (_DBUS_STRING_STATIC): ability to declare a static string.
5517
5518         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5519         change to return TRUE if the interface is not set.
5520
5521         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5522         to dbus-marshal-validate.[hc]
5523
5524         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5525         dbus-internals.c
5526
5527         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5528         to dbus-marshal-*.[hc]
5529
5530         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5531         function here from dbus-marshal.c
5532
5533 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5534
5535         * NEWS: Update for 0.23.
5536
5537         * configure.in: Release 0.23.
5538
5539 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5540
5541         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5542         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5543         behind.
5544
5545         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5546         uninstall"
5547
5548         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5549         is an enum, get the enum's underlying type.  Another mono
5550         1.1.3 fix.
5551
5552 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5553
5554         Patch from Sjoerd Simons <sjoerd@luon.net>
5555
5556         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5557         DESTDIR.  It breaks stuff.
5558
5559 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5560
5561         Patch from Tambet Ingo <tambet@ximian.com>
5562
5563         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5564         calling type.GetElementType().  The code previously depended on
5565         broken Mono behavior, which was fixed in Mono 1.1.3.
5566
5567         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5568         Activator.CreateInstance() so that the class's constructor is
5569         called with the right parameters.
5570
5571 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5572
5573         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5574
5575         * dbus/dbus-connection.c
5576         (_dbus_connection_queue_received_message_link): Call
5577         _dbus_connection_remove_timeout() instead of the _locked()
5578         variant, since it's always called from
5579         _dbus_connection_handle_watch(), which handles the locking.
5580         Removed the _locked() variant since it's no longer used.
5581
5582 2005-01-03  Havoc Pennington  <hp@redhat.com>
5583
5584         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5585         return
5586         
5587 2004-12-26  Havoc Pennington  <hp@redhat.com>
5588
5589         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5590
5591 2005-01-03  Havoc Pennington  <hp@redhat.com>
5592
5593         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5594         floating point
5595
5596         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5597
5598 2005-01-02  Havoc Pennington  <hp@redhat.com>
5599
5600         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5601
5602 2005-01-01  Havoc Pennington  <hp@redhat.com>
5603
5604         * configure.in: add -Wfloat-equal
5605
5606 2005-01-01  Havoc Pennington  <hp@redhat.com>
5607
5608         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5609         for a variety of reasons '==' doesn't do this.
5610
5611 2004-12-31  Havoc Pennington  <hp@redhat.com>
5612
5613         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5614         I keep wishing I had
5615
5616 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5617
5618         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5619
5620 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5621
5622         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5623         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5624         dbus-protocol.h.  Because they are defines and not enums they are not
5625         autogenerated.
5626
5627 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5628
5629         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5630         dbus_bus_activate_service
5631
5632         * python/dbus.py (Bus.activate_service): activate a service on the
5633         bus.
5634
5635 2004-12-24  Havoc Pennington  <hp@redhat.com>
5636
5637         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5638         file format has also changed and I haven't adapted to that yet
5639         
5640         * Makefile.am: load .gcno files from latest gcc
5641
5642 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5643         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5644
5645         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5646         lowlevel binding
5647
5648         * python/dbus.py (get_unix_user): Added binding to 
5649         call dbus_bindings.bus_get_unix_user
5650
5651         * python/extract.py: Modified the proto_pat regex to
5652         handle unsigned long
5653
5654 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5655
5656         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5657         better POSIX compliance.
5658
5659 2004-12-19  Havoc Pennington  <hp@redhat.com>
5660
5661         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5662         (_dbus_string_insert_8_aligned): new functions
5663
5664         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5665
5666 2004-12-18  Havoc Pennington  <hp@redhat.com>
5667
5668         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5669         macro
5670
5671         * dbus/dbus-message.c: fix a comment, and add a still-unused
5672         not-implemented function
5673
5674         * dbus/dbus-marshal.h: fix comment
5675
5676         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5677
5678 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5679
5680         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5681         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5682         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5683         Type.UnderlyingSystemType to get the actual system type
5684         underneath.  This code previously depended on the broken Mono
5685         behavior, which was fixed in 1.1.3.
5686
5687 2004-11-27  Havoc Pennington  <hp@redhat.com>
5688
5689         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5690         are disabled
5691         (_dbus_string_get_const_data): inline when asserts are disabled
5692
5693         * dbus/dbus-message.c: record the _dbus_current_generation of
5694         creation so we can complain if dbus_shutdown() is used improperly.
5695         Do this only if checks are enabled.
5696
5697         * dbus/dbus-connection.c: ditto
5698         
5699 2004-11-26  Havoc Pennington  <hp@redhat.com>
5700
5701         * test/glib/test-profile.c: add with_bus mode to profile echoes
5702         that go through the bus.
5703
5704         * test/glib/run-test.sh: add ability to run test-profile
5705
5706         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5707         config file reload.
5708
5709 2004-11-26  Havoc Pennington  <hp@redhat.com>
5710
5711         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5712         thing was implemented
5713
5714 2004-11-26  Havoc Pennington  <hp@redhat.com>
5715
5716         * test/glib/test-profile.c: tweak a bit, add support for some
5717         made-up minimal malloc overhead with plain sockets, since in 
5718         real life some sort of buffers are unavoidable thus we could 
5719         count them in the theoretical best case
5720
5721 2004-11-26  Havoc Pennington  <hp@redhat.com>
5722
5723         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5724         where I was trying to cache one too many messages
5725
5726 2004-11-26  Havoc Pennington  <hp@redhat.com>
5727
5728         * dbus/dbus-message.c: reimplement message cache as an array which 
5729         makes the cache about twice as fast and saves maybe 1.5% overall
5730
5731 2004-11-26  Havoc Pennington  <hp@redhat.com>
5732
5733         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5734         message cache lock here
5735
5736 2004-11-26  Havoc Pennington  <hp@redhat.com>
5737
5738         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5739         the "char byte_order" next to each other to save 4 bytes
5740         (dbus_message_new_empty_header): reduce preallocation, since the
5741         message cache should achieve a similar effect
5742         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5743         message cache that keeps a few DBusMessage around in a pool,
5744         another 8% speedup or so.
5745
5746         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5747
5748 2004-11-25  Havoc Pennington  <hp@redhat.com>
5749
5750         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5751         to write, without reading or blocking, try it before the poll()
5752         and skip the poll() if nothing remains to write. This is about a
5753         3% speedup in the echo client/server
5754
5755 2004-11-25  Havoc Pennington  <hp@redhat.com>
5756
5757         The primary change here is to always write() once before adding
5758         the write watch, which gives us about a 10% performance increase.
5759         
5760         * dbus/dbus-transport-unix.c: a number of modifications to cope
5761         with removing messages_pending
5762         (check_write_watch): properly handle
5763         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5764         messages_pending stuff
5765         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5766         AUTHENTICATED cases
5767         (unix_handle_watch): after writing, see if the write watch can be
5768         removed
5769         (unix_do_iteration): assert that write_watch/read_watch are
5770         non-NULL rather than testing that they aren't, since they 
5771         aren't allowed to be NULL. check_write_watch() at the end so 
5772         we add the watch if we did not finish writing (e.g. got EAGAIN)
5773
5774         * dbus/dbus-transport-protected.h: remove messages_pending call,
5775         since it resulted in too much inefficient watch adding/removing; 
5776         instead we now require that the transport user does an iteration 
5777         after queueing outgoing messages, and after trying the first
5778         write() we add a write watch if we got EAGAIN or exceeded our 
5779         max bytes to write per iteration setting
5780
5781         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5782         function
5783
5784         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5785         freed and then accessed, valgrind flagged this bug, fix it
5786
5787         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5788         as the last valid field plus 1, where really it is equal to the
5789         last valid field. Corrects some message corruption issues.
5790
5791         * dbus/dbus-mainloop.c: verbosity changes
5792
5793         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5794         instead of aborting in one of the test codepaths
5795
5796         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5797         caused not printing the pid ever again if a verbose was missing
5798         the newline at the end
5799         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5800
5801         * dbus/dbus-connection.c: verbosity changes; 
5802         (dbus_connection_has_messages_to_send): new function
5803         (_dbus_connection_message_sent): no longer call transport->messages_pending
5804         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5805         try to write() immediately, so we can avoid the write watch. This
5806         is the core purpose of this patchset
5807         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5808         dump the outgoing message queue, so nobody will get confused
5809         trying to send them or thinking stuff is pending to be sent
5810
5811         * bus/test.c: verbosity changes
5812
5813         * bus/driver.c: verbosity/assertion changes
5814
5815         * bus/dispatch.c: a bunch of little tweaks to get it working again
5816         because this patchset changes when/where you need to block.
5817
5818 2004-11-23  Havoc Pennington  <hp@redhat.com>
5819
5820         * test/glib/test-profile.c: modify to accept a plain_sockets
5821         argument in which case it will bench plain sockets instead of
5822         libdbus, for comparison purposes.
5823
5824 2004-11-22  Havoc Pennington  <hp@redhat.com>
5825
5826         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5827         threads for more time, so sysprof can get a grip on it.
5828
5829         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5830         pointless variable
5831
5832 2004-11-13  Havoc Pennington  <hp@redhat.com>
5833
5834         * test/glib/test-profile.c: fix this thing up a bit
5835
5836         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5837         preallocation sizes by a fair bit; not sure if this will be an
5838         overall performance win or not, but it does reduce reallocs.
5839
5840         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5841         the test hack that forced constant realloc if asserts are
5842         disabled, so we can profile sanely. Sprinkle in some
5843         _DBUS_UNLIKELY() which are probably pointless, but before I
5844         noticed the real performance problem I put them in.
5845         (_dbus_string_validate_utf8): micro-optimize this thing a little
5846         bit, though callgrind says it didn't help; then special-case
5847         ascii, which did help a lot; then be sure we detect nul bytes as
5848         invalid, which is a bugfix.
5849         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5850         superstition; use memset to nul the padding instead of a manual
5851         loop.
5852         (_dbus_string_get_length): inline this as a
5853         macro; it showed up in the profile because it's used for loop
5854         tests and so forth
5855
5856 2004-11-10  Colin Walters  <walters@verbum.org>
5857
5858         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5859         for extra paranoia.
5860
5861 2004-11-09  Colin Walters  <walters@verbum.org>
5862
5863         * dbus/dbus-string.c (_dbus_string_get_length): New
5864         function, writes DBusString to C buffer.
5865
5866         * dbus/dbus-string.h: Prototype it.
5867
5868         * dbus/dbus-message.c (dbus_message_type_to_string): New
5869         function, converts message type into C string.
5870
5871         * dbus/dbus-message.h: Prototype it.
5872
5873         * bus/selinux.c (bus_selinux_check): Take source pid,
5874         target pid, and audit data.  Pass audit data to
5875         avc_has_perm.
5876         (log_audit_callback): New function, appends extra
5877         audit information.
5878         (bus_selinux_allows_acquire_service): Also take
5879         service name, add it to audit data.
5880         (bus_selinux_allows_send): Also take message
5881         type, interface, method member, error name,
5882         and destination, and add them to audit data.
5883         (log_cb): Initialize func_audit.
5884         
5885         * bus/selinux.h (bus_selinux_allows_acquire_service)
5886         (bus_selinux_allows_send): Update prototypes 
5887
5888         * bus/services.c (bus_registry_acquire_service): Pass
5889         service name to bus_selinux_allows_acquire_service.
5890
5891         * bus/bus.c (bus_context_check_security_policy): Pass
5892         additional audit data.  Move assignment of dest
5893         to its own line.
5894
5895 2004-11-07  Colin Walters  <walters@verbum.org>
5896
5897         * dbus/dbus-transport-unix.c (do_authentication): Always
5898         initialize auth_completed.
5899         
5900 2004-11-07  Colin Walters  <walters@verbum.org>
5901
5902         * bus/bus.c (load_config): Break into three
5903         separate functions: process_config_first_time_only,
5904         process_config_every_time, and process_config_postinit.
5905         (process_config_every_time): Move call of
5906         bus_registry_set_service_context_table into
5907         process_config_postinit.
5908         (process_config_postinit): New function, does
5909         any processing that needs to happen late
5910         in initialization (and also on reload).
5911         (bus_context_new): Instead of calling load_config,
5912         open config parser here and call process_config_first_time_only
5913         and process_config_every_time directly.  Later, after
5914         we have forked but before changing UID,
5915         invoke bus_selinux_full_init, and then call
5916         process_config_postinit.
5917         (bus_context_reload_config): As in bus_context_new,
5918         load parse file inside here, and call process_config_every_time
5919         and process_config_postinit.
5920
5921         * bus/services.h, bus/services.c
5922         (bus_registry_set_service_context_table): Rename
5923         from bus_registry_set_sid_table.  Take string hash from config
5924         parser, and convert them here into SIDs.
5925
5926         * bus/config-parser.c (struct BusConfigParser): Have
5927         config parser only store a mapping of service->context
5928         string.
5929         (merge_service_context_hash): New function.
5930         (merge_included): Merge context string hashes instead
5931         of using bus_selinux_id_table_union.
5932         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5933         simply create a new string hash.
5934         (bus_config_parser_unref): Unref it.
5935         (start_selinux_child): Simply insert strings into hash,
5936         don't call bus_selinux_id_table_copy_over.
5937
5938         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5939         (bus_selinux_id_table_copy_over): Delete.
5940
5941 2004-11-03  Colin Walters  <walters@verbum.org>
5942
5943         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5944         variables.
5945         
5946 2004-11-03  Colin Walters  <walters@verbum.org>
5947
5948         * bus/test-main.c (test_pre_hook): Fix test logic,
5949         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5950
5951 2004-11-02  Colin Walters  <walters@redhat.com>
5952
5953         * bus/selinux.c (bus_selinux_init): Split into two functions,
5954         bus_selinux_pre_init and bus_selinux_post_init.
5955         (bus_selinux_pre_init): Just determine whether SELinux is
5956         enabled.
5957         (bus_selinux_post_init): Do everything else.
5958
5959         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5960         config file, and bus_selinux_post_init after.  This ensures that
5961         we don't lose the policyreload notification thread that
5962         bus_selinux_init created before forking previously.
5963         
5964         * bus/test-main.c (test_pre_hook): Update for split.
5965
5966 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5967
5968         Patch from Johan Fischer <linux@fischaz.com>
5969         
5970         * mono/doc/Makefile.am (install-data-local): Added directory
5971         install for DESTDIR
5972
5973 2004-10-29  Colin Walters  <walters@redhat.com>
5974
5975         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5976         parameter for fd to write pid to.       
5977
5978         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5979         
5980         * bus/bus.c (bus_context_new): Pass print_pid_fd
5981         to _dbus_become_daemon (bug #1720)
5982
5983 2004-10-29  Colin Walters  <walters@redhat.com>
5984
5985         Patch from Ed Catmur <ed@catmur.co.uk>
5986
5987         * mono/doc/Makefile.am (install-data-local): Handle
5988         DESTDIR.
5989
5990 2004-10-29  Colin Walters  <walters@redhat.com>
5991
5992         * bus/.cvsignore, qt/.cvsignore: Update.
5993
5994 2004-10-29  Colin Walters  <walters@redhat.com>
5995
5996         Patch from Kristof Vansant <de_lupus@pandora.be>
5997
5998         * configure.in: Detect Slackware.
5999         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6000         * bus/rc.messagebus.in: New file.
6001
6002 2004-10-29  Colin Walters  <walters@redhat.com>
6003
6004         * tools/dbus-monitor.c (filter_func): Return
6005         DBUS_HANDLER_RESULT_HANDLED in filter function
6006         for now.  See:
6007         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6008
6009 2004-10-29  Colin Walters  <walters@redhat.com>
6010
6011         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6012
6013         * bus/services.c (bus_registry_acquire_service): 
6014         Correctly retrieve service name from DBusString
6015         for printing.
6016
6017 2004-10-29  Colin Walters  <walters@redhat.com>
6018
6019         * dbus/dbus-glib.h: Update documentation to not
6020         refer to internal APIs.
6021
6022 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6023
6024         * mono/Arguments.cs (GetDBusTypeConstructor):
6025         type.UnderlyingSystemType will return "System.Byte" if you do it
6026         on "byte[]", which is not what we want.  So check the type.IsArray
6027         property and use System.Array instead.
6028
6029 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6030
6031         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6032         the DBusUserInfo structure since this is passed into the function.
6033         This would cause a double free when the function that allocated
6034         the structure would try to free it when an error occured.
6035
6036         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6037         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6038         for service activation to avoid 32bit/64bit parallel install issues
6039
6040 2004-10-21  Colin Walters  <walters@verbum.org>
6041
6042         * AUTHORS: Fix my email address, the @gnu.org one
6043         has been bouncing for some time.  Also add J5.
6044         
6045 2004-10-21  Colin Walters  <walters@verbum.org>
6046
6047         * dbus/dbus-transport-unix.c (do_authentication): Return
6048         authentication status to callers.
6049         (unix_handle_watch): If we completed authentication this round,
6050         don't do another read.  Instead wait until the next iteration,
6051         after we've read any pending data in the auth buffer.
6052         (unix_do_iteration): Ditto.
6053         (unix_handle_watch): Updated for new do_authentication prototype.
6054
6055 2004-10-18  Colin Walters  <walters@verbum.org>
6056
6057         * bus/selinux.c (bus_selinux_enabled): Handle
6058         --disable-selinux case.
6059         
6060 2004-10-18  Colin Walters  <walters@verbum.org>
6061
6062         * bus/selinux.h: Add bus_selinux_enabled.
6063         
6064         * bus/selinux.c (bus_selinux_enabled): Implement it.
6065         
6066         * bus/config-parser.c (struct include): Add
6067         if_selinux_enabled member.
6068         (start_busconfig_child): Parse if_selinux_enabled
6069         attribute for include.
6070         (bus_config_parser_content): Handle it.
6071
6072         * bus/session.conf.in, bus/system.conf.in: Add
6073         inclusion of context mapping to default config files;
6074         conditional on SELinux being enabled.
6075         
6076         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6077         
6078         * test/data/invalid-config-files/badselinux-1.conf, 
6079         test/data/invalid-config-files/badselinux-2.conf:
6080         Test files for bad syntax.
6081         
6082 2004-10-17  Colin Walters  <walters@verbum.org>
6083
6084         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6085         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6086         format specifier mismatches.
6087
6088 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6089
6090         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6091         format string.
6092
6093         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6094         pointer (bug #1540, Leonardo Boiko).
6095
6096 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6097
6098         * mono/BusDriver.cs: Changed BusDriver struct to remove
6099         the ServiceCreated and ServiceDeleted events and replace them
6100         with the new ServiceOwnerChanged event.
6101
6102         * mono/example/BusListener.cs: Added a new example program,
6103         which listens for and reports any ServiceOwnerChanged events
6104         on the bus driver.
6105
6106         * mono/example/Makefile.am (DESTDIR): Build changes for the
6107         new BusListener.cs example.
6108
6109 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6110
6111         * bus/signals.c (bus_match_rule_parse): validate the components of
6112         match rules (bug #1439).
6113
6114         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6115
6116 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6117
6118         * doc/dbus-specification.xml: document ServiceOwnerChanged
6119         signal.
6120         
6121         * bus/driver.c, bus/driver.h, bus/services.c: Use
6122         ServiceOwnerChanged signal instead of ServiceCreated and
6123         ServiceDeleted.
6124         
6125         * bus/dispatch.c: update testcase for the new signal.
6126
6127 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6128
6129         Patch from Nat Friedman <nat@novell.com>
6130
6131         * mono/Makefile.am: A number of small build fixes to allow "make
6132         distcheck" to succeed.
6133
6134         * mono/example/Makefile.am: "make distcheck" fixes.
6135
6136         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6137         key in @srcdir@.
6138
6139         * test/Makefile.am: "make distcheck" fixes.
6140
6141 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6142
6143         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6144
6145         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6146
6147         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6148         messages after the first one (bug #1389).
6149         
6150         * bus/dispatch.c (check_double_hello_message): add a test case for
6151         the double hello message bug.
6152         (check_existent_service_activation): fix check of spawning error.
6153         
6154 2004-09-16  David Zeuthen  <david@fubar.dk>
6155
6156         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6157
6158 2004-09-12  David Zeuthen  <david@fubar.dk>
6159
6160         Patch from Kay Sievers <kay.sievers@vrfy.org>
6161
6162         * bus/bus.c (bus_context_new):
6163         * bus/bus.h:
6164         * bus/main.c (usage)
6165         (main):
6166         Add commandline option --nofork to override configuration file
6167         setting.
6168
6169 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6170
6171         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6172         compilers don't like it (bug #974).
6173
6174 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6175
6176         * qt/connection.*: Applied patch by Jérôme Lodewyck
6177         <lodewyck@clipper.ens.fr> to integrate an existing
6178         connection into the Qt eventloop
6179
6180 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6181
6182         * mono/BusDriver.cs: Added.  This is a class for interacting with
6183         the org.freedesktop.DBus service.
6184
6185         * mono/Message.cs: Added a mechanism to expose the message that is
6186         currently being dispatched via the static Message.Current
6187         property.  Added Message.Sender and Message.Destination
6188         properties.
6189
6190         * mono/Handler.cs: Expose the dispatched message via
6191         Message.Current when handling method calls.
6192
6193         * mono/Service.cs: Expose the dispatched message via
6194         Message.Current when handling signal emissions.
6195         
6196         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6197         Connection.BaseService property.
6198
6199 2004-08-28  Havoc Pennington  <hp@redhat.com>
6200
6201         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6202
6203         More fixes from Steve Grubb
6204         
6205         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6206         (_dbus_listen_tcp_socket): fix fd leak
6207
6208         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6209         EINTR to a bit lower in the code
6210
6211 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6212
6213         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6214         TRUE if we are inquiring about the existence of the built-in
6215         org.freedesktop.DBus service.
6216
6217 2004-08-25  John Palmieri  <johnp@redhat.com>
6218         * bus/config-parser.c:
6219         (struct PolicyType): Add POLICY_CONSOLE
6220         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6221         (start_busconfig_child): Sets up console element when
6222         <policy at_console=""> is encountered in a policy file
6223         (append_rule_from_element): Convert console elements to console
6224         rules.
6225
6226         * bus/policy.c: 
6227         (bus_policy_create_client_policy): Add console rules to the client
6228         policy based on if the client is at the console
6229         (bus_policy_append_console_rule): New function for adding a
6230         console rule to a policy
6231         (bus_policy_merge): Handle console rule merging
6232
6233         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6234         where we check for console user files
6235         
6236         * dbus/dbus-sysdeps.c:
6237         (_dbus_file_exists): New function which checks if the given
6238         file exists
6239         (_dbus_user_at_console): New function which does the system
6240         specific process of checking if the user is at the console
6241
6242         * dbus/dbus-userdb.c:
6243         (_dbus_is_console_user): New function converts a UID to user name
6244         and then calls the system specific _dbus_user_at_console to 
6245         see if the user is at the console and therefor a console user
6246
6247 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6248
6249         * bus/config-parser.c (set_limit):
6250         * bus/dbus-daemon-1.1.in:
6251         * test/data/valid-config-files/many-rules.conf: set the
6252         max_match_rules_per_connection limt from the config file. 
6253
6254         * doc/busconfig.dtd: update the DTD.
6255
6256         * bus/driver.c: remove some unused variables.
6257
6258 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6259
6260         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6261         it's been replaced by dbus_g_bus_get
6262
6263 2004-08-23  Colin Walters  <walters@redhat.com>
6264
6265         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6266
6267         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6268
6269         * bus/selinux.c: Create a thread for policy reload notification.
6270         (bus_selinux_get_policy_root): Implement.
6271
6272         * bus/config-parser.c (start_busconfig_child)
6273         (bus_config_parser_content): Support SELinux-root relative
6274         inclusion.
6275
6276         * configure.in <HAVE_SELINUX>: Add -lpthread.
6277         
6278         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6279         (test_post_hook): Move memory checking into here.
6280         (test_pre_hook, test_post_hook): Move SELinux checks in
6281         here, but conditional on a DBUS_TEST_SELINUX environment
6282         variable.  Unfortunately we can't run the SELinux checks
6283         as a normal user, since they won't have any permissions
6284         for /selinux.  So this will have to be tested manually
6285         for now, until we have virtualization for most of
6286         libselinux.
6287         
6288 2004-08-23  Havoc Pennington  <hp@redhat.com>
6289
6290         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6291         drop supplementary groups, suggested by Steve Grubb
6292
6293 2004-08-20  Colin Walters  <walters@redhat.com>
6294
6295         * bus/config-parser.c (start_busconfig_child): Remove some unused
6296         variables.
6297         
6298         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6299         warning.
6300
6301 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6302
6303         * configure.in: If --enable-mono is passed in, if we can't find
6304         mono error out.
6305
6306         * mono/Makefile.am: Use /gacutil to install assemblies into the
6307         GAC and not /root.
6308
6309 2004-08-12  Havoc Pennington  <hp@redhat.com>
6310
6311         * NEWS: update for 0.22
6312
6313         * configure.in: release 0.22
6314
6315 2004-08-11  Colin Walters  <walters@redhat.com>
6316
6317         * tools/dbus-send.c (main, usage): Add --reply-timeout
6318         argument.
6319
6320 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6321
6322         * bus/bus.c (process_config_first_time_only): get rid of an unused
6323         DBusError that was causing a memoy leak (bug #989).
6324
6325         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6326         fix compilation on Solaris/Forte C (bug #974)
6327
6328         * bus/main.c (main): plug two minuscule memleaks.
6329
6330 2004-08-10  Havoc Pennington  <hp@redhat.com>
6331
6332         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6333
6334 2004-08-09  Havoc Pennington  <hp@redhat.com>
6335
6336         * COPYING: switch to Academic Free License version 2.1 instead of
6337         2.0, to resolve complaints about patent termination clause.
6338
6339 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6340
6341         * README: added documentation for the --enable-python 
6342         configure switch.
6343
6344 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6345
6346         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6347         _unref in the SELinux support.
6348
6349         * doc/busconfig.dtd: update DTD for SELinux support.
6350
6351         * bus/config-loader-libxml.c: fix error handler and parser
6352         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6353
6354         * configure.in: remove the warning about libxml2.
6355
6356         * dbus/dbus-bus.c: silence doxygen warning.
6357
6358 2004-07-31  Colin Walters  <walters@redhat.com>
6359
6360         * configure.in: Move #error in SELinux check to its own line.
6361
6362 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6363
6364         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6365         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6366         dbus_error_set.
6367
6368         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6369         broken by the change in the _SET_OOM macros.
6370
6371 2004-07-31  Colin Walters  <walters@redhat.com>
6372
6373         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6374         BUS_SET_OOM.
6375
6376 2004-07-31  Colin Walters  <walters@redhat.com>
6377
6378         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6379         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6380         AC_MSG_CHECKING.
6381
6382 2004-07-24  Havoc Pennington  <hp@redhat.com>
6383
6384         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6385
6386         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6387         functionality
6388
6389         * configure.in: add --enable-selinux
6390         
6391         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6392
6393         * bus/main.c (main): initialize and shut down selinux
6394
6395         * bus/connection.c: store SELinux ID on each connection, to avoid 
6396         repeated getting of the string context and converting it into 
6397         an ID
6398
6399         * bus/bus.c (bus_context_get_policy): new accessor, though it
6400         isn't used
6401         (bus_context_check_security_policy): check whether the security
6402         context of sender connection can send to the security context of
6403         recipient connection
6404
6405         * bus/config-parser.c: add parsing for <selinux> and <associate>
6406         
6407         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6408         implement dbus_connection_get_unix_fd()
6409
6410         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6411         function, used by the selinux stuff
6412         
6413 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6414
6415         * bus/config-loader-libxml.c: complete the implementation of
6416         libxml backend for config file loader. Doesn't work with full OOM
6417         test yet. 
6418         
6419         * configure.in: change error when selecting libxml into a warning.
6420         
6421         * test/data/invalid-config-files: add two non-well-formed XML
6422         files. 
6423         
6424         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6425         
6426         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6427         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6428         be necessary to read all the buffer. (bug #894)
6429
6430         * bus/activation.c (bus_activation_activate_service): fix a
6431         potential assertion failure (bug #896). Small optimization in the
6432         case of auto-activation messages.
6433
6434         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6435         add test case for byte-through-vararg bug (#901). patch by Kimmo
6436         Hämäläinen. 
6437
6438 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6439
6440         * python/dbus.py:
6441         * python/dbus_bindings.pyx.in:
6442         Add dbus.init_gthreads (), allow emit_signal to pass
6443         arguments to the signal.
6444         
6445 2004-07-24  Havoc Pennington  <hp@redhat.com>
6446
6447         * AUTHORS: add some people, not really comprehensively, let me
6448         know if I missed you
6449
6450 2004-07-24  Havoc Pennington  <hp@redhat.com>
6451
6452         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6453         Owen
6454
6455         * test/Makefile.am (DIST_SUBDIRS): here also
6456
6457 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6458
6459         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6460         breaking build on Solaris, reported by Farhad Saberi on the ML.
6461
6462         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6463         va_arg invocation to account for integer promotion in the case of
6464         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6465
6466         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6467         _dbus_list_get_first_link, not _dbus_list_get_first.
6468
6469         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6470
6471         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6472         handler functions so that the asserts in _dbus_object_subtree_unref
6473         do not fail.
6474
6475         * dbus/dbus-transport-unix.c (do_reading):
6476         _dbus_transport_queue_messages return value is of type
6477         dbus_bool_t, not DBusDispatchStatus.
6478         
6479 2004-07-19  David Zeuthen  <david@fubar.dk>
6480
6481         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6482
6483         * bus/dispatch.c:
6484         (check_get_connection_unix_user): Debug says GetProperty; but the
6485         method is called GetConnectionUnixUser
6486         (check_get_connection_unix_process_id): New function
6487         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6488         also call check_get_connection_unix_process_id()
6489         
6490         * bus/driver.c:
6491         (bus_driver_handle_get_connection_unix_process_id): New function,
6492         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6493         interface
6494         
6495         * dbus/dbus-auth.c:
6496         (handle_server_data_external_mech): Set pid from the credentials
6497         obtained from the socket
6498         
6499         * dbus/dbus-connection.c:
6500         (dbus_connection_get_unix_process_id): New function
6501         
6502         * dbus/dbus-connection.h: 
6503         Add prototype for dbus_connection_get_unix_process_id
6504         
6505         * dbus/dbus-transport.c:
6506         (_dbus_transport_get_unix_process_id): New function
6507         
6508         * dbus/dbus-transport.h:
6509         Add prototype for _dbus_transport_get_unix_process_id
6510         
6511 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6512
6513         * dbus/dbus-message.c: Message counter fix, patch by Christian
6514         Hammond <chipx86@gnupdate.org>
6515
6516 2004-07-18  Seth Nickell  <seth@gnome.org>
6517
6518         * python/dbus.py:
6519         * python/dbus_bindings.pyx.in:
6520         * python/tests/test-client.py:
6521
6522         Add dbus.ByteArray and dbus_bindings.ByteArray
6523         types so that byte streams can be passed back.
6524
6525         Give jdahlin the heaps of credit that are so
6526         rightfully his.
6527         
6528 2004-07-12  Seth Nickell  <seth@gnome.org>
6529
6530         * python/dbus.py:
6531
6532         Add message argument to the default object_method_handler
6533         function.
6534         
6535         * python/dbus_bindings.pyx.in:
6536
6537         Automatically return NIL when passed an empty list
6538         (we can't pass back a list since lists are typed
6539         and we don't have any idea what type the the client
6540         intended the list to be... :-( )
6541         
6542 2004-07-10  Seth Nickell  <seth@gnome.org>
6543
6544         * python/examples/Makefile.am:
6545
6546         Fix distcheck breakage caused by new examples.
6547
6548 2004-07-10  Seth Nickell  <seth@gnome.org>
6549
6550         * python/dbus.py:
6551
6552         Add "message" argument to service-side dbus.Object
6553         methods. This will break existing services written
6554         using the python bindings, but will allow extraction
6555         of all the message information (e.g. who its from).
6556
6557         Add improved "object oriented" signal handling/emission.
6558         
6559         * python/examples/example-service.py:
6560
6561         Nix this example.
6562         
6563         * python/examples/example-signal-emitter.py:
6564         * python/examples/example-signal-recipient.py:
6565
6566         Two new examples that show how to emit and receive
6567         signals using the new APIs.
6568         
6569         * python/examples/example-signals.py:
6570         * python/examples/gconf-proxy-service.py:
6571         * python/examples/gconf-proxy-service2.py:
6572
6573         Add "message" argument to service methods.
6574
6575 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6576
6577         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6578         * dbus/bus.c (dbus_bus_get_unix_user)
6579         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6580         method of org.freedesktop.DBus interface.
6581
6582         * bus/dispatch.c: test case
6583
6584 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6585
6586         * python/Makefile.am: switched include directory from glib/ to dbus/
6587         since dbus-glib.h moved
6588  
6589 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6590
6591         * configure.in: prevent building the gcj stuff and libxml loader
6592         since they are broken.
6593
6594 2004-06-20  Havoc Pennington  <hp@redhat.com>
6595
6596         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6597         codes from the dbus error names
6598         
6599         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6600         as dbus/dbus-glib.h and that breakage is now visible due to 
6601         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6602         
6603         * glib/dbus-glib.h: s/gproxy/g_proxy/
6604
6605         * dbus/dbus-shared.h: new header to hold stuff shared with
6606         binding APIs
6607         
6608         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6609         than dbus-errors.h
6610
6611         * glib/dbus-glib.h (dbus_set_g_error): move to
6612         dbus-glib-lowlevel.h
6613
6614         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6615         of stuff to enable this
6616
6617         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6618
6619         * a bunch of other changes with the same basic "separate glib 
6620         bindings from dbus.h" theme
6621         
6622 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6623
6624         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6625
6626         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6627
6628 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6629
6630         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6631         the reply value of the ServiceExists message.
6632
6633 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6634
6635         * python/dbus_bindings.pyx.in: No longer need to parse path
6636         elements and pass them as arrays of strings.  The C API now
6637         accepts plain path strings.
6638         (_build_parsed_path): removed 
6639
6640 2004-06-07  Havoc Pennington  <hp@redhat.com>
6641
6642         * doc/TODO: remove auto-activation item since it's done; sort
6643         items by importance/milestone
6644
6645 2004-06-07  Havoc Pennington  <hp@redhat.com>
6646
6647         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6648         random signature when using REQUIRED_FIELDS (this hack won't work
6649         in the long term)
6650
6651         * dbus/dbus-message.c: change the signature to be a header field,
6652         instead of message->signature special-case string. Incremental
6653         step forward. Then we can fix up code to send the signature in the
6654         message, then fix up code to validate said signature, then fix up
6655         code to not put the typecodes inline, etc.
6656         (load_one_message): don't make up the signature after the fact
6657         (decode_header_data): require signature field for the known
6658         message types
6659
6660         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6661
6662         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6663
6664 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6665
6666         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6667
6668         * mono/Handler.cs: Updated to follow new path argument for
6669         (un-)registering objects.
6670
6671         * mono/example/Makefile.am:
6672         * mono/Makefile.am:
6673         * configure.in: Bumped required version for mono and use new -pkg
6674         syntax for deps
6675
6676 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6677
6678         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6679         registration functions take the path argument as char* instead of
6680         char**.
6681
6682         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6683         split off the path decompostion part of
6684         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6685         warnings. 
6686
6687         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6688         
6689 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6690  
6691         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6692         machine approach.  A state is implemented as a function that
6693         handles incoming events as specified for that state.
6694         
6695         * doc/dbus-specification.xml: Update auth protocol state machine
6696         specification to match implementation.  Remove some leftover
6697         base64 examples.
6698
6699 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6700
6701         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6702         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6703         quiet doxygen.
6704
6705         * Doxyfile.in: remove deprecated options.
6706
6707         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6708         glib/test-thread.h, glib/test-thread-client.c,
6709         glib/test-thread-server.c, glib/test-profile.c,
6710         glib/test-dbus-glib.c: remove these unused files.
6711
6712 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6713
6714         * dbus/dbus-object-tree.c
6715         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6716         non-fallback handlers (bug #684).
6717         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6718         (find_subtree_recurse): report wether the returned subtree is an
6719         exact match or a "fallback" match higher up in the tree.
6720         (object_tree_test_iteration): update test case.
6721
6722 2004-06-01  Seth Nickell  <seth@gnome.org>
6723
6724         * python/dbus_bindings.pyx.in:
6725         * python/tests/test-client.py:
6726
6727         Round off basic type support. Add dicts (yay!), and 
6728         remaining array types.
6729
6730         Make MessageIter more general so it works for dicts too.
6731
6732         Mark all loop variables as C integers.
6733         
6734 2004-05-31  Havoc Pennington  <hp@redhat.com>
6735
6736         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6737         "in" before "out"
6738
6739         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6740
6741         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6742         option that runs the tests, and start filling in some code
6743         including for starters just dumping the interfaces to stdout
6744
6745         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6746
6747         * test/data/valid-introspection-files/lots-of-types.xml: test of
6748         an example introspection file
6749
6750         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6751         "node" (I think...)
6752
6753 2004-05-31  Seth Nickell  <seth@gnome.org>
6754
6755         * python/dbus_bindings.pyx.in:
6756         * python/tests/test-client.py:
6757
6758         Test Suite: 1
6759         Python Bindings: 0
6760
6761         Fix string array memory trashing bug... oops...
6762
6763 2004-05-30  Seth Nickell  <seth@gnome.org>
6764
6765         * python/dbus.py:
6766
6767         Add a nicer-but-less-flexible alternate API for handling 
6768         calls to virtual objects in dbus.ObjectTree.
6769
6770         Screw up the argument order to the dbus.Object constructor
6771         for consistency with dbus.ObjectTree (and to make dbus_methods
6772         optional for future extension)
6773         
6774         * python/examples/Makefile.am:
6775         * python/examples/gconf-proxy-service.py:
6776         * python/examples/gconf-proxy-service2.py:
6777
6778         Alternate implementation of gconf-proxy-service using the
6779         nicer dbus.ObjectTree API.
6780         
6781         * python/examples/example-service.py:
6782         * python/tests/test-server.py
6783
6784         Reverse the argument order to deal with dbus.Object constructor
6785         changes.
6786         
6787 2004-05-30  Seth Nickell  <seth@gnome.org>
6788
6789         * python/examples/example-client.py:
6790         * python/examples/example-service.py:
6791
6792         Take it back. Lists seem to work but they're broken
6793         in the test suite. Make the base examples use
6794         lists (works fine).
6795
6796 2004-05-30  Seth Nickell  <seth@gnome.org>
6797
6798         * python/dbus_bindings.pyx.in:
6799         * python/tests/test-client.py:
6800
6801         Add some more tests and fix errors that crop up.
6802         Unfortunately, currently it seems like marshalling
6803         and unmarshalling of lists is completely broken :-(
6804
6805 2004-05-30  Seth Nickell  <seth@gnome.org>
6806
6807         * python/dbus_bindings.pyx.in:
6808
6809         Add support for ObjectPath type.
6810
6811         * python/dbus.py:
6812
6813         Refactor message handling code to a common function.
6814         
6815         * python/tests/test-client.py:
6816         * python/tests/test-server.py:
6817
6818         Add tests that check to make sure values of all types
6819         can be echoed from a service w/o mangling.
6820         
6821 2004-05-29  Seth Nickell  <seth@gnome.org>
6822
6823         * python/dbus.py:
6824
6825         Add ObjectTree class which allows implementation
6826         of trees of "virtual" objects. Basically the python
6827         wrapper for "register_fallback".
6828         
6829         * python/examples/Makefile.am
6830         * python/examples/gconf-proxy-client.py:
6831         * python/examples/gconf-proxy-service.py:
6832
6833         Implement a simple GConf proxy service that supports
6834         get/set on string and int GConf keys using the ObjectTree.
6835         
6836 2004-05-29  Seth Nickell  <seth@gnome.org>
6837
6838         * python/dbus.py:
6839         * python/examples/example-client.py:
6840         * python/examples/example-service.py:
6841         * python/examples/list-system-services.py:
6842
6843         Add SessionBus, SystemBus and ActivationBus classes
6844         so you don't need to know the special little BUS_TYPE
6845         flag.
6846         
6847 2004-05-29  Havoc Pennington  <hp@redhat.com>
6848
6849         * bus/config-parser.c (process_test_valid_subdir): temporarily
6850         stop testing config parser OOM handling, since expat has issues
6851         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6852
6853         * bus/dbus-daemon-1.1.in: change requested_reply to
6854         send_requested_reply/receive_requested_reply so we can send the
6855         replies, not just receive them.
6856
6857         * bus/config-parser.c: parse the new
6858         send_requested_reply/receive_requested_reply
6859
6860         * bus/policy.c (bus_client_policy_check_can_send): add
6861         requested_reply argument and use it
6862
6863         * bus/bus.c (bus_context_check_security_policy): pass through
6864         requested_reply status to message send check
6865
6866         * bus/system.conf.in: adapt to requested_reply change
6867         
6868 2004-05-28  Havoc Pennington  <hp@redhat.com>
6869
6870         * test/glib/test-service-glib.c (main): remove unused variable
6871
6872         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6873
6874         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6875         from the enum, no longer in use.
6876
6877         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6878         works right.
6879
6880         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6881         whether error_name passed in is a valid error name.
6882
6883 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6884
6885         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6886         OBJECT_PATH and OBJECT_PATH_ARRAY
6887
6888 2004-05-28  Seth Nickell  <seth@gnome.org>
6889
6890         * python/examples/Makefile.am:
6891
6892         Forget to add Makefile.am. Do not pass go.
6893
6894 2004-05-28  Michael Meeks  <michael@ximian.com>
6895
6896         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6897         fix no int64 case.
6898
6899         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6900
6901         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6902         (_dbus_message_iter_get_basic_type_array): impl.
6903         drastically simplify ~all relevant _get methods to use these.
6904         (_dbus_message_iter_append_basic_array),
6905         (dbus_message_iter_append_basic): impl
6906         drastically simplify ~all relevant _append methods to use these.
6907
6908         * dbus/dbus-message-builder.c (parse_basic_type) 
6909         (parse_basic_array, lookup_basic_type): impl.
6910         (_dbus_message_data_load): prune scads of duplicate /
6911         cut & paste coding.
6912
6913         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6914         (_dbus_demarshal_basic_type): implement,
6915         (demarshal_and_validate_len/arg): beef up debug.
6916         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6917
6918 2004-05-27  Seth Nickell  <seth@gnome.org>
6919
6920         * configure.in:
6921         * python/Makefile.am:
6922
6923         Include the example python apps in the tarball.
6924         
6925         * python/examples/list-system-services.py
6926
6927         Add a python new example that fetches the list of services
6928         from the system bus.
6929         
6930 2004-05-27  Seth Nickell  <seth@gnome.org>
6931
6932         * python/dbus.py:
6933         * python/dbus_bindings.pyx.in:
6934
6935         Fix failure to notify that a signal was not handled,
6936         resulted in hung functions.
6937         
6938 2004-05-25  Colin Walters  <walters@redhat.com>
6939
6940         * tools/dbus-monitor.c (main): Monitor all types of messages.
6941
6942 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6943
6944         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6945         which unregisters the object path and disposes the handler.
6946
6947 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6948  
6949         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6950          
6951         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6952         operands to && so we call dbus_message_iter_next () for the last
6953         argument also.
6954
6955 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6956
6957         * dbus/dbus-object-tree.c
6958         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6959         children even if the requested path isn't registered.
6960         (object_tree_test_iteration): test object_tree_list_registered.
6961
6962         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6963         it to 0.
6964         
6965 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6966
6967         * doc/TODO: Remove resolved items.
6968
6969         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6970         field.
6971         
6972         * bus/connection.c (bus_connections_expect_reply): Enforce the
6973         per-connection limit on pending replies.
6974         
6975         Patch from Jon Trowbridge <trow@ximian.com>:
6976  
6977         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6978         up a watch that triggers a config reload when one end of the pipe
6979         becomes readable.
6980         (signal_handler): Instead of doing the config reload in our SIGHUP
6981         handler, just write to the reload pipe and let the associated
6982         watch handle the reload when control returns to the main loop.
6983  
6984         * bus/driver.c (bus_driver_handle_reload_config): Added.
6985         Implements a ReloadConfig method for requesting a configuration
6986         file reload via the bus driver.
6987  
6988 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6989
6990         * HACKING: Updated release instructions concerning the wiki page.
6991
6992 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6993
6994         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6995         filter against auth->allowed_mechs; we only add allowed mechs in
6996         record_mechanisms().
6997  
6998         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6999         ALLOWED_MECHS to auth-script format so we can set the list of
7000         allowed mechanisms.
7001  
7002         * data/auth/client-out-of-mechanisms.auth-script: New test to
7003         check client disconnects when it is out of mechanisms to try.
7004  
7005         * dbus/dbus-auth.c (process_command): Remove check for lines
7006         longer that 1 MB; we only buffer up maximum 16 kB.
7007  
7008         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7009         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7010         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7011         assume there might be unused bytes.
7012  
7013         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7014         client-out-of-mechs, it is handled in process_reject(). Move check
7015         for max failures to send_rejected(), as it's a server-only thing.
7016
7017         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7018         send_auth(), send_data(), send_rejected(), send_error(),
7019         send_ok(), send_begin() and send_cancel().
7020
7021 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7022
7023         Remove base64 encoding, replace with hex encoding. Original patch
7024         from trow@ximian.com, added error handling.
7025
7026         * dbus/dbus-string.c (_dbus_string_base64_encode)
7027         (_dbus_string_base64_decode): Remove.
7028         (_dbus_string_hex_decode): Add end_return argument so we can
7029         distinguish between OOM and invalid hex encoding.
7030         (_dbus_string_test): Remove base64 tests and add test case for
7031         invalid hex.
7032
7033         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7034         Replace base64 with hex.
7035
7036         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7037         for invalid hex encoded data in auth protocol.
7038
7039 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7040
7041         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7042         leak.
7043
7044 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7045
7046         * mono/dbus-sharp.dll.config.in: Added for GAC
7047         * mono/dbus-sharp.snk: Added for GAC
7048         * mono/Assembly.cs.in: Added for GAC
7049         * mono/Makefile.am: Changes for GAC installation        
7050         * configure.in: Added refs for dbus-sharp.dll.config.in and
7051         Assembly.cs.in. More fixes for mono testing
7052         * mono/example/Makefile.am: Changed var to CSC
7053         * Makefile.am: Changed flag name to DBUS_USE_CSC
7054
7055 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7056
7057         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7058         * mono/doc/*: Added documentation framework
7059         * configure.in: Added monodoc check
7060         * README: Added description of mono configure flags
7061
7062 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7063
7064         * doc/dbus-specification.xml: Added a "Required" column to the 
7065         header fields table and changed the "zero or more" verbage in
7066         the above paragraph to read "The header must contain the required 
7067         named header fields and zero or more of the optional named header 
7068         fields".
7069         * test/data/invalid-messages/*.message: Added the required PATH 
7070         named header field to the tests so that they don't fail on 
7071         'Missing path field'
7072
7073 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7074
7075         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7076         the stack by implicitly defining variable and parameter types and
7077         removing the hack of defining C pointers as python objects and later
7078         casting them.
7079
7080 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7081
7082         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7083
7084 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7085
7086         * mono/DBusType/Dict.cs: Handle empty dicts
7087         * mono/DBusType/Array.cs: Handle empty arrays
7088         * mono/Arguments.cs: Handle empty arguments
7089
7090 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7091
7092         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7093         field
7094
7095 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7096
7097         * test/data/valid-messages/standard-*.message: Update message
7098         test scripts to new header field names.
7099
7100 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7101
7102         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7103         overflow to times_we_did_each_thing array which would chop off the
7104         first character of the failure_dir string. Increased the size of
7105         the array to 7 to reflect the number of random mutation functions
7106         we have.
7107
7108 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7109
7110         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7111         unix_server->watch here, it is unreffed in disconnect.
7112         (_dbus_server_new_for_tcp_socket): convert NULL host to
7113         "localhost" here so we don't append NULL to address.
7114         
7115         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7116         various addresses, including tcp with no explicit host.
7117
7118 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7119
7120         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7121         fix incorrect setting of .name_offset in the HeaderField (it was
7122         off by two bytes, positioned right after the name and typecode)
7123
7124         * bus/bus.c (bus_context_new, bus_context_unref): test before
7125         calling dbus_server_free_data_slot and _dbus_user_database_unref
7126         in case of an error.
7127
7128         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7129         by libdbus-gtool.
7130
7131 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7132
7133         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7134         _dbus_poll() instead of select().
7135
7136 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7137
7138         * bus/main.c (signal_handler): Reload the configuration files
7139         on SIGHUP.
7140         (main): Set up our SIGHUP handler.
7141
7142         * bus/bus.c (struct BusContext): Store the config file, user and
7143         fork flag in the BusContext.
7144         (process_config_first_time_only): Added.  Contains the code
7145         (previously in bus_context_new) for setting up the BusContext from
7146         the BusConfigParser that should only be run the first time the
7147         config files are read.
7148         (process_config_every_time): Added.  Contains the code (previously
7149         in bus_context_new) for setting up the BusContext from the
7150         BusConfigParser that should be run every time the config files are
7151         read.
7152         (load_config): Added.  Builds a BusConfigParser from the config
7153         files and passes the resulting structure off to
7154         process_config_first_time_only (assuming this is the first time)
7155         and process_config_every_time.
7156         (bus_context_new): All of the config-related code has been moved
7157         to process_config_first_time_only and process_config_every_time.
7158         Now this function just does the non-config-related initializations
7159         and calls load_config.
7160         (bus_context_reload_config): Added.
7161
7162 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7163
7164         * bus/driver.c (bus_driver_handle_get_service_owner):
7165         implement a GetServiceOwner method.
7166         * doc/dbus-specification.xml: document it.
7167         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7168         
7169         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7170         implement, using the bus GetServiceOwner method.
7171
7172         * test/glib/test-dbus-glib.c:
7173         use dbus_gproxy_new_for_service_owner so that we can receive the
7174         signal. 
7175
7176 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7177
7178         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7179         dbus/dbus-message.c, dbus/dbus-protocol.h
7180         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7181
7182         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7183         dbus/dbus-message.c, dbus/dbus-protocol.h
7184         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7185
7186         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7187         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7188         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7189
7190         * doc/dbus-specification.xml (Header Fields Table):
7191         s/SERVICE/DESTINATION
7192         s/SENDER_SERVICE/SENDER
7193
7194
7195 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7196
7197         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7198         a few seconds.
7199
7200 2004-04-13  Michael Meeks  <michael@ximian.com>
7201
7202         * glib/dbus-gobject.c (handle_introspect): split out
7203         (introspect_properties): this.
7204         (handle_introspect): implement this.
7205
7206         * test/glib/Makefile.am: use the absolute path so the bus
7207         daemon's chdir ("/") doesn't kill us dead.
7208
7209         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7210
7211 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7212
7213         * bus/config-parser.c (struct BusConfigParser): Added
7214         included_files field.
7215         (seen_include): Added.  Checks whether or not a file has already
7216         been included by any parent BusConfigParser.
7217         (bus_config_parser_new): Copy the parent's included_files.
7218         (include_file): Track which files have been included, and fail on
7219         circular inclusions.
7220         (process_test_valid_subdir): Changed printf to report if we are
7221         testing valid or invalid conf files.
7222         (all_are_equiv): Changed printf to be a bit clearer about
7223         what we are actually doing.
7224         (bus_config_parser_test): Test invalid configuration files.
7225
7226 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7227
7228         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7229         argument.  If non-null, the newly-constructed BusConfigParser will
7230         be initialized with the parent's BusLimits instead of the default
7231         values.
7232         (include_file): When including a config file, pass in
7233         the current parser as the parent and then copy the BusLimits
7234         from the included BusConfigParser pack to the current parser.
7235         (process_test_valid_subdir): Renamed from process_test_subdir.
7236         (process_test_equiv_subdir): Added.  Walks through a directory,
7237         descending into each subdirectory and loading the config files
7238         it finds there.  If any subdirectory contains two config files
7239         that don't produce identical BusConfigParser structs, fail.
7240         For now, the BusConfigParser's BusPolicies are not compared.
7241         (bus_config_parser_test): Call both process_test_valid_subdir and
7242         process_test_equiv_subdir.
7243
7244         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7245         argument and pass it along to the call to bus_config_parser_new.
7246         Also made a few small changes to allow this code to compile.
7247
7248         * bus/config-loader-expat.c (bus_config_load): Take a parent
7249         argument and pass it along to the call to bus_config_parser_new.
7250
7251         * bus/bus.c (bus_context_new): Load the config file
7252         with a NULL parent argument.
7253
7254 2004-03-29  Michael Meeks  <michael@ximian.com>
7255
7256         * glib/dbus-gobject.c (introspect_properties): split
7257         out, fix mangled 'while' flow control.
7258         (introspect_signals): implement.
7259         (handle_introspect): update.
7260
7261 2004-03-29  Michael Meeks  <michael@ximian.com>
7262
7263         * glib/dbus-gobject.c (set_object_property): split out / 
7264         re-work, use the property type, and not the message type(!)
7265         (get_object_property): ditto.
7266
7267         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7268         (dbus_gvalue_marshal): make this code re-usable, needed
7269         for signals too, also on both proxy and server side.
7270         Re-write for more efficiency / readability.
7271
7272 2004-03-29  Michael Meeks  <michael@ximian.com>
7273
7274         * dbus/dbus-message.c
7275         (dbus_message_new_error_printf): impl.
7276
7277         * dbus/dbus-connection.c
7278         (dbus_connection_unregister_object_path): fix warning.
7279
7280         * configure.in: fix no-mono-installed situation.
7281
7282 2004-03-27  Havoc Pennington  <hp@redhat.com>
7283
7284         Patch from Timo Teräs:
7285         
7286         * tools/dbus-send.c (main): if --print-reply, assume type is
7287         method call; support boolean type args
7288         
7289         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7290         bunch of memleak and logic bugs
7291         
7292 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7293
7294         * mono/Arguments.cs:
7295         * mono/Introspector.cs:
7296         * mono/Handler.cs:
7297         * mono/InterfaceProxy.cs:
7298         * mono/Message.cs
7299         * mono/ProxyBuilder.cs:
7300         * mono/Service.cs:
7301         Added InterfaceProxy class to avoid building proxies for every
7302         object.
7303
7304         * dbus-message.h:
7305         * dbus-message.c (dbus_message_append_args_valist)
7306         (dbus_message_iter_get_object_path)
7307         (dbus_message_iter_get_object_path_array)
7308         (dbus_message_iter_append_object_path)
7309         (dbus_message_iter_append_object_path_array):
7310         Added object_path iter functions to handle OBJECT_PATH arguments
7311         
7312 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7313
7314         First checkin of mono bindings.
7315         * configure.in:
7316         * Makefile.am:
7317         Build stuff for the bindings
7318         * dbus-sharp.pc.in: Added for pkgconfig
7319         
7320 2004-03-21  Havoc Pennington  <hp@redhat.com>
7321
7322         * test/test-service.c (main): remove debug spew
7323
7324 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7325
7326         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7327         arrays
7328
7329         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7330         (dbus_message_iter_init_array_iterator)
7331         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7332         indicate whether the iterator is empty
7333
7334         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7335         warnings
7336
7337 2004-03-19  Havoc Pennington  <hp@redhat.com>
7338
7339         * NEWS: 0.21 updates
7340
7341         * configure.in: 0.21
7342
7343         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7344         
7345         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7346         you don't need pyrex to make dist
7347
7348         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7349         sources; run moc
7350         
7351 2004-03-18  Richard Hult  <richard@imendio.com>
7352
7353         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7354         (dbus_message_set_auto_activation): Add doxygen docs.
7355
7356 2004-03-16  Richard Hult  <richard@imendio.com>
7357
7358         * bus/activation.c: (bus_activation_service_created),
7359         (bus_activation_send_pending_auto_activation_messages),
7360         (bus_activation_activate_service):
7361         * bus/activation.h:
7362         * bus/dispatch.c: (bus_dispatch),
7363         (check_nonexistent_service_auto_activation),
7364         (check_service_auto_activated),
7365         (check_segfault_service_auto_activation),
7366         (check_existent_service_auto_activation), (bus_dispatch_test):
7367         * bus/driver.c: (bus_driver_handle_activate_service):
7368         * bus/services.c: (bus_registry_acquire_service):
7369         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7370         (dbus_message_get_auto_activation):
7371         * dbus/dbus-message.h:
7372         * dbus/dbus-protocol.h: Implement auto-activation.
7373         
7374         * doc/dbus-specification.xml: Add auto-activation to the spec.
7375
7376 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7377
7378         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7379         fix a bug with CUSTOM types.
7380
7381         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7382         a unit test for this bug (used to fail).
7383
7384 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7385
7386         * bus/activation.c:
7387         (babysitter_watch_callback): notify all pending activations waiting for
7388           the same exec that the activation failed.
7389         (bus_activation_activate_service): shortcut the activation if we 
7390           already waiting for the same executable to start up.
7391
7392 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7393
7394         * bus/activation.c: 
7395         - Added service file reloading. 
7396           Each service files directory is kept in an hash table in 
7397           BusActivation and each BusActivationEntry knows what .service-file it
7398           was read from. So when you try to activate a service the bus will 
7399           check if it's been updated, removed or if new .service-files has 
7400           been installed.
7401         - Test code at the bottom for the service file reloading.
7402         * bus/test-main.c: (main):
7403         * bus/test.h:
7404         - added service reloading test.
7405         * dbus/dbus-sysdeps.c: 
7406         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7407
7408 2004-03-08  Michael Meeks  <michael@ximian.com>
7409
7410         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7411         bail immediately if disconnected, to avoid busy loop.
7412
7413         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7414         cleanup cut/paste/inefficiency.
7415
7416 2004-03-01  David Zeuthen  <david@fubar.dk>
7417
7418         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7419         bug where args were used twice. This bug resulted in a segfault
7420         on a Debian/PPC system when starting the messagebus daemon. Include
7421         dbus-sysdeps.h for DBUS_VA_COPY
7422
7423         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7424
7425         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7426         appropriate va_copy implementation. From GLib
7427         
7428 2004-02-24  Joe Shaw  <joe@ximian.com>
7429
7430         * bus/services.c (bus_registry_acquire_service): We need to pass
7431         in the service name to dbus_set_error() to prevent a crash.
7432
7433 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7434
7435         * AUTHORS: Reveal my True identity.
7436
7437 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7438
7439         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7440         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7441
7442 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7443
7444         * doc/TODO: Added not about better error check of configuration files.
7445
7446 2003-12-02  Richard Hult  <richard@imendio.com>
7447
7448         * Update AFL version to 2.0 throughout the source files to reflect
7449         the update that was done a while ago.
7450
7451 2003-12-02  Richard Hult  <richard@imendio.com>
7452
7453         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7454         wrote_dict_key to FALSE on the iter that the dict is appended to,
7455         just like when appending other types. Fixes a bug where a dict
7456         couldn't be put inside a dict.
7457         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7458         (message_iter_test, _dbus_message_test): Add test case for dict
7459         inside dict.
7460
7461 2003-12-01  David Zeuthen  <david@fubar.dk>
7462
7463         * python/dbus.py: Add the actual message when calling the reciever
7464         of a signal such that parameters can be inspected. Add the method
7465         remove_signal_receiver
7466         
7467 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7468
7469         * bus/*.[ch]:
7470         * dbus/*.[ch]:
7471         * glib/*.[ch]: Made ref functions return the pointer
7472
7473 2003-11-25  Zack Rusin  <zack@kde.org>
7474
7475         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7476
7477         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7478         wrappers,
7479
7480         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7481         the Integrator and to better fit with the server,
7482
7483 2003-11-24  Zack Rusin  <zack@kde.org>
7484
7485         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7486         the integrator handles it now
7487
7488         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7489         since QTimer wasn't really meant to be used the way DBusTimeout is
7490
7491 2003-11-24  Zack Rusin  <zack@kde.org>
7492
7493         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7494         Integrator class which integrates D-BUS with the Qt event loop,
7495
7496         * qt/connection.h, qt/connection.cpp: Move all the code which
7497         was dealing with D-BUS integration to the Integrator class,
7498         and start using Integrator,
7499
7500 2003-11-23  Zack Rusin  <zack@kde.org>
7501
7502         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7503         wrapper
7504
7505         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7506         switching namespaces to DBusQt, reworking the class,
7507
7508         * Makefile.cvs: switching dependencies so that it matches KDE 
7509         schematics,
7510         
7511         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7512         the library
7513
7514 2003-11-19  Havoc Pennington  <hp@redhat.com>
7515
7516         * NEWS: update
7517
7518         * configure.in: bump version to 0.20
7519
7520         * configure.in (have_qt): add yet another place to look for qt
7521         (someone hand trolltech a .pc file...)
7522
7523 2003-11-01  Havoc Pennington  <hp@redhat.com>
7524
7525         * doc/dbus-specification.xml: add state machine docs on the auth
7526         protocol; just a first draft, I'm sure it's wrong.      
7527
7528 2003-10-28  David Zeuthen  <david@fubar.dk>
7529
7530         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7531         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7532         
7533 2003-10-28  Havoc Pennington  <hp@redhat.com>
7534
7535         * dbus/dbus-message.c (get_next_field): delete unused function
7536
7537 2003-10-28  Havoc Pennington  <hp@redhat.com>
7538
7539         * bus/expirelist.c (do_expiration_with_current_time): detect
7540         failure of the expire_func due to OOM
7541
7542         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7543
7544         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7545         NoReply error that's now created by the bus when the service exits
7546
7547 2003-10-28  Havoc Pennington  <hp@redhat.com>
7548
7549         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7550         tests for set_path, set_interface, set_member, etc.
7551
7552         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7553
7554         * dbus/dbus-message.c (set_string_field): always just delete and
7555         re-append the field; accept NULL for deletion
7556         (re_align_fields_recurse): reimplement
7557         
7558 2003-10-26  Havoc Pennington  <hp@redhat.com>
7559
7560         * dbus/dbus-connection.c: fix docs to properly describe the
7561         disconnected message
7562         (_dbus_connection_notify_disconnected): remove this function; 
7563         we can't synchronously add the disconnected message, we have to 
7564         do it after we've queued any remaining real messages
7565         (_dbus_connection_get_dispatch_status_unlocked): queue the
7566         disconnect message only if the transport has finished queueing all
7567         its real messages and is disconnected.
7568         (dbus_connection_disconnect): update the dispatch status here
7569
7570 2003-10-22  Havoc Pennington  <hp@redhat.com>
7571
7572         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7573
7574         * bus/connection.c (bus_transaction_send_from_driver): set the
7575         destination to the connection's base service
7576
7577 2003-10-20  Havoc Pennington  <hp@redhat.com>
7578
7579         hmm, make check is currently not passing.
7580         
7581         * doc/dbus-specification.xml: add requirement that custom type
7582         names follow the same rules as interface names.
7583
7584         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7585         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7586         'map'
7587
7588         * doc/dbus-specification.xml: update type codes to match
7589         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7590         CUSTOM. Add type OBJECT_PATH to the spec.
7591
7592 2003-10-17  Havoc Pennington  <hp@redhat.com>
7593
7594         * bus/driver.c (create_unique_client_name): use "." as separator
7595         in base service names instead of '-'
7596
7597         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7598         byte at the end of the string
7599
7600         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7601         optimization macros since string validation seems to be a slow
7602         point.
7603         
7604         * doc/dbus-specification.xml: restrict valid
7605         service/interface/member/error names. Add test suite code for the
7606         name validation.
7607
7608         * dbus/dbus-string.c: limit service/interface/member/error names 
7609         to [0-9][A-Z][a-z]_
7610
7611         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7612         format arg to verbose spew
7613
7614         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7615         memory, return instead of g_error
7616
7617         * test/test-service.c (path_message_func): support emitting a
7618         signal on request
7619
7620         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7621         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7622         assuming the activation bus was the session bus so that services
7623         started manually will still register.
7624         (init_connections_unlocked): fix so that in OOM situation we get
7625         the same semantics when retrying the function
7626         
7627         * test/test-service.c (main): change to use path registration, to
7628         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7629         than DBUS_BUS_SESSION
7630
7631 2003-10-16  Havoc Pennington  <hp@redhat.com>
7632
7633         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7634
7635         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7636         coverage of the tests
7637         (coverage-report.txt): don't move the .da and .bbg files around
7638
7639 2003-10-16  Havoc Pennington  <hp@redhat.com>
7640
7641         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7642         to put there
7643
7644 2003-10-16  Havoc Pennington  <hp@redhat.com>
7645
7646         * bus/connection.c (bus_pending_reply_expired): either cancel or
7647         execute, not both
7648         (bus_connections_check_reply): use unlink, not remove_link, as we
7649         don't want to free the link; fixes double free mess
7650
7651         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7652         where no reply was received
7653
7654         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7655         fix a refcount leak
7656
7657         * bus/signals.c (match_rule_matches): add special cases for the
7658         bus driver, so you can match on sender/destination for it.
7659
7660         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7661         DBUS_PRINT_BACKTRACE is set
7662
7663         * dbus/dbus-internals.c: add pid to assertion failure messages
7664
7665         * dbus/dbus-connection.c: add message type code to the debug spew
7666
7667         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7668         sender=foo not service=foo
7669
7670         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7671         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7672         DBUS_ACTIVATION_ADDRESS instead
7673
7674         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7675         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7676
7677         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7678         context struct
7679
7680         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7681         (dbus_message_iter_get_object_path_array): new function (half
7682         finished, disabled for the moment)
7683         
7684         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7685         DBUS_MESSAGE_TYPE_ERROR
7686
7687         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7688         avoid redirecting stderr to /dev/null
7689         (babysit): close stdin if not doing the "exit_with_session" thing
7690
7691         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7692         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7693         stdout/stdin, so things don't get confused
7694         
7695         * bus/system.conf.in: fix to allow replies, I modified .conf
7696         instead of .conf.in again.
7697
7698 2003-10-14  David Zeuthen  <david@fubar.dk>
7699
7700         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7701         argtype to arg_type when raising unknown arg type exception.
7702         Changed type list to reflect the changes in dbus-protocol.h so 
7703         the bindings actually work.
7704
7705 2003-10-14  Havoc Pennington  <hp@redhat.com>
7706
7707         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7708         to have a bug keeping it from outputting the .da files sometimes
7709         (string_get_string): don't append garbage nul bytes to the string.
7710
7711 2003-10-15  Seth Nickell  <seth@gnome.org>
7712
7713         * python/Makefile.am:
7714
7715         Include dbus_h_wrapper.h in the dist tarball.
7716
7717 2003-10-14  Havoc Pennington  <hp@redhat.com>
7718
7719         * bus/bus.c (bus_context_check_security_policy): revamp this to
7720         work more sanely with new policy-based requested reply setup
7721
7722         * bus/connection.c (bus_transaction_send_from_driver): set bus
7723         driver messages as no reply
7724
7725         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7726         requested_reply attribute on allow/deny rules
7727
7728         * bus/system.conf: add <allow requested_reply="true"/>
7729
7730         * bus/driver.c (bus_driver_handle_message): fix check for replies
7731         sent to the bus driver, which was backward. How did this ever work
7732         at all though? I think I'm missing something.
7733
7734         * dbus/dbus-message.c (decode_header_data): require error and
7735         method return messages to have a reply serial field to be valid
7736         (_dbus_message_loader_queue_messages): break up this function;
7737         validate that reply serial and plain serial are nonzero; 
7738         clean up the OOM/error handling.
7739         (get_uint_field): don't return -1 from this
7740         (dbus_message_create_header): fix signed/unsigned bug
7741
7742         * bus/connection.c (bus_connections_expect_reply): save serial of
7743         the incoming message, not reply serial
7744
7745 2003-10-14  Havoc Pennington  <hp@redhat.com>
7746
7747         * bus/connection.c: implement pending reply tracking using
7748         BusExpireList
7749
7750         * bus/bus.c (bus_context_check_security_policy): verify that a
7751         reply is pending in order to allow a reply to be sent. Deny 
7752         messages of unknown type.
7753
7754         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7755
7756         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7757         (bus_context_get_reply_timeout): new
7758
7759 2003-10-13  Seth Nickell  <seth@gnome.org>
7760
7761         * python/Makefile.am:
7762
7763         Pass "make distcheck": remove a couple files from DIST_FILES
7764         that weren't included in the final version.
7765
7766 2003-10-12  Havoc Pennington  <hp@pobox.com>
7767
7768         Added test code that 1) starts an actual bus daemon and 2) uses
7769         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7770         more testing possible, but this is the basic framework.
7771         
7772         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7773         empty proxy lists from the proxy list hash
7774
7775         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7776         couple of return_if_fail checks
7777
7778         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7779         to allocate, so everything is cleared to NULL as it should be.
7780
7781         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7782         source as data to dbus_connection_set_timeout_functions() as the 
7783         timeout functions expected
7784
7785         * test/glib/run-test.sh: add a little script to start up a message
7786         bus and run tests using it
7787
7788         * tools/dbus-launch.1: updates
7789
7790         * tools/dbus-launch.c (main): add --config-file option
7791
7792         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7793         that could never be reached.
7794
7795         * dbus/dbus-message.c (dbus_message_new_method_return) 
7796         (dbus_message_new_error, dbus_message_new_signal): set the
7797         no-reply-expected flag on all these. Redundant, but may
7798         as well be consistent.
7799
7800 2003-10-11  Havoc Pennington  <hp@pobox.com>
7801
7802         * test/decode-gcov.c (function_solve_graph): make broken block
7803         graph a nonfatal error since it seems to be broken. Need to debug
7804         this.
7805
7806         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7807         can't just check type > INVALID < LAST anymore
7808
7809         * dbus/dbus-message.c (dbus_message_get_signature): new function
7810         (dbus_message_has_signature): new function
7811         (struct DBusMessage): add signature field (right now it isn't sent
7812         over the wire, just generated on the fly)
7813         (dbus_message_copy): copy the signature, and init strings to
7814         proper length to avoid some reallocs
7815         (dbus_message_iter_init_array_iterator): return void, since it
7816         can't fail
7817         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7818         (_dbus_message_loader_queue_messages): add silly temporary hack to
7819         fill in message->signature on load
7820
7821         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7822         characters, so they are relatively human-readable.
7823
7824 2003-10-11  Havoc Pennington  <hp@pobox.com>
7825
7826         * dbus/dbus-message.c (_dbus_message_test): add more test
7827         coverage, but #if 0 for now since they uncover a bug 
7828         not fixed yet; I think in re_align_field_recurse()
7829         (re_align_field_recurse): add FIXME about broken assertion
7830
7831         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7832
7833         * bus/connection.c: share a couple code bits with expirelist.c
7834
7835         * bus/expirelist.h, bus/expirelist.c: implement a generic
7836         expire-items-after-N-seconds facility, was going to share between
7837         expiring connections and replies, decided not to use for expiring
7838         connections for now.
7839
7840         * COPYING: include AFL 2.0 (still need to change all the file headers)
7841
7842 2003-10-09  Havoc Pennington  <hp@redhat.com>
7843
7844         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7845         gcc 3.3. Not that we do anything about it yet.
7846
7847         * bus/signals.c (bus_match_rule_parse): impose max length on the
7848         match rule text
7849
7850         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7851
7852 2003-10-09  Havoc Pennington  <hp@redhat.com>
7853
7854         Make matching rules theoretically work (add parser).
7855         
7856         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7857         the case where destination is explicitly specified as bus driver
7858         and someone else is eavesdropping.
7859         
7860         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7861         definition of eavesdropping and assertion
7862
7863         * tools/dbus-send.c (main): use dbus_message_type_from_string
7864
7865         * bus/signals.c (bus_match_rule_parse): implement
7866
7867         * dbus/dbus-message.c (dbus_message_type_from_string): new
7868
7869         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7870
7871 2003-10-02  Havoc Pennington  <hp@pobox.com>
7872
7873         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7874         dbus_gproxy_oneway_call
7875
7876         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7877         (dbus_server_setup_with_g_main): fix to allow calling them more
7878         than once on the same args
7879         (dbus_bus_get_with_g_main): new function
7880
7881 2003-10-02  Havoc Pennington  <hp@redhat.com>
7882
7883         * doc/dbus-tutorial.xml: write some stuff
7884
7885 2003-09-29  Havoc Pennington  <hp@pobox.com>
7886
7887         * configure.in: split checks for Doxygen from XML docs, check for
7888         xmlto
7889
7890         * doc/Makefile.am: XML-ify all the docs, and add a blank
7891         dbus-tutorial.xml
7892
7893 2003-09-29  Havoc Pennington  <hp@pobox.com>
7894
7895         * Merge dbus-object-names branch. To see the entire patch 
7896         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7897         it's huuuuge though.
7898         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7899         
7900 2003-09-28  Havoc Pennington  <hp@pobox.com>
7901
7902         * HACKING: update to reflect new server
7903
7904 2003-09-26  Seth Nickell  <seth@gnome.org>
7905
7906         * python/dbus.py:
7907         * python/examples/example-signals.py:
7908
7909         Start implementing some notions of signals. The API
7910         is really terrible, but they sort of work (with the
7911         exception of being able to filter by service, and to
7912         transmit signals *as* a particular service). Need to
7913         figure out how to make messages come from the service
7914         we registered :-(
7915         
7916         * python/dbus_bindings.pyx.in:
7917
7918         Removed duplicate message_handler callbacks.
7919         
7920 2003-09-25  Havoc Pennington  <hp@redhat.com>
7921
7922         * bus/session.conf.in: fix my mess
7923
7924 2003-09-25  Havoc Pennington  <hp@pobox.com>
7925
7926         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7927
7928 2003-09-25  Seth Nickell  <seth@gnome.org>
7929
7930         * python/examples/example-service.py:
7931
7932         Johan notices complete wrong code in example-service, but
7933         completely wrong in a way that works exactly the same (!).
7934         Johan is confused, how could this possibly work? Example
7935         code fails to serve purpose of making things clear.
7936         Seth fixes.
7937
7938 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7939
7940         * doc/dbus-specification.sgml: don't require header fields
7941         to be 4-byte aligned and specify that fields should be
7942         distinguished from padding by the fact that zero is not
7943         a valid field name.
7944         
7945         * doc/TODO: remove re-alignment item and add item to doc
7946         the OBJECT_PATH type.
7947         
7948         * dbus/dbus-message.c:
7949         (HeaderField): rename the original member to value_offset
7950         and introduce a name_offset member to keep track of where
7951         the field actually begins.
7952         (adjust_field_offsets): remove.
7953         (append_int_field), (append_uint_field),
7954         (append_string_field): don't align the start of the header
7955         field to a 4-byte boundary.
7956         (get_next_field): impl finding the next marhsalled field
7957         after a given field.
7958         (re_align_field_recurse): impl re-aligning a number of
7959         already marshalled fields.
7960         (delete_field): impl deleting a field of any type and
7961         re-aligning any following fields.
7962         (delete_int_or_uint_field), (delete_string_field): remove.
7963         (set_int_field), (set_uint_field): no need to re-check
7964         that we have the correct type for the field.
7965         (set_string_field): ditto and impl re-aligning any
7966         following fields.
7967         (decode_header_data): update to take into account that
7968         the fields aren't 4-byte aligned any more and the new
7969         way to distinguish padding from header fields. Also,
7970         don't exit when there is too much header padding.
7971         (process_test_subdir): print the directory.
7972         (_dbus_message_test): add test to make sure a following
7973         field is re-aligned correctly after field deletion.
7974         
7975         * dbus/dbus-string.[ch]:
7976         (_dbus_string_insert_bytes): rename from insert_byte and
7977         allow the insert of multiple bytes.
7978         (_dbus_string_test): test inserting multiple bytes.
7979
7980         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7981         warning note to docs about having to re-align any
7982         marshalled values following the string.
7983         
7984         * dbus/dbus-message-builder.c:
7985         (append_string_field), (_dbus_message_data_load):
7986         don't align the header field.
7987         
7988         * dbus/dbus-auth.c: (process_test_subdir): print the
7989         directory.
7990         
7991         * test/break-loader.c: (randomly_add_one_byte): upd. for
7992         insert_byte change.
7993         
7994         * test/data/invalid-messages/bad-header-field-alignment.message:
7995         new test case.
7996         
7997         * test/data/valid-messages/unknown-header-field.message: shove
7998         a dict in the unknown field.
7999
8000 2003-09-25  Seth Nickell  <seth@gnome.org>
8001
8002         * python/dbus.py:
8003         * python/dbus_bindings.pyx.in:
8004
8005         Handle return values.
8006         
8007         * python/examples/example-client.py:
8008         * python/examples/example-service.py:
8009
8010         Pass back return values from the service to the client.
8011         
8012 2003-09-24  Seth Nickell  <seth@gnome.org>
8013
8014         * python/dbus.py:
8015
8016         Connect Object methods (when you are sharing an object) up... pass
8017         in a list of methods to be shared. Sharing all the methods just
8018         worked out too weird. You can now create nice Services over the
8019         DBus in Python. :-)
8020         
8021         * python/dbus_bindings.pyx.in:
8022
8023         Keep references to user_data tuples passed into C functions so 
8024         Python doesn't garbage collect on us.
8025
8026         Implement MethodReturn and Error subclasses of Message for creating
8027         DBusMessage's of those types.
8028         
8029         * python/examples/example-client.py:
8030         * python/examples/example-service.py:
8031
8032         Simple example code showing both how create DBus services and objects,
8033         and how to use them.
8034
8035 2003-09-23  Havoc Pennington  <hp@pobox.com>
8036
8037         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8038
8039 2003-09-23  Havoc Pennington  <hp@redhat.com>
8040
8041         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8042         (dbus_gproxy_disconnect_signal): implement
8043         (dbus_gproxy_manager_remove_signal_match): implement
8044         (dbus_gproxy_manager_add_signal_match): implement
8045         (dbus_gproxy_oneway_call): implement
8046
8047 2003-09-23  Havoc Pennington  <hp@pobox.com>
8048
8049         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8050         subclass. This means dropping the transparent thread safety of the
8051         proxy; you now need a separate proxy per-thread, or your own
8052         locking on the proxy. Probably right anyway.
8053         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8054
8055 2003-09-22  Havoc Pennington  <hp@redhat.com>
8056
8057         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8058
8059 2003-09-21  Seth Nickell  <seth@gnome.org>
8060
8061         First checkin of the Python bindings.
8062         
8063         * python/.cvsignore:
8064         * python/Makefile.am:
8065         * python/dbus_bindings.pyx.in:
8066         * python/dbus_h_wrapper.h:
8067
8068         Pieces for Pyrex to operate on, building a dbus_bindings.so
8069         python module for low-level access to the DBus APIs.
8070         
8071         * python/dbus.py:
8072
8073         High-level Python module for accessing DBus objects.
8074
8075         * configure.in:
8076         * Makefile.am:
8077
8078         Build stuff for the python bindings.
8079
8080         * acinclude.m4:
8081
8082         Extra macro needed for finding the Python C header files.
8083
8084 2003-09-21  Havoc Pennington  <hp@pobox.com>
8085
8086         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8087         implementing the proxy manager, didn't get very far.
8088
8089         * dbus/dbus-bus.c (dbus_bus_add_match): new
8090         (dbus_bus_remove_match): new
8091
8092         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8093         path_name argument; adjust the other not-yet-implemented 
8094         gproxy constructors to be what I think they should be.
8095
8096 2003-09-21  Havoc Pennington  <hp@pobox.com>
8097
8098         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8099         by default for message bus connections.
8100
8101         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8102         exit_on_disconnect flag is set and we process the disconnected
8103         signal.
8104         (dbus_connection_set_exit_on_disconnect): new function
8105
8106 2003-09-21  Havoc Pennington  <hp@pobox.com>
8107
8108         Get matching rules mostly working in the bus; only actually
8109         parsing the rule text remains. However, the client side of
8110         "signal connections" hasn't been started, this patch is only the
8111         bus side.
8112         
8113         * dbus/dispatch.c: fix for the matching rules changes
8114         
8115         * bus/driver.c (bus_driver_handle_remove_match)
8116         (bus_driver_handle_add_match): send an ack reply from these
8117         method calls
8118
8119         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8120         arguments, reported by Seth Nickell
8121
8122         * bus/config-parser.c (append_rule_from_element): support
8123         eavesdrop=true|false attribute on policies so match rules 
8124         can be prevented from snooping on the system bus.
8125
8126         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8127         and "destination" in attribute names; fix some docs bugs; 
8128         add eavesdrop=true|false attribute
8129
8130         * bus/driver.c (bus_driver_handle_add_match)
8131         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8132         messages
8133
8134         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8135         rid of broadcast service concept, signals are just always broadcast
8136
8137         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8138         mostly implement matching rules stuff (currently only exposed as signal
8139         connections)
8140
8141 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8142
8143         * doc/dbus-specification.sgml: Change the header field name
8144         to be an enum and update the rest of the spec to reference
8145         the fields using the conventinal name.
8146
8147         * dbus/dbus-protocol.h: update to reflect the spec.
8148
8149         * doc/TODO: add item to remove the 4 byte alignment requirement.
8150         
8151         * dbus/dbus-message.c: Remove the code to generalise the
8152         header/body length and serial number header fields as named
8153         header fields so we can reference field names using the 
8154         protocol values.
8155         (append_int_field), (append_uint_field), (append_string_field):
8156         Append the field name as a byte rather than four chars.
8157         (delete_int_or_uint_field), (delete_string_field): reflect the
8158         fact that the field name and typecode now occupy 4 bytes instead
8159         of 8.
8160         (decode_string_field), (decode_header_data): update to reflect
8161         protocol changes and move the field specific encoding from
8162         decode_string_field() back into decode_header_data().
8163         
8164         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8165         Add utility to aid debugging.
8166         
8167         * dbus/dbus-message-builder.c:
8168         (append_string_field), (_dbus_message_data_load): Update to
8169         reflect protocol changes; Change the FIELD_NAME directive
8170         to HEADER_FIELD and allow it to take the field's conventional
8171         name rather than the actual value.
8172         
8173         * test/data/*/*.message: Update to use HEADER_FIELD instead
8174         of FIELD_NAME; Always align the header on an 8 byte boundary
8175         *before* updating the header length.
8176
8177 2003-09-15  Havoc Pennington  <hp@pobox.com>
8178
8179         * dbus/dbus-pending-call.c: add the get/set object data
8180         boilerplate as for DBusConnection, etc. Use generic object data
8181         for the notify callback.
8182
8183         * glib/dbus-gparser.c (parse_node): parse child nodes
8184
8185         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8186         
8187         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8188         contain functions shared between the convenience lib and the
8189         installed lib
8190
8191         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8192         -export-symbols-regex to the GLib library
8193
8194         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8195         fix the locking in here, and add a default handler for
8196         Introspect() that just returns sub-nodes.
8197
8198 2003-09-14  Havoc Pennington  <hp@pobox.com>
8199
8200         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8201         rather than gfoo consistent
8202
8203         * glib/dbus-gproxy.h: delete for now, move contents to
8204         dbus-glib.h, because the include files don't work right since we
8205         aren't in the dbus/ subdir.
8206         
8207         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8208         (dbus_gproxy_end_call): finish
8209         (dbus_gproxy_begin_call): finish
8210
8211         * glib/dbus-gmain.c (dbus_set_g_error): new
8212
8213         * glib/dbus-gobject.c (handle_introspect): include information
8214         about child nodes in the introspection
8215
8216         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8217         function to help in implementation of introspection
8218
8219         * dbus/dbus-object-tree.c
8220         (_dbus_object_tree_list_registered_and_unlock): new function
8221
8222 2003-09-12  Havoc Pennington  <hp@pobox.com>
8223
8224         * glib/dbus-gidl.h: add common base class for all the foo_info
8225         types
8226
8227         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8228         similar to kdcop
8229
8230         * test/Makefile.am: try test srcdir -ef . in addition to test
8231         srcdir = ., one of them should work (yeah lame)
8232         
8233         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8234         library
8235         
8236         * glib/dbus-gparser.h: make description_load routines return
8237         NodeInfo* not Parser*
8238
8239         * Makefile.am (SUBDIRS): build test dir after all library dirs
8240
8241         * configure.in: add GTK+ detection
8242
8243 2003-09-07  Havoc Pennington  <hp@pobox.com>
8244
8245         * Make Doxygen contented.
8246
8247 2003-09-07  Havoc Pennington  <hp@pobox.com>
8248
8249         * doc/dbus-specification.sgml: more updates
8250
8251 2003-09-06  Havoc Pennington  <hp@pobox.com>
8252
8253         * doc/dbus-specification.sgml: partial updates
8254
8255         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8256         zillionth time; hopefully I edited the right file this time.
8257
8258         * bus/config-parser.c (append_rule_from_element): support
8259         send_type, send_path, receive_type, receive_path
8260
8261         * bus/policy.c: add message type and path to the list of things
8262         that can be "firewalled"
8263
8264 2003-09-06  Havoc Pennington  <hp@pobox.com>
8265
8266         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8267         (dbus_connection_register_object_path): make this not handle
8268         messages to paths below the given path
8269
8270 2003-09-03  Havoc Pennington  <hp@pobox.com>
8271
8272         * test/glib/Makefile.am: add this with random glib-linked test
8273         programs
8274
8275         * glib/Makefile.am: remove the random test programs from here,
8276         leave only the unit tests
8277
8278         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8279         uscore/javacaps conversion, and fix     
8280         (get_object_property, set_object_property): change to .NET
8281         convention for mapping props to methods, set_FooBar/get_FooBar, 
8282         since one language has such a convention we may as well copy it. 
8283         Plus real methods in either getFooBar or get_foo_bar style won't 
8284         collide with this convention.
8285
8286 2003-09-01  Havoc Pennington  <hp@pobox.com>
8287
8288         * glib/dbus-gparser.c: implement
8289
8290         * glib/dbus-gobject.c: start implementing skeletons support
8291
8292         * configure.in: when disabling checks/assert, also define
8293         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8294
8295 2003-09-01  Havoc Pennington  <hp@pobox.com>
8296
8297         * glib/Makefile.am: rearrange a bunch of files and get "make
8298         check" framework set up
8299
8300 2003-08-31  Havoc Pennington  <hp@pobox.com>
8301
8302         * fix build with --disable-tests
8303
8304 2003-08-30  Havoc Pennington  <hp@pobox.com>
8305
8306         * dbus/dbus-connection.c: purge DBusMessageHandler
8307
8308         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8309         use callbacks everywhere
8310
8311 2003-08-30  Havoc Pennington  <hp@pobox.com>
8312
8313         * test/data/valid-config-files/system.d/test.conf: change to 
8314         root for the user so warnings don't get printed
8315
8316         * dbus/dbus-message.c: add dbus_message_get_path,
8317         dbus_message_set_path
8318         
8319         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8320         dispatching to a path
8321
8322         * dbus/dbus-string.c (_dbus_string_validate_path): add
8323
8324         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8325         (_dbus_marshal_object_path): implement
8326
8327         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8328         to contain the path to the target object
8329         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8330         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8331
8332 2003-08-30  Havoc Pennington  <hp@pobox.com>
8333
8334         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8335
8336 2003-08-29  Havoc Pennington  <hp@pobox.com>
8337
8338         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8339         registered
8340         (struct DBusObjectSubtree): shrink this
8341         a lot, since we may have a lot of them
8342         (_dbus_object_tree_free_all_unlocked): implement
8343         (_dbus_object_tree_dispatch_and_unlock): implement
8344
8345 2003-08-29  Havoc Pennington  <hp@pobox.com>
8346
8347         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8348
8349 2003-08-28  Havoc Pennington  <hp@pobox.com>
8350
8351         purge DBusObjectID
8352         
8353         * dbus/dbus-connection.c: port to no ObjectID, create a
8354         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8355
8356         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8357         everything except UnregisterFunction and MessageFunction
8358         
8359         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8360         add DBUS_TYPE_OBJECT_PATH
8361         
8362         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8363         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8364         path-based object IDs
8365
8366 2003-08-25  Havoc Pennington  <hp@pobox.com>
8367
8368         Just noticed that dbus_message_test is hosed, I wonder when I
8369         broke that. I thought make check was passing earlier...
8370         
8371         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8372         container tree, will replace most of dbus-object-registry
8373
8374         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8375         screwup
8376
8377 2003-08-19  Havoc Pennington  <hp@pobox.com>
8378
8379         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8380         (dbus_message_is_error): fix this function
8381
8382         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8383         match
8384
8385         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8386         reflect clarified man page
8387         (bus_client_policy_check_can_send): ditto
8388         
8389         * bus/session.conf.in: fixup
8390
8391         * bus/system.conf.in: fixup
8392
8393 2003-08-18  Havoc Pennington  <hp@redhat.com>
8394
8395         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8396
8397         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8398         dumb bug created earlier (wrong order of args to
8399         decode_header_data())
8400         
8401         * tools/dbus-send.c: port
8402
8403         * tools/dbus-print-message.c (print_message): port
8404
8405         * test/data/*messages: port all messages over
8406         
8407         * dbus/dbus-message-builder.c: support including 
8408         message type
8409         
8410         * bus/driver.c: port over
8411         
8412         * bus/dispatch.c: port over to new stuff
8413
8414         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8415         rename disconnect signal to "Disconnected"
8416
8417 2003-08-17  Havoc Pennington  <hp@pobox.com>
8418
8419         This doesn't compile yet, but syncing up so I can hack on it from
8420         work. What are branches for if not broken code? ;-)
8421         
8422         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8423         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8424         DBUS_HEADER_FIELD_ERROR_NAME
8425         
8426         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8427         for the interface+member pairs
8428         (string_hash): change to use g_str_hash algorithm
8429         (find_direct_function, find_string_function): refactor these to
8430         share most code.
8431         
8432         * dbus/dbus-message.c: port all of this over to support 
8433         interface/member fields instead of name field
8434
8435         * dbus/dbus-object-registry.c: port over
8436         
8437         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8438         from _dbus_string_validate_name
8439
8440         * bus/dbus-daemon-1.1: change file format for the 
8441         <deny>/<allow> stuff to match new message naming scheme
8442
8443         * bus/policy.c: port over
8444
8445         * bus/config-parser.c: parse new format
8446         
8447 2003-08-16  Havoc Pennington  <hp@pobox.com>
8448
8449         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8450         broken assertion
8451
8452         * glib/dbus-gproxy.c: some hacking
8453
8454 2003-08-15  Havoc Pennington  <hp@redhat.com>
8455
8456         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8457
8458         * dbus/dbus-connection.c
8459         (dbus_connection_send_with_reply_and_block): factor out internals;
8460         change to convert any error replies to DBusError instead of 
8461         returning them as a message
8462
8463 2003-08-15  Havoc Pennington  <hp@pobox.com>
8464
8465         * dbus/dbus-connection.c, 
8466         dbus/dbus-pending-call.c: Finish the pending call stuff
8467
8468 2003-08-14  Havoc Pennington  <hp@redhat.com>
8469
8470         * dbus/dbus-pending-call.c: start on new object that will replace
8471         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8472         replies
8473
8474         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8475         with remote interfaces
8476
8477         * dbus/dbus-gidl.c: do the boring boilerplate in here
8478         
8479 2003-08-12  Havoc Pennington  <hp@pobox.com>
8480
8481         * bus/dispatch.c (bus_dispatch): make this return proper 
8482         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8483
8484         * dbus/dbus-errors.c (dbus_set_error): use
8485         _dbus_string_append_printf_valist
8486
8487         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8488         (_dbus_string_append_printf): new
8489
8490         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8491         UNKNOWN_METHOD
8492
8493         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8494         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8495         message is unhandled.
8496
8497 2003-08-11  Havoc Pennington  <hp@pobox.com>
8498
8499         * bus/test.c (client_disconnect_handler): change to return
8500         HANDLED (would have been REMOVE_MESSAGE)
8501
8502         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8503         HANDLED/NOT_YET_HANDLED instead of
8504         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8505         should be used.
8506
8507 2003-08-10  Havoc Pennington  <hp@pobox.com>
8508
8509         * tools/dbus-send.c (main): add --type argument, for now
8510         supporting only method_call and signal types.
8511
8512         * tools/dbus-print-message.c: print message type
8513
8514         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8515         init connection->objects
8516
8517         * doc/dbus-specification.sgml: fix sgml
8518
8519         * bus/*.c: port over to object-instance API changes
8520
8521         * test/test-service.c: ditto
8522         
8523         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8524         name, we will have to fix up the rest of the code to also handle
8525         this
8526         (dbus_message_new): generic message-creation call
8527         (set_string_field): allow appending name field
8528
8529 2003-08-06  Havoc Pennington  <hp@pobox.com>
8530
8531         * dbus/dbus-object-registry.c: implement signal connection 
8532         and dispatch
8533
8534         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8535
8536         * dbus/dbus-internals.c (_dbus_memdup): new function
8537
8538 2003-08-02  Havoc Pennington  <hp@pobox.com>
8539
8540         * dbus/dbus-message.c (dbus_message_get_no_reply)
8541         (dbus_message_set_no_reply): add these and remove
8542         set_is_error/get_is_error
8543
8544         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8545         remove the ERROR flag, since there's now an ERROR type
8546
8547 2003-08-01  Havoc Pennington  <hp@pobox.com>
8548
8549         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8550         implement
8551
8552         * dbus/dbus-message.c (dbus_message_get_type): new function
8553
8554         * doc/dbus-specification.sgml: add "type" byte to messages
8555
8556 2003-08-01  Havoc Pennington  <hp@pobox.com>
8557
8558         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8559         a message type enum to distinguish kinds of message
8560         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8561         that need not be replied to
8562
8563 2003-08-01  Havoc Pennington  <hp@pobox.com>
8564
8565         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8566         (unpack_8_octets): fix no-64-bit-int bug
8567
8568         * dbus/dbus-object-registry.c (validate_id): validate the 
8569         connection ID bits, not just the instance ID.
8570
8571         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8572         the connection-global 33 bits of the object ID
8573
8574         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8575         object ID in the new way
8576
8577         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8578         define server/client/instance bits.
8579
8580 2003-07-30  Havoc Pennington  <hp@pobox.com>
8581
8582         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8583         build
8584
8585 2003-07-13  Havoc Pennington  <hp@pobox.com>
8586
8587         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8588         fields to DBusObjectVTable and DBusObjectInfo
8589
8590 2003-07-12  Havoc Pennington  <hp@pobox.com>
8591
8592         * dbus/dbus-object-registry.c: implement unit test,
8593         fix bugs discovered in process
8594
8595         * dbus/dbus-connection.c: remove handler_table and
8596         register_handler(), add DBusObjectRegistry usage
8597
8598         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8599         (dbus_object_id_set_null): new functions
8600
8601 2003-07-08  Havoc Pennington  <hp@pobox.com>
8602
8603         * dbus/dbus-object.c: implement some of this
8604
8605         * dbus/dbus-object-registry.c
8606         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8607         param
8608         (_dbus_object_registry_new): handle OOM
8609
8610 2003-07-08  Havoc Pennington  <hp@pobox.com>
8611
8612         * dbus/dbus-object.h: sketch out an API for registering objects
8613         with a connection, that allows us to use as little as 24 bytes
8614         per object and lets application code represent an object in 
8615         any conceivable way.
8616
8617         * dbus/dbus-object-registry.c: implement the hard bits of the
8618         DBusConnection aspect of object API. Not yet wired up.
8619         
8620 2003-07-06  Havoc Pennington  <hp@pobox.com>
8621
8622         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8623         (_dbus_marshal_object_id): new
8624         (_dbus_demarshal_object_id): new
8625         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8626         consolidate identical switch cases. Don't conditionalize handling
8627         of DBUS_TYPE_UINT64, need to handle the type always.
8628         (_dbus_marshal_validate_arg): consolidate identical cases, and
8629         handle DBUS_TYPE_OBJECT_ID
8630
8631         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8632
8633         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8634
8635 2003-09-28  Havoc Pennington  <hp@pobox.com>
8636
8637         * real 0.13 release
8638
8639 2003-09-28  Havoc Pennington  <hp@pobox.com>
8640
8641         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8642         to work with Debian db2html
8643
8644 2003-09-28  Havoc Pennington  <hp@pobox.com>
8645
8646         * configure.in: 0.13
8647
8648         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8649         stylesheet-images for benefit of Debian
8650         
8651         Change back to using filesystem-linked sockets for the system
8652         bus, so only root can create the default system bus address.
8653         
8654         * bus/system.conf.in: change to use
8655         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8656
8657         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8658         from here.
8659
8660         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8661         here, and AC_DEFINE DBUS_SYSTEM_PATH
8662
8663 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8664
8665         * doc/TODO:
8666         * doc/busconfig.dtd:
8667         Add busconfig DTD.
8668         
8669 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8670
8671         * doc/dbus-specification.sgml:
8672         Add activation reply values.
8673         
8674 2003-08-05  Havoc Pennington  <hp@redhat.com>
8675
8676         * configure.in: 0.12
8677
8678 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8679
8680         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8681         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8682         (add_watch), (remove_watch), (create_source):
8683         Refcount fds, fixes some reentrancy issues.
8684         
8685 2003-07-30  Havoc Pennington  <hp@redhat.com>
8686
8687         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8688         bus address to be abstract if we have abstract sockets
8689
8690         * NEWS: update
8691
8692 2003-07-28  Havoc Pennington  <hp@redhat.com>
8693
8694         * bus/messagebus.in: fix to avoid processname/servicename 
8695         confusion, from Michael Kearey
8696         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8697         
8698 2003-07-23  Havoc Pennington  <hp@pobox.com>
8699
8700         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8701         fix from Andy Hanton to remove broken "+1"
8702
8703 2003-07-16  Havoc Pennington  <hp@pobox.com>
8704
8705         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8706         babysitter process, as suggested by Thomas Leonard, so 
8707         an "eval `dbus-launch --exit-with-session`" will actually 
8708         return
8709
8710 2003-07-16  Havoc Pennington  <hp@pobox.com>
8711
8712         * configure.in: print out EXPANDED_* variables in the summary at
8713         the end; clean up the code that computes EXPANDED_ variables and
8714         get the ones using exec_prefix right. Should make things work
8715         when you build without --prefix
8716
8717 2003-06-29  Havoc Pennington  <hp@pobox.com>
8718
8719         * mono/Test.cs (class Test): fire up a main loop and run it
8720
8721         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8722         done once, the app has to do it
8723
8724 2003-06-26  Havoc Pennington  <hp@pobox.com>
8725
8726         * mono/Connection.cs: set up connection with the glib main loop
8727
8728 2003-07-01  Havoc Pennington  <hp@redhat.com>
8729
8730         * doc/dbus-specification.sgml: clarify the format of a type code,
8731         change suggested by Jim Blandy
8732
8733 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8734
8735         * doc/Makefile.am:
8736         * tools/Makefile.am: Don't assume srcdir == builddir.
8737
8738         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8739         the allocated block.
8740         (_dbus_memory_test): New function.
8741         * dbus/dbus-test.h: Add _dbus_memory_test ().
8742         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8743
8744         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8745         of %c%c%c%c.
8746         (dbus_message_new): Remove obsolete @todo.
8747
8748         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8749         (_dbus_marshal_set_uint64): Fix comment.
8750
8751         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8752         hardcode FIELD_REPLY_SERIAL.
8753
8754         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8755         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8756
8757         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8758         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8759
8760 2003-06-24  Havoc Pennington  <hp@pobox.com>
8761
8762         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8763
8764 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8765
8766         * configure.in:
8767         * gcj/.cvsignore:
8768         * gcj/Hello.java:
8769         * gcj/Makefile.am:
8770         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8771         * gcj/org/.cvsignore:
8772         * gcj/org/Makefile.am:
8773         * gcj/org/freedesktop/.cvsignore:
8774         * gcj/org/freedesktop/Makefile.am:
8775         * gcj/org/freedesktop/dbus/.cvsignore:
8776         * gcj/org/freedesktop/dbus/Makefile.am:
8777         * gcj/org/freedesktop/dbus/Message.java: (Message),
8778         (Message.Message):
8779         * gcj/org/freedesktop/dbus/natMessage.cc:
8780         Fix the build system.
8781
8782 2003-06-22  Havoc Pennington  <hp@pobox.com>
8783
8784         * mono/Connection.cs: add more bindings
8785
8786         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8787         more than once.
8788
8789 2003-06-22  Havoc Pennington  <hp@pobox.com>
8790
8791         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8792         Start wrapping more stuff.
8793
8794 2003-06-22  Havoc Pennington  <hp@pobox.com>
8795
8796         * mono/Message.cs: implement Message.Wrap() that ensures we only
8797         have a single C# wrapper per DBusMessage, assuming it works which
8798         it probably doesn't.
8799
8800         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8801         (dbus_message_free_data_slot): new
8802         (dbus_message_set_data): new
8803         (dbus_message_get_data): new
8804
8805 2003-06-22  Havoc Pennington  <hp@pobox.com>
8806
8807         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8808         (_dbus_data_slot_allocator_alloc): rework these to keep a
8809         reference count on each slot and automatically manage a global
8810         slot ID variable passed in by address
8811
8812         * bus/bus.c: convert to new dataslot API
8813
8814         * dbus/dbus-bus.c: convert to new dataslot API
8815
8816         * dbus/dbus-connection.c: convert to new dataslot API
8817
8818         * dbus/dbus-server.c: convert to new dataslot API
8819
8820         * glib/dbus-gmain.c: ditto
8821
8822         * bus/test.c: ditto
8823
8824         * bus/connection.c: ditto
8825
8826 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8827
8828         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8829         after the gcj checks so that the correct configuration tags
8830         will be added to libtool.
8831
8832         * dbus-glib-1.pc.in: No need to specify any includes since
8833         dbus-1.pc.in has those.
8834
8835 2003-06-22  Havoc Pennington  <hp@pobox.com>
8836
8837         * mono/*, gcj/*, configure.in, Makefile.am:
8838         Check in makefiles and subdirs for mono and gcj bindings.
8839         Neither binding actually exists, just trying to get through
8840         all the build and other boring bits.
8841
8842 2003-06-21  Philip Blundell  <philb@gnu.org>
8843
8844         * tools/dbus-monitor.1: Updated.
8845
8846         * tools/dbus-send.1: Likewise.
8847
8848 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8849
8850         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8851         for hangup and error after checking read so we won't discard
8852         pending data if both hangup and read are set.
8853
8854 2003-06-19  Philip Blundell  <philb@gnu.org>
8855
8856         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8857
8858         * tools/dbus-send.c: Accept both --system and --session.
8859
8860         * tools/dbus-monitor.c: Same here.
8861
8862 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8863
8864         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8865         from C++ (Patch by Miloslav Trmac).
8866
8867 2003-06-15  Joe Shaw  <joe@assbarn.com>
8868
8869         * configure.in: Check for socklen_t.
8870
8871         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8872
8873         * test/test-segfault.c: Add #include <sys/time.h>
8874
8875         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8876         dbus-launch needs it.
8877
8878 2003-06-09  Havoc Pennington  <hp@redhat.com>
8879
8880         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8881         SUN_LEN, it breaks abstract socket usage
8882
8883         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8884         starts of lines.
8885
8886 2003-06-04  Havoc Pennington  <hp@pobox.com>
8887
8888         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8889         using unix:abstract=/foo, and when listening in a tmpdir
8890         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8891
8892         * dbus/dbus-transport.c (_dbus_transport_open): support
8893         unix:abstract=/foo
8894
8895         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8896         support abstract sockets
8897
8898         * dbus/dbus-transport-unix.c
8899         (_dbus_transport_new_for_domain_socket): support abstract sockets
8900
8901         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8902         toggle as an argument, implement abstract namespace support
8903         (_dbus_listen_unix_socket): ditto
8904
8905         * configure.in: add --enable-abstract-sockets and implement
8906         a configure check for autodetection of the right value.
8907
8908 2003-06-01  Havoc Pennington  <hp@pobox.com>
8909
8910         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8911         in /tmp (though on Linux this will end up being useless,
8912         when we add abstract namespace support)
8913
8914         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8915         subst'ing it
8916
8917 2003-05-28  Colin Walters  <walters@verbum.org>
8918
8919         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8920
8921 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8922
8923         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8924
8925 2003-05-17  Colin Walters  <walters@gnu.org>
8926
8927         * tools/dbus-send.c: Don't exit with an error code if --help was
8928         passed.  Default to using the session bus instead of the system
8929         one.
8930
8931         * tools/dbus-launch.c: Ditto.
8932
8933         * tools/dbus-monitor.c: Ditto.
8934
8935         * tools/dbus-send.1: Update with new arguments.
8936
8937         * tools/dbus-launch.c: Emit code to export variables.  New
8938         arguments -s and -c to specify shell syntax, and a bit of code to
8939         autodetect syntax.  Also, allow specifying a program to run.
8940
8941         * tools/dbus-launch.1: Update with new arguments.
8942
8943         * tools/dbus-send.1: Ditto.
8944
8945         * tools/dbus-monitor.1: Ditto.
8946
8947 2003-05-17  Havoc Pennington  <hp@pobox.com>
8948
8949         * bus/config-parser.c (merge_included): merge in policies from
8950         child configuration file.
8951
8952         * bus/policy.c (bus_policy_merge): function to merge two policies
8953         together
8954
8955 2003-05-16  Havoc Pennington  <hp@redhat.com>
8956
8957         * dbus/dbus-connection.c: disable verbose lock spew
8958
8959         * tools/dbus-send.c: add --print-reply command line option
8960
8961         * tools/dbus-print-message.h (print_message): new util function
8962         shared by dbus-send and dbus-monitor
8963
8964         * tools/dbus-monitor.c (handler_func): exit on disconnect
8965
8966         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8967         disconnected, don't try to use the read_watch
8968
8969         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8970         so we can find this bug more easily
8971
8972 2003-05-16  Havoc Pennington  <hp@redhat.com>
8973
8974         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8975         NULL as DBusHashTable is annoyingly likely to do.
8976
8977 2003-05-16  Colin Walters  <walters@verbum.org>
8978
8979         * tools/dbus-monitor.c: Add --session argument and usage()
8980         function.
8981
8982         * tools/dbus-monitor.1: Update with new --session arg.
8983
8984         * bus/Makefile.am (install-data-hook): Create
8985         $(libdir)/dbus-1.0/services so that the session bus is happy.
8986
8987 2003-05-15  Havoc Pennington  <hp@redhat.com>
8988
8989         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8990         on non-x86. ifdef's are evil.
8991
8992 2003-05-15  Havoc Pennington  <hp@redhat.com>
8993
8994         * configure.in: 0.11
8995
8996         * NEWS: update
8997
8998         * bus/Makefile.am (initddir): apparently we are supposed to put
8999         init scripts in /etc/rc.d/init.d not /etc/init.d
9000
9001         * bus/Makefile.am: remove the "you must --enable-tests to make
9002         check" as it broke distcheck
9003
9004         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9005
9006 2003-05-13  James Willcox  <jwillcox@gnome.org>
9007
9008         * configure.in:
9009         * bus/activation.c: (bus_activation_service_created),
9010         (bus_activation_activate_service):
9011         * bus/driver.c: (bus_driver_send_service_deleted),
9012         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9013         (bus_driver_send_service_acquired),
9014         (bus_driver_send_welcome_message),
9015         (bus_driver_handle_list_services):
9016         * bus/session.conf.in:
9017         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9018         (dbus_bus_service_exists), (dbus_bus_activate_service):
9019         * dbus/dbus-bus.h:
9020
9021         Add some convenience API which lets you activate a service, and did a
9022         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9023         and dbus_message_get_args()
9024
9025 2003-05-11  Havoc Pennington  <hp@pobox.com>
9026
9027         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9028         calling _dbus_marshal_validate_arg() for every byte in a byte
9029         array, etc.
9030
9031         * dbus/dbus-message-handler.c: use atomic reference counting to
9032         reduce number of locks slightly; the global lock in here sucks
9033
9034         * dbus/dbus-connection.c
9035         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9036         update_dispatch_status that can be called with lock held; then use
9037         in a couple places to reduce locking/unlocking
9038         (dbus_connection_send): hold the lock over the whole function
9039         instead of acquiring it twice.
9040
9041         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9042
9043         * bus/connection.c (bus_connections_setup_connection): fix access
9044         to already-freed memory.
9045
9046         * dbus/dbus-connection.c: keep a little cache of linked list
9047         nodes, to avoid using the global linked list alloc lock in the
9048         normal send-message case. Instead we just use the connection lock
9049         that we already have to take.
9050
9051         * dbus/dbus-list.c (_dbus_list_find_last): new function
9052
9053         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9054         change to use a struct for the atomic type; fix docs,
9055         they return value before increment, not after increment.
9056
9057         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9058         (_dbus_string_append_8_aligned): new functions to try to
9059         microoptimize this operation.
9060         (reallocate_for_length): break this out of set_length(), to
9061         improve profile info, and also so we can consider inlining the
9062         set_length() part.
9063
9064         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9065         strings with some preallocation, cuts down on our calls to realloc
9066         a fair bit. Though if we can get the "move entire string to empty
9067         string" optimization below to kick in here, it would be better.
9068
9069         * dbus/dbus-string.c (_dbus_string_move): just call
9070         _dbus_string_move_len
9071         (_dbus_string_move_len): add a special case for moving
9072         an entire string into an empty string; we can just
9073         swap the string data instead of doing any reallocs.
9074         (_dbus_string_init_preallocated): new function
9075
9076 2003-05-11  Havoc Pennington  <hp@pobox.com>
9077
9078         Write a "test-profile" that does echo client-server with threads;
9079         profile reveals lock contention, memcpy/realloc of buffers, and
9080         UTF-8 validation as hot spots. 20% of lock contention eliminated
9081         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9082         contention is global mempool locks for GList and DBusList.
9083
9084         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9085         x86 implementation
9086
9087         * dbus/dbus-connection.c (struct DBusConnection): use
9088         dbus_atomic_t for the reference count
9089
9090         * dbus/dbus-message.c (struct DBusMessage): declare
9091         dbus_atomic_t values as volatile
9092
9093         * configure.in: code to detect ability to use atomic integer
9094         operations in assembly, from GLib patch
9095
9096         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9097         time, tired of it being wrong in threads and forked processes
9098
9099         * glib/test-profile.c: a little program to bounce messages back
9100         and forth between threads and eat CPU
9101
9102         * dbus/dbus-connection.c: add debug spew macros for debugging
9103         thread locks; include config.h at top; fix deadlock in
9104         dbus_connection_flush()
9105
9106 2003-05-08  Havoc Pennington  <hp@pobox.com>
9107
9108         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9109         data from getting written, and there wasn't a good reason to
9110         use _exit really.
9111
9112         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9113         dbus_verbose lines in test coverage
9114         (main): add list of functions sorted by # of untested blocks
9115         to the coverage report
9116
9117         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9118
9119         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9120
9121         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9122         extend test coverage
9123
9124         * test/data/auth/cancel.auth-script: test canceling an
9125         authentication
9126
9127         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9128         aren't used. in CVS history if we end up needing them.
9129
9130 2003-05-04  Havoc Pennington  <hp@pobox.com>
9131
9132         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9133         unit test
9134
9135         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9136         function, which assumed length was in # of strings, not bytes
9137
9138         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9139         missing coverage
9140
9141         * dbus/dbus-connection.c
9142         (_dbus_connection_queue_received_message): disable function for
9143         now, we are only using it in test mode
9144
9145         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9146         remove a mistaken FIXME
9147
9148 2003-05-04  Havoc Pennington  <hp@pobox.com>
9149
9150         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9151         unlock mutex on successful return, patch from Anders Gustafsson
9152
9153 2003-05-04  Havoc Pennington  <hp@pobox.com>
9154
9155         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9156         Anders Gustafsson
9157
9158 2003-05-04  Havoc Pennington  <hp@pobox.com>
9159
9160         * tools/dbus-launch.c: implement
9161
9162         * bus/main.c (main), bus/bus.c (bus_context_new):
9163         implement --print-pid and --fork
9164
9165 2003-05-03  Havoc Pennington  <hp@redhat.com>
9166
9167         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9168         the address had no value, and add to test suite. Fix and
9169         regression test from Miloslav Trmac
9170
9171 2003-05-03  Havoc Pennington  <hp@pobox.com>
9172
9173         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9174         watch is invalid when handled
9175
9176         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9177         dbus-launch utility to launch the bus from a shell script.  Didn't
9178         actually implement dbus-launch yet, it's just a placeholder still.
9179
9180 2003-05-03  Havoc Pennington  <hp@pobox.com>
9181
9182         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9183         daemon; also documents daemon config file, so replaces
9184         doc/config-file.txt. Corrected some stuff from config-file.txt in
9185         the process of moving it.
9186
9187 2003-05-03  Havoc Pennington  <hp@pobox.com>
9188
9189         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9190         add some man pages
9191
9192 2003-05-03  Colin Walters  <walters@verbum.org>
9193
9194         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9195         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9196
9197         * Makefile.am: Update to use new .pc versioning scheme.
9198
9199 2003-05-02  Havoc Pennington  <hp@redhat.com>
9200
9201         * bus/system.conf.in: allow send/receive to/from message bus
9202         service
9203
9204 2003-04-30  Havoc Pennington  <hp@redhat.com>
9205
9206         * configure.in: print a note when building with unit tests and
9207         without assertions
9208
9209 2003-04-30  Havoc Pennington  <hp@redhat.com>
9210
9211         * Makefile.am: add a check-local that complains if you didn't
9212         configure with --enable-tests
9213
9214 2003-04-29  Havoc Pennington  <hp@redhat.com>
9215
9216         * glib/dbus-gmain.c: docs cleanups
9217
9218         * dbus/dbus-types.h: add docs on int64 types
9219
9220         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9221         public API docs section
9222
9223 2003-04-29  Havoc Pennington  <hp@redhat.com>
9224
9225         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9226         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9227         parallel install API version, not with the D-BUS package version.
9228
9229         * HACKING: move some of README over here
9230
9231         * README: updates, and document API/ABI policy
9232
9233         * configure.in: reindentation
9234
9235 2003-04-29  Havoc Pennington  <hp@redhat.com>
9236
9237         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9238         to use this library" to be sure people have the right
9239         expectations.
9240
9241 2003-04-28  Havoc Pennington  <hp@redhat.com>
9242
9243         * configure.in: add --enable-docs which by default is auto yes if
9244         doxygen and db2html found, no otherwise; but can be forced on/off
9245
9246         * doc/Makefile.am: conditionalize whether to build docs on
9247         --enable-docs
9248
9249 2003-04-28  Havoc Pennington  <hp@redhat.com>
9250
9251         * configure.in: 0.10
9252
9253         * NEWS: update
9254
9255         * bus/system.conf.in: add <includedir>system.d</includedir>
9256
9257         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9258         username was provided but not uid
9259
9260         * bus/config-parser.c (struct BusConfigParser): keep track of
9261         whether the parser is toplevel or was included; change some
9262         of the error handling if it's included.
9263
9264 2003-04-27  Havoc Pennington  <hp@pobox.com>
9265
9266         Unbreak my code...
9267
9268         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9269         report correct status if we finish processing authentication
9270         inside this function.
9271
9272         * bus/activation.c (try_send_activation_failure): use
9273         bus_transaction_send_error_reply
9274
9275         * bus/connection.c (bus_connection_get_groups): return an error
9276         explaining the problem
9277
9278         * bus/bus.c (bus_context_check_security_policy): implement
9279         restriction here that inactive connections can only send the
9280         hello message. Also, allow bus driver to send anything to
9281         any recipient.
9282
9283         * bus/connection.c (bus_connection_complete): create the
9284         BusClientPolicy here instead of on-demand.
9285         (bus_connection_get_policy): don't return an error
9286
9287         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9288         sender field in message being replied to
9289
9290         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9291         causing it to return FALSE always
9292
9293         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9294         we checked sender rather than destination
9295
9296 2003-04-25  Havoc Pennington  <hp@redhat.com>
9297
9298         test suite is slightly hosed at the moment, will fix soon
9299
9300         * bus/connection.c (bus_connections_expire_incomplete): fix to
9301         properly disable the timeout when required
9302         (bus_connection_set_name): check whether we can remove incomplete
9303         connections timeout after we complete each connection.
9304
9305         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9306         probably still broken.
9307
9308         * bus/services.c (bus_registry_acquire_service): implement max
9309         number of services owned, and honor allow/deny rules on which
9310         services a connection can own.
9311
9312         * bus/connection.c (bus_connection_get_policy): report errors here
9313
9314         * bus/activation.c: implement limit on number of pending
9315         activations
9316
9317 2003-04-25  Havoc Pennington  <hp@redhat.com>
9318
9319         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9320         where we used >= 0 instead of != DBUS_UID_UNSET.
9321
9322 2003-04-25  Havoc Pennington  <hp@redhat.com>
9323
9324         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9325         were toggled without add/remove, fix from Anders Gustafsson
9326
9327 2003-04-24  Havoc Pennington  <hp@redhat.com>
9328
9329         * test/data/valid-config-files/basic.conf: add <limit> tags to
9330         this test
9331
9332         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9333         <limit> tag in configuration file.
9334
9335 2003-04-24  Havoc Pennington  <hp@redhat.com>
9336
9337         * bus/dispatch.c: somehow missed some name_is
9338
9339         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9340         (_dbus_timeout_set_interval): new
9341
9342         * bus/connection.c (bus_connections_setup_connection): record time
9343         when each connection is first set up, and expire them after the
9344         auth timeout passes.
9345
9346 2003-04-24  Havoc Pennington  <hp@redhat.com>
9347
9348         * dbus/dbus-message.c (dbus_message_name_is): rename
9349         (dbus_message_service_is): rename
9350         (dbus_message_sender_is): rename
9351         (dbus_message_get_service): rename
9352
9353 2003-04-24  Havoc Pennington  <hp@redhat.com>
9354
9355         * configure.in: add --enable-checks
9356
9357         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9358
9359         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9360         to use thread locks.
9361         (_dbus_connection_handler_destroyed_locked): move some private
9362         functions into proper docs group
9363
9364         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9365         _dbus_return_val_if_fail
9366
9367         Throughout: use dbus_return_if_fail
9368
9369 2003-04-23  James Willcox  <jwillcox@gnome.org>
9370
9371         * glib/dbus-glib.h:
9372         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9373         (dbus_connection_setup_with_g_main),
9374         (dbus_server_setup_with_g_main):
9375         * glib/test-dbus-glib.c: (main):
9376         * glib/test-thread-client.c: (main):
9377         * glib/test-thread-server.c: (new_connection_callback), (main):
9378         * tools/dbus-monitor.c: (main):
9379
9380         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9381         and dbus_server_setup_with_g_main().
9382
9383 2003-04-20  Havoc Pennington  <hp@pobox.com>
9384
9385         * doc/dbus-specification.sgml: document the restrictions on
9386         message and service names
9387
9388 2003-04-22  Havoc Pennington  <hp@redhat.com>
9389
9390         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9391         support, and do some code cleanups to share more code and
9392         speed up array marshal/demarshal.
9393
9394         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9395
9396         * configure.in: generate dbus-arch-deps.h
9397
9398         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9399         64-bit typecodes
9400
9401 2003-04-22  Havoc Pennington  <hp@redhat.com>
9402
9403         * test/data/valid-messages/opposite-endian.message: fix test
9404         to use proper type for rply field
9405
9406         * test/data/invalid-messages: add tests for below validation
9407
9408         * dbus/dbus-message.c (decode_header_data): validate field types,
9409         and validate that named fields are valid names
9410         (decode_name_field): consider messages in the
9411         org.freedesktop.Local. namespace to be invalid.
9412
9413         * dbus/dbus-string.c (_dbus_string_validate_name): new
9414
9415 2003-04-19  Havoc Pennington  <hp@pobox.com>
9416
9417         * bus/driver.c (bus_driver_handle_hello): check limits and
9418         return an error if they are exceeded.
9419
9420         * bus/connection.c: maintain separate lists of active and inactive
9421         connections, and a count of each. Maintain count of completed
9422         connections per user. Implement code to check connection limits.
9423
9424         * dbus/dbus-list.c (_dbus_list_unlink): export
9425
9426         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9427         number of bytes in the message queue for a connection
9428
9429 2003-04-18  Havoc Pennington  <hp@pobox.com>
9430
9431         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9432
9433         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9434         memleaks
9435
9436         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9437         on realloc be sure to update the pointer in the keyring
9438
9439         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9440         offset to avoid writing to unallocated memory
9441
9442         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9443         try the next mechanism, so we properly handle OOM
9444
9445         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9446         on OOM.
9447         (_dbus_keyring_new): fix OOM bug
9448         (_dbus_keyring_new_homedir): always set error; impose a maximum
9449         number of keys we'll load from the file, mostly to speed up the
9450         test suite and make its OOM checks more useful, but also for
9451         general sanity.
9452
9453         * dbus/dbus-auth.c (process_error_server): reject authentication
9454         if we get an error from the client
9455         (process_cancel): on cancel, send REJECTED, per the spec
9456         (process_error_client): send CANCEL if we get an error from the
9457         server.
9458
9459 2003-04-18  Havoc Pennington  <hp@pobox.com>
9460
9461         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9462         debug spew
9463
9464         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9465         handling problem
9466
9467         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9468         about DBUS_TEST_HOMEDIR once
9469
9470         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9471         the environment
9472
9473         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9474         config file so we test the right thing
9475
9476         Throughout: assorted docs improvements
9477
9478 2003-04-18  Havoc Pennington  <hp@pobox.com>
9479
9480         * glib/dbus-gmain.c: adapt to watch changes
9481
9482         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9483
9484         * dbus/dbus-server.h: remove dbus_server_handle_watch
9485
9486         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9487
9488         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9489         like DBusTimeout, so we don't need dbus_connection_handle_watch
9490         etc.
9491
9492 2003-04-17  Havoc Pennington  <hp@redhat.com>
9493
9494         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9495         database usage so it all goes via the DBusUserDatabase cache.
9496
9497 2003-04-17  Havoc Pennington  <hp@redhat.com>
9498
9499         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9500         there was an OOM watch we skipped, we always return TRUE so we
9501         iterate again to have a look at it again. Fixes test suite hang.
9502         Code rearrangement also lets us lose some memset and only iterate
9503         over callbacks once.
9504
9505         * bus/driver.c (bus_driver_handle_message): sense of test for
9506         reply was backward
9507
9508 2003-04-16  Havoc Pennington  <hp@pobox.com>
9509
9510         * doc/dbus-specification.sgml: make spec say serials are unsigned
9511
9512         * dbus/dbus-message.h: change message serials to unsigned
9513
9514         * dbus/dbus-connection.c: adapt to message serials being unsigned
9515
9516 2003-04-15  Havoc Pennington  <hp@pobox.com>
9517
9518         * bus/bus.c: create and keep around a shared DBusUserDatabase
9519         object.
9520
9521         * bus/connection.c (bus_connection_get_groups): don't cache
9522         groups for user in the connection object, since user database
9523         object now does that.
9524
9525 2003-04-16  Havoc Pennington  <hp@redhat.com>
9526
9527         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9528         list of size counters
9529         (_dbus_message_loader_putback_message_link): put back a popped link
9530
9531         * dbus/dbus-connection.c
9532         (dbus_connection_set_max_live_messages_size): rename
9533         max_received_size
9534         (dbus_connection_get_outgoing_size): get size of outgoing
9535         queue
9536         (_dbus_connection_set_connection_counter): remove this cruft
9537
9538 2003-04-14  Havoc Pennington  <hp@redhat.com>
9539
9540         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9541         caching, but at some point we might want to be able to use a
9542         different database.
9543
9544         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9545         SHA1 conf file to test the sha1 auth mechanism, since the regular
9546         test always uses EXTERNAL when available.
9547
9548         * configure.in,
9549         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9550         add conf file that requires use of sha1 auth
9551
9552 2003-04-13  Havoc Pennington  <hp@pobox.com>
9553
9554         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9555         from Philip Blundell to send messages and monitor them.
9556
9557 2003-04-13  Havoc Pennington  <hp@pobox.com>
9558
9559         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9560         callbacks
9561
9562         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9563         users
9564
9565         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9566         fix to only recover unused bytes if we're already authenticated
9567         (_dbus_transport_get_is_authenticated): fix to still mark us
9568         authenticated if there are unused bytes.
9569
9570         * bus/dispatch.c: implement security policy checking
9571
9572         * bus/connection.c (bus_transaction_send_from_driver): new
9573
9574         * bus/bus.c (bus_context_check_security_policy): new
9575
9576         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9577         now we just set the DBusError and it gets converted to an error
9578         reply.
9579
9580         * bus/connection.c (allow_user_function): enable code using actual
9581         data from the config file
9582
9583         * bus/policy.c (list_allows_user): handle wildcard rules for
9584         user/group connection perms
9585
9586 2003-04-13  Havoc Pennington  <hp@pobox.com>
9587
9588         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9589
9590         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9591
9592         * bus/policy.c (bus_policy_append_mandatory_rule)
9593         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9594         (bus_policy_append_group_rule): new functions
9595
9596 2003-04-12  Havoc Pennington  <hp@pobox.com>
9597
9598         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9599
9600         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9601         the pid/gid/uid, just for paranoia.
9602
9603         * test/break-loader.c (randomly_do_n_things): find a byte
9604         containing a type code, and randomly change it to a different
9605         type code.
9606
9607 2003-04-12  Havoc Pennington  <hp@pobox.com>
9608
9609         * bus/policy.h: change BusPolicy to be the thing from the config
9610         file, and rename old BusPolicy to BusClientPolicy
9611
9612         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9613         match change in how policy works
9614
9615         * dbus/dbus-internals.h: mark assert_not_reached as
9616         __attribute((noreturn))__
9617
9618 2003-04-11  Havoc Pennington  <hp@redhat.com>
9619
9620         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9621         the broadcast service. Use boolean return for ServiceExists.
9622
9623 2003-04-11  Havoc Pennington  <hp@redhat.com>
9624
9625         * configure.in: add another directory to look for qt in.
9626
9627 2003-04-11  Havoc Pennington  <hp@redhat.com>
9628
9629         * AUTHORS: add Colin Walters
9630
9631 2003-04-11  Havoc Pennington  <hp@redhat.com>
9632
9633         * NEWS: update
9634
9635         * configure.in: 0.9
9636
9637 2003-04-11  Havoc Pennington  <hp@redhat.com>
9638
9639         * bus/messagebus.in: remove pid file when stopping the
9640         message bus, since the bus won't have privileges to remove it
9641         itself.
9642
9643 2003-04-11  Havoc Pennington  <hp@redhat.com>
9644
9645         * bus/bus.c (bus_context_new): move credentials change after
9646         creating pidfile
9647
9648 2003-04-11  Havoc Pennington  <hp@pobox.com>
9649
9650         * test/decode-gcov.c: add "below average functions" to the
9651         coverage report, and change how some of the code works.
9652
9653         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9654         not in the coverage stats.
9655
9656         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9657         couple places so running the test suite doesn't result in megaspam.
9658
9659 2003-04-11  Havoc Pennington  <hp@pobox.com>
9660
9661         * bus/dispatch.c (check_existent_service_activation): accept a no
9662         memory error in a place we didn't before
9663
9664         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9665         in case the first one failed," since the test suite is less
9666         broken now.
9667
9668 2003-04-10  Havoc Pennington  <hp@pobox.com>
9669
9670         * bus/dispatch.c (check_segfault_service_activation): add test
9671         for launching an executable that just crashes.
9672
9673         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9674         don't leave a million cores. We'll see how portable this is.
9675
9676 2003-04-10  Havoc Pennington  <hp@pobox.com>
9677
9678         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9679         the possible parent failures before we fork, so that we don't
9680         fail to create a babysitter after creating the child.
9681
9682         * bus/activation.c (bus_activation_activate_service): kill child
9683         if we don't successfully complete the activation.
9684
9685 2003-04-10  Havoc Pennington  <hp@redhat.com>
9686
9687         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9688         the connection if it's disconnected
9689
9690         * bus/activation.c (bus_activation_service_created): use new
9691         transaction features to roll back removal of pending activation if
9692         we don't successfully create the service after all. Don't remove
9693         pending activation if the function fails.
9694
9695         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9696         (_dbus_list_insert_after_link): new code to facilitate
9697         services.c fixes
9698
9699         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9700         new functionality, so we can preallocate the ability to insert
9701         into a hash table.
9702
9703         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9704         allowing us to put custom hooks in a transaction to be used for
9705         cancelling said transaction
9706
9707         * doc/dbus-specification.sgml: add some discussion of secondary
9708         service owners, and disallow zero-length service names
9709
9710         * bus/services.c (bus_registry_acquire_service): new function,
9711         splits out part of bus_driver_handle_acquire_service() and fixes
9712         a bug where we didn't remove the service doing the acquiring
9713         from the secondary queue if we failed to remove the current owner
9714         from the front of the queue.
9715
9716 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9717
9718         * doc/dbus-specification.sgml:
9719         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9720
9721 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9722
9723         * bus/.cvsignore:
9724         * glib/.cvsignore:
9725         * test/.cvsignore:
9726         Added files to cvsignore
9727
9728         * dbus/dbus-message.h:
9729         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9730         Make get_named() take two out argument and return a boolean.
9731         (dbus_message_iter_get_args_valist):
9732         Update usage of get_named().
9733         (dbus_message_iter_append_byte):
9734         Fix typo
9735         (dbus_message_iter_append_named)
9736         Fix typo
9737         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9738         More tests.
9739
9740 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9741
9742         * dbus/dbus-marshal.[ch]:
9743         Add array_type_pos argument to _dbus_marshal_validate_arg.
9744         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9745
9746         * dbus/dbus-message.[ch]:
9747         Multi-dimensional arrays have full type specification in the
9748         outermost array. Iter code re-arranged to handle this.
9749         Added some more iter tests.
9750
9751         * doc/dbus-specification.sgml:
9752         Add me to authors.
9753         Remove old FIXME.
9754         Update new array encoding description.
9755         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9756
9757         * test/data/invalid-messages/array-with-mixed-types.message:
9758         * test/data/valid-messages/array-of-array-of-uint32.message:
9759         Change to the new array format.
9760
9761         * test/data/invalid-messages/too-short-dict.message:
9762         Fix bug in test.
9763
9764         * test/data/valid-messages/recursive-types.message:
9765         Fix up and extend test.
9766
9767 2003-04-10  Havoc Pennington  <hp@pobox.com>
9768
9769         * bus/dispatch.c: lots of fixes
9770
9771         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9772         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9773         that was crack, broke the test service.
9774
9775         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9776         handling to avoid piling up errors if we get a failure on the
9777         first address.
9778
9779         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9780         pid in assertion failures.
9781
9782         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9783         to some fixed size of file descriptor array. Don't return TRUE
9784         anytime a timeout exists, that led to lots of busy loop silliness
9785         in the tests.
9786
9787 2003-04-09  Havoc Pennington  <hp@redhat.com>
9788
9789         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9790         I'd checked this in earlier but hadn't.
9791
9792 2003-04-09  Havoc Pennington  <hp@redhat.com>
9793
9794         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9795         the activation test (man this is getting old!)
9796
9797 2003-04-09  Havoc Pennington  <hp@redhat.com>
9798
9799         * test/test-utils.c: use dispatch status function to fix this up
9800
9801         * bus/connection.c (connection_watch_callback): don't dispatch
9802         from here
9803         (connection_timeout_callback): don't dispatch from here
9804         (bus_connections_setup_connection): set the dispatch status function
9805         (bus_connection_disconnected): unset it
9806
9807         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9808         used to add a connection to be dispatched
9809         (_dbus_loop_iterate): do the dispatching at the end of each
9810         iteration
9811
9812         * dbus/dbus-connection.c
9813         (dbus_connection_set_dispatch_status_function): new function
9814         allowing us to fix up main loop usage
9815         (_dbus_connection_last_unref): free all the various function
9816         user data
9817         (dbus_connection_dispatch): call the DispatchStatusFunction
9818         whenever this function returns
9819         (dbus_connection_handle_watch): call DispatchStatusFunction
9820         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9821         (reply_handler_timeout): call DispatchStatusFunction
9822         (dbus_connection_flush): call DispatchStatusFunction
9823
9824 2003-04-09  Havoc Pennington  <hp@redhat.com>
9825
9826         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9827         a memory leak
9828
9829         * bus/dispatch.c (check_service_activated): fix bug in test
9830
9831         * dbus/dbus-mainloop.c (check_timeout): fix this up
9832
9833         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9834         verbose output so we can sort out output from different processes,
9835         e.g. in the activation case.
9836
9837 2003-04-08  Colin Walters  <walters@gnu.org>
9838
9839         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9840         the pid file.
9841         (bus_context_new): Set it.
9842         (bus_context_unref): Use it to delete the pid file.
9843
9844 2003-04-08  Havoc Pennington  <hp@redhat.com>
9845
9846         * test/data/invalid-messages/array-with-mixed-types.message:
9847         regression test that fails for the moment
9848
9849         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9850         tests for convenience
9851
9852         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9853         array of nil, it broke things.
9854
9855         * test/data/invalid-messages/array-of-nil.message: regression test
9856
9857         * test/data/valid-messages/array-of-array-of-uint32.message:
9858         happened to write this so added it to suite
9859
9860 2003-04-08  Havoc Pennington  <hp@redhat.com>
9861
9862         * bus/driver.c (bus_driver_handle_acquire_service): init
9863         retval/reply before checking name
9864
9865         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9866         recursion depth argument
9867
9868         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9869         in the public struct for future extension
9870
9871         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9872         typo
9873
9874         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9875         message
9876
9877         * doc/dbus-specification.sgml: fix typo
9878
9879 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9880
9881         Implemented recursive types, named types and new-style iters
9882
9883         * bus/driver.c:
9884         * glib/test-thread-client.c: (thread_func):
9885         * glib/test-thread-server.c: (handle_test_message):
9886         * test/test-service.c: (handle_echo):
9887         Update to new api
9888
9889         * dbus/Makefile.am:
9890         * dbus/dbus-dict.c:
9891         * dbus/dbus-dict.h:
9892         * dbus/dbus.h
9893         Remove DBusDict
9894
9895         * dbus/dbus-internals.c: (_dbus_type_to_string):
9896         Update for new types.
9897
9898         * dbus/dbus-marshal.[ch]:
9899         Implement recursive types and the new marshalling format.
9900         Remove hardcoded dict marshalling.
9901         Marshal named types.
9902
9903         * dbus/dbus-message-builder.c:
9904         Add BYTE_ARRAY.
9905         Remove references to old types
9906
9907         * dbus/dbus-message.[ch]:
9908         New non-refcounted iter API that supports recursive iters.
9909         Use iters for appending, including support for recursive
9910         iters.
9911         Add byte and named type support.
9912         Update everything to new marshalling formats.
9913         Add tests for new API.
9914
9915         * dbus/dbus-protocol.h:
9916         Remove old array types.
9917         Add types: BYTE, ARRAY, DICT, NAMED
9918
9919         * dbus/dbus-string.c:
9920         * dbus/dbus-sysdeps.c:
9921         Make parse_double locale safe.
9922
9923         * dbus/dbus-test-main.c:
9924         Call setlocale.
9925
9926         * dbus/dbus-test.c:
9927         Kill dict test
9928
9929         * doc/dbus-specification.sgml:
9930         Update spec
9931
9932         * test/data/incomplete-messages/missing-body.message:
9933         * test/data/invalid-messages/bad-boolean.message:
9934         * test/data/invalid-messages/bad-boolean-array.message:
9935         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9936         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9937         * test/data/invalid-messages/too-short-dict.message:
9938         * test/data/valid-messages/dict-simple.message:
9939         * test/data/valid-messages/dict.message:
9940         * test/data/valid-messages/emptiness.message:
9941         * test/data/valid-messages/lots-of-arguments.message:
9942         * test/data/valid-messages/no-padding.message:
9943         * test/data/valid-messages/recursive-types.message:
9944         Add missing NAME fields
9945         Fix up dicts & arrays
9946
9947         * test/data/invalid-messages/dict-with-nil-value.message:
9948         Removed, this is not invalid anymore.
9949
9950         * test/data/valid-messages/recursive-types.message:
9951         Add new test for deeply recursive types.
9952
9953 2003-04-07  Havoc Pennington  <hp@pobox.com>
9954
9955         * bus/driver.c (bus_driver_handle_acquire_service): return an
9956         error if you try to acquire a service that starts with ':'
9957
9958 2003-04-07  Havoc Pennington  <hp@redhat.com>
9959
9960         * doc/dbus-specification.sgml: require that base service names
9961         start with ':' and that the base service is created/deleted
9962         as first and last things a connection does on the bus
9963
9964         * bus/dispatch.c (check_existent_service_activation): lots more
9965         work on the activation test; it doesn't fully pass yet...
9966
9967         * test/test-service.c (main): fix so we don't memleak the
9968         connection to the message bus
9969         (filter_func): accept a message asking us to exit
9970
9971 2003-04-06  Havoc Pennington  <hp@pobox.com>
9972
9973         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9974         from Colin Walters
9975
9976         * configure.in: fixes to Qt detection from Colin Walters
9977
9978         * doc/Makefile.am: Only remove generated docbook dirs if they
9979         exist, from Colin Walters
9980
9981         * dbus/dbus-bus.c: change how we set well-known connections to
9982         NULL, so that it works if a single connection is stored in
9983         two well-known array slots.
9984
9985         * test/Makefile.am: remove a lot of stuff that isn't immediately
9986         useful, it's in CVS history if we want it.
9987
9988         * test/test-service.c: use dbus-mainloop instead of that
9989         watch.[hc] crack
9990
9991 2003-04-06  Havoc Pennington  <hp@pobox.com>
9992
9993         * dbus/Makefile.am: split lists of sources into stuff that goes in
9994         the library, util functions that go in the lib and are also used
9995         elsewhere, and util functions that are used in tests/daemon but
9996         don't go in the lib.
9997
9998         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9999         here so it can be used in test binaries also
10000
10001 2003-04-06  Havoc Pennington  <hp@pobox.com>
10002
10003         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10004         here in the parent process, so we can return an error if it
10005         fails. Also, move some of the code into the child so the parent
10006         is less hosed if we fail midway through.
10007
10008         * bus/bus.c (bus_context_new): move pidfile detection further up
10009         in the function, before we start overwriting sockets and such.
10010
10011         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10012
10013         * configure.in: add --with-system-pid-file and --with-system-socket
10014
10015 2003-04-06  Colin Walters  <walters@verbum.org>
10016
10017         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10018
10019         * bus/system.conf.in: Declare a pidfile.
10020
10021         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10022         create one (if appropriate).
10023
10024         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10025         (struct BusConfigParser) [pidfile]: New.
10026         (element_type_to_name, merge_included, start_busconfig_child)
10027         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10028         (bus_config_parser_unref): Free it.
10029         (bus_config_parser_get_pidfile): New function.
10030
10031         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10032
10033         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10034
10035         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10036
10037         * dbus/dbus-sysdeps.h: Prototype it.
10038
10039 2003-04-06  Havoc Pennington  <hp@pobox.com>
10040
10041         * bus/bus.c (bus_context_new): print the address in here, rather
10042         than in main(), because we need to do it before forking the daemon
10043
10044         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10045         on the service nonexistent error
10046
10047         * bus/driver.c (bus_driver_handle_acquire_service): set the
10048         sender on the AcquireService reply
10049
10050         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10051         server also listen on a UNIX socket so services can connect to it.
10052
10053 2003-04-06  Havoc Pennington  <hp@pobox.com>
10054
10055         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10056         so it detects deadlocks and also we actually init threads when
10057         debugging.
10058
10059 2003-04-06  Havoc Pennington  <hp@pobox.com>
10060
10061         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10062         save the domain socket name, and unlink it when we disconnect the
10063         server. Means that at least when we exit normally, we won't leave
10064         a bunch of junk in /tmp
10065
10066         * dbus/dbus-transport-unix.c
10067         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10068         memory management). (I was making a real change here but then
10069         didn't)
10070
10071 2003-04-06  Havoc Pennington  <hp@pobox.com>
10072
10073         * bus/bus.c (bus_context_new): fix wrong handling of
10074         server_data_slot_unref() in the error case.
10075
10076         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10077         "(condition) != 0" to _dbus_real_assert so that
10078         "_dbus_assert (pointer)" doesn't cause a warning
10079
10080         * bus/main.c (main): accept --print-address option to print out
10081         the message bus address
10082
10083         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10084
10085         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10086         "tmpdir" option to unix: address on client side
10087
10088         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10089         to unix: address
10090
10091         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10092         we can use to create sockets in the test suite.
10093
10094         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10095         cleanly. To be used for testing.
10096
10097         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10098
10099         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10100
10101         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10102         handle trying to call this when there's no servers active
10103
10104 2003-04-05  Havoc Pennington  <hp@pobox.com>
10105
10106         * NEWS: update
10107
10108         * configure.in: 0.8
10109
10110 2003-04-05  Havoc Pennington  <hp@pobox.com>
10111
10112         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10113         crash on startup. Need to get "try starting the daemon"
10114         in the test suite I guess. ;-)
10115
10116         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10117         tracked the number of open connections; it's better done in
10118         application-specific code as you want it to span all servers etc.
10119
10120 2003-04-05  Havoc Pennington  <hp@pobox.com>
10121
10122         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10123         patch from Colin Walters
10124
10125 2003-04-05  Havoc Pennington  <hp@pobox.com>
10126
10127         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10128         reality; in fact multiple mechanisms are allowed.
10129
10130         * dbus/dbus-internals.c (_dbus_real_assert)
10131         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10132         _dbus_assert_not_reached() into functions, so that they don't show
10133         up in basic block counts for test coverage, and don't use up as
10134         much disk space. Does mean slower execution speed though, so
10135         assumes --disable-asserts is the normal production case.
10136
10137 2003-04-05  Havoc Pennington  <hp@pobox.com>
10138
10139         * test/Makefile.am (dist-hook): also dist *.in files
10140
10141         * NEWS: update
10142
10143         * configure.in: 0.7
10144
10145 2003-04-05  Havoc Pennington  <hp@pobox.com>
10146
10147         * dbus/dbus-string.c: docs warning
10148
10149         * dbus/dbus-spawn.c: missing docs
10150
10151         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10152
10153 2003-04-05  Havoc Pennington  <hp@pobox.com>
10154
10155         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10156         magic from GLib
10157
10158         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10159         to -1 once we've reaped the babysitter
10160         (_dbus_babysitter_handle_watch): do as much work as we can, not
10161         just one go of it
10162
10163         * bus/activation.c: add code using DBusBabysitter so that we
10164         handle it when a service fails to start up properly.
10165         (bus_activation_service_created): don't remove the activation
10166         entries as we go, just let them get removed when we free the pending
10167         activation. Unref reply messages after sending them.
10168
10169 2003-04-05  Havoc Pennington  <hp@pobox.com>
10170
10171         * test/decode-gcov.c (main): print per-directory stats in the report
10172
10173         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10174
10175 2003-04-05  Havoc Pennington  <hp@pobox.com>
10176
10177         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10178
10179         * test/decode-gcov.c: hack up a little program to suck data
10180         out of gcov files. Yes this is sort of silly.
10181
10182         * configure.in: define something in config.h and do an
10183         AM_CONDITIONAL when gcov is enabled
10184
10185 2003-04-04  Havoc Pennington  <hp@redhat.com>
10186
10187         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10188         return a "babysitter" object that is used to monitor the status of
10189         the spawned process and reap it when required.
10190
10191         * test/test-segfault.c, test/test-exit.c,
10192         test/test-sleep-forever.c: binaries that do various lame things,
10193         used in the test suite.
10194
10195         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10196
10197 2003-04-03  Havoc Pennington  <hp@pobox.com>
10198
10199         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10200         in preparation for modifying it, dbus-sysdeps is getting
10201         a bit unmanageable.
10202
10203 2003-04-03  Havoc Pennington  <hp@redhat.com>
10204
10205         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10206         have multiple ones
10207
10208         * bus/*.[hc]: adapt to mainloop change
10209
10210 2003-04-03  Havoc Pennington  <hp@redhat.com>
10211
10212         * bus/activation.c (load_directory): fix up memleaks
10213         (bus_activation_entry_free): free the entry
10214
10215         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10216         we get one from the message bus; fix memleaks.
10217
10218         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10219
10220 2003-04-03  Havoc Pennington  <hp@pobox.com>
10221
10222         * bus/config-parser.c (bus_config_parser_unref): free
10223         list of mechanisms, bug discovered by test suite enhancements
10224         (putting system.conf and session.conf into suite)
10225
10226         * test/Makefile.am, test/test-service.c: add placeholder for a
10227         test service that we'll activate as part of test suite. Doesn't
10228         do anything yet.
10229
10230         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10231         setting NULL value, and use system malloc not dbus_malloc()
10232         when we have unavoidable memleakage.
10233
10234         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10235         didn't work, and support DBUS_BUS_ACTIVATION.
10236
10237         * bus/activation.c (child_setup): pass our well-known bus type to
10238         the child
10239
10240         * bus/config-parser.c: support <type> to specify well-known type
10241
10242         * doc/dbus-specification.sgml: document the env variables to
10243         locate well-known buses and find service activator
10244
10245 2003-04-02  Havoc Pennington  <hp@redhat.com>
10246
10247         * test/Makefile.am (all-local): add a rule to copy tests to
10248         builddir, so we can have generated tests. Use this to remove the
10249         silly hack for testing system.conf and session.conf. Will use this
10250         shortly to generate .service files pointing to test binaries.
10251
10252 2003-04-02  Havoc Pennington  <hp@redhat.com>
10253
10254         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10255         current alloc and needed new length, not max of the doubled
10256         allocation and needed new length. Also, when building tests,
10257         don't do the double-allocation stuff, just realloc every time.
10258
10259 2003-04-02  Havoc Pennington  <hp@redhat.com>
10260
10261         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10262         in error messages
10263         (_dbus_string_get_dirname): new
10264         (_dbus_sysdeps_test): new
10265         (_dbus_directory_open): include dirnames in error messages
10266
10267         * bus/config-parser.c: interpret <include> and <includedir> and
10268         <servicedir> relative to config file location if the given
10269         filename is not absolute.
10270
10271         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10272
10273 2003-04-02  Havoc Pennington  <hp@redhat.com>
10274
10275         * bus/connection.c (bus_transaction_send_error_reply): set sender
10276         service for the error, and unref the reply on success
10277
10278         * bus/activation.c: convert to use BusTransaction so OOM can be
10279         handled correctly
10280         (bus_activation_service_created): set sender of the message
10281
10282 2003-04-01  Havoc Pennington  <hp@redhat.com>
10283
10284         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10285         <includedir> (at least mostly)
10286
10287         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10288         first, then the user ID
10289
10290 2003-04-01  Havoc Pennington  <hp@pobox.com>
10291
10292         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10293         function
10294
10295         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10296
10297         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10298
10299         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10300         socket 0777, and unlink any existing socket.
10301
10302         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10303         the configuration file so specifies; set up auth mechanism
10304         restrictions
10305
10306         * bus/config-parser.c (bus_config_parser_content): add support
10307         for <fork> option and fill in code for <auth>
10308
10309         * bus/system.conf.in: add <fork/> to default configuration,
10310         and limit auth mechanisms to EXTERNAL
10311
10312         * doc/config-file.txt (Elements): add <fork>
10313
10314         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10315         (_dbus_change_identity): new function
10316
10317 2003-03-31  Havoc Pennington  <hp@redhat.com>
10318
10319         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10320         (_dbus_listen_unix_socket): fix off-by-one error in null
10321         termination spotted by Nalin
10322
10323 2003-03-31  Havoc Pennington  <hp@redhat.com>
10324
10325         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10326         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10327         having a real home directory available.
10328
10329 2003-03-31  Havoc Pennington  <hp@redhat.com>
10330
10331         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10332
10333         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10334
10335         * configure.in: add support for specifying a style of init script
10336         to install
10337
10338 2003-03-31  Havoc Pennington  <hp@redhat.com>
10339
10340         Fix some annoying DBusString API and fix all affected code.
10341
10342         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10343         max_length argument
10344         (_dbus_string_get_data): change to return string instead of using
10345         an out param
10346         (_dbus_string_get_const_data): ditto
10347         (_dbus_string_get_data_len): ditto
10348         (_dbus_string_get_const_data_len): ditto
10349
10350 2003-03-31  Havoc Pennington  <hp@redhat.com>
10351
10352         * bus/main.c (main): fix up the command line arguments to be nicer
10353
10354 2003-03-31  Havoc Pennington  <hp@redhat.com>
10355
10356         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10357         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10358         final location that lands in the config file
10359
10360         * bus/config-loader-expat.c (bus_config_load): fix type of
10361         XML_Parser variable
10362
10363         * doc/TODO: remove TODO item for dbus_bus_get()
10364
10365         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10366
10367 2003-03-31  Havoc Pennington  <hp@pobox.com>
10368
10369         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10370         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10371         argument since they are always client side
10372
10373         * dbus/dbus-server.c (dbus_server_get_address): new function
10374
10375         * bus/main.c (main): take the configuration file as an argument.
10376
10377         * test/data/valid-config-files/debug-allow-all.conf: new file to
10378         use with dispatch.c tests for example
10379
10380         * bus/test-main.c (main): require test data dir
10381
10382         * bus/bus.c (bus_context_new): change this to take a
10383         configuration file name as argument
10384
10385         * doc/config-file.txt (Elements): add <servicedir>
10386
10387         * bus/system.conf, bus/session.conf: new files
10388
10389         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10390         well-known socket if none set
10391
10392         * configure.in: create system.conf and session.conf
10393
10394 2003-03-30  Havoc Pennington  <hp@pobox.com>
10395
10396         * bus/config-parser.c: hacking
10397
10398         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10399         to shut down, since it could cause weirdness with the DBusList
10400         lock
10401
10402         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10403         link-oriented stack routines
10404         (alloc_link): free the mempool if the first alloc from it fails
10405
10406         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10407
10408         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10409         from GLib
10410         (_dbus_string_skip_white): new
10411
10412         * doc/config-file.txt (Elements): add <includedir>
10413
10414 2003-03-28  Havoc Pennington  <hp@pobox.com>
10415
10416         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10417         (_dbus_string_copy_data): new functions
10418
10419 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10420
10421         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10422         * dbus/dbus-bus.h:
10423         Add dbus_bus_get.
10424
10425         * dbus/dbus-memory.c:
10426         Fix a doc comment.
10427
10428 2003-03-28  Havoc Pennington  <hp@pobox.com>
10429
10430         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10431         I think it may have just been superstition. Not sure.
10432
10433         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10434         failures that were not being handled.
10435
10436         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10437
10438         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10439         row that will fail on out-of-memory.
10440
10441         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10442         function for testing out-of-memory handling.
10443
10444         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10445         allocation functions, they do map exactly to the expat ones.
10446
10447 2003-03-27  Havoc Pennington  <hp@redhat.com>
10448
10449         * bus/config-loader-libxml.c (bus_config_load): add another error
10450         check
10451
10452 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10453
10454         * doc/TODO:
10455         Add note about automatic service activation.
10456
10457         * doc/dbus-specification.sgml:
10458         Rename the specification and clarify a few things.
10459
10460 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10461
10462         * Doxyfile.in:
10463         * dbus/dbus-address.c:
10464         * dbus/dbus-dict.c:
10465         * dbus/dbus-marshal.c:
10466         * dbus/dbus-server-debug-pipe.c:
10467         * dbus/dbus-transport-unix.c:
10468         Fix documentation warnings.
10469
10470 2003-03-26  Havoc Pennington  <hp@pobox.com>
10471
10472         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10473         after every test so it's quick and easy to see which leaked, and
10474         so we test multiple dbus_shutdown() calls
10475
10476         * configure.in: change configure.in XML stuff to also support
10477         expat
10478
10479         * config-loader-libxml.c: some hacking
10480
10481         * config-loader-expat.c: some hacking
10482
10483         * config-parser.c: some hacking, plus tests
10484
10485 2003-03-25  Havoc Pennington  <hp@redhat.com>
10486
10487         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10488
10489         * configure.in: add --with-xml option to specify XML library,
10490         right now only libxml is supported.
10491
10492         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10493         nonworking code between home and work, still just stubs
10494
10495 2003-03-24  Havoc Pennington  <hp@redhat.com>
10496
10497         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10498         file
10499
10500         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10501         NULL argument for "message" if the error is a well-known one,
10502         fill in a generic message in this case.
10503
10504         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10505         favor of DBusError
10506
10507         * bus/test.c (bus_test_flush_bus): add
10508
10509         * bus/policy.c (bus_policy_test): test code stub
10510
10511 2003-03-24  Havoc Pennington  <hp@pobox.com>
10512
10513         * bus/connection.c (bus_connections_setup_connection): set up
10514         the "can this user connect" function, but it always returns
10515         TRUE until we have a config file parser so we can have a config
10516         file that allows connections.
10517
10518 2003-03-23  Havoc Pennington  <hp@pobox.com>
10519
10520         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10521         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10522         the mutex, so we can check for proper memory management
10523         and OOM handling.
10524
10525         * dbus/dbus-dataslot.c: remove the mutex from
10526         DBusDataSlotAllocator and lock it manually when using it,
10527         to simplify fitting it into the global slots framework.
10528
10529         * dbus/dbus-threads.c (init_static_locks): rework how we're
10530         handling global locks so they are easily shut down.
10531
10532         * bus/policy.c (bus_policy_append_rule): fix
10533
10534         * bus/test-main.c (main): check for memleaks
10535
10536         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10537         test suite check for memleaks
10538
10539         * dbus/dbus-memory.c: add support in test mode for tracking
10540         number of outstanding blocks
10541
10542 2003-03-23  Havoc Pennington  <hp@pobox.com>
10543
10544         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10545         policies code
10546
10547         * dbus/dbus-hash.h: add ULONG hash keys
10548
10549         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10550         (_dbus_get_group_id): new function
10551
10552 2003-03-20  Havoc Pennington  <hp@redhat.com>
10553
10554         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10555         new function
10556         (dbus_connection_get_unix_user): new function
10557
10558 2003-03-20  Havoc Pennington  <hp@pobox.com>
10559
10560         * bus/connection.c (bus_connection_send_oom_error): assert that
10561         message has a sender
10562         (connection_execute_transaction): ditto
10563         (bus_connection_preallocate_oom_error): fix to set the sender, and
10564         set recipient to the destination service, not the bus driver
10565
10566         * bus/policy.c: hacking
10567
10568         * dbus/dbus-message.c (dbus_message_service_is): new function
10569         (dbus_message_sender_is): new
10570
10571 2003-03-19  Havoc Pennington  <hp@redhat.com>
10572
10573         * bus/policy.c: start sketching code for policy restrictions on
10574         what connections can do.
10575
10576 2003-03-18  Havoc Pennington  <hp@redhat.com>
10577
10578         * doc/TODO: some notes on high-level todo items. Little nitpick
10579         stuff is all in @todo, so no need to add it here.
10580
10581         * doc/config-file.txt: some notes on how config file might look
10582
10583 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10584
10585         * configure.in: 0.6
10586
10587         * NEWS: Update.
10588
10589 2003-03-17  Havoc Pennington  <hp@redhat.com>
10590
10591         * dbus/dbus-internals.h: add gcc attributes so that
10592         our printf-style functions warn on bad arguments to
10593         format
10594
10595         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10596         format bug
10597
10598         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10599         printf format bug
10600
10601 2003-03-17  Havoc Pennington  <hp@redhat.com>
10602
10603         * bus/test-main.c (main): make it print something as it runs
10604         so make check doesn't look stuck
10605
10606         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10607         from CVS, now obsolete
10608
10609 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10610
10611         * bus/dispatch.c: (bus_dispatch):
10612         Refetch the service name since it may have been reallocated
10613         when dbus_message_set_sender was called.
10614
10615         * dbus/dbus-sysdeps.c: (_dbus_accept):
10616         Add address and address length variables and use them to stop
10617         valgrind from complaining.
10618
10619 2003-03-17  Havoc Pennington  <hp@pobox.com>
10620
10621         All tests pass, no memleaks, no valgrind complaints.
10622
10623         * bus/test.c: refcount handler_slot
10624
10625         * bus/connection.c (bus_connections_new): refcount
10626         connection_data_slot
10627
10628         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10629         bytes so that auth scripts pass.
10630
10631         * bus/dispatch.c: init message_handler_slot so it gets allocated
10632         properly
10633
10634         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10635
10636         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10637         dealloc server_pipe_hash when no longer used for benefit of
10638         leak checking
10639
10640         * dbus/dbus-auth.c (process_command): memleak fix
10641
10642         * bus/dispatch.c (check_hello_message): memleak fix
10643
10644 2003-03-16  Havoc Pennington  <hp@pobox.com>
10645
10646         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10647
10648 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10649
10650         * bus/activation.c (bus_activation_activate_service): Append
10651         the pending activation entry to the list of pending activations.
10652
10653 2003-03-16  Havoc Pennington  <hp@pobox.com>
10654
10655         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10656         connections
10657
10658         * dbus/dbus-address.c (create_entry): fix OOM handling when
10659         failing to alloc entry->method
10660
10661 2003-03-16  Havoc Pennington  <hp@pobox.com>
10662
10663         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10664         the watch
10665
10666         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10667         add some missing dbus_set_result
10668
10669         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10670         alloc the DBusMessageHandler
10671
10672         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10673         the transport here, since we call this from the finalizer; it
10674         resulted in a double-finalize.
10675
10676         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10677         where we tried to use transport->connection that was NULL,
10678         happened when transport was disconnected early on due to OOM
10679
10680         * bus/*.c: adapt to handle OOM for watches/timeouts
10681
10682         * dbus/dbus-transport-unix.c: port to handle OOM during
10683         watch handling
10684
10685         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10686         reference to unused bytes instead of a copy
10687
10688         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10689         out of memory
10690
10691         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10692         FALSE on OOM
10693
10694         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10695         of memory
10696
10697 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10698
10699         * doc/dbus-specification.sgml:
10700         Document reply message for ActivateService.
10701
10702 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10703
10704         * bus/activation.c: (bus_pending_activation_entry_free),
10705         (bus_pending_activation_free), (bus_activation_new),
10706         (bus_activation_unref), (bus_activation_service_created),
10707         (bus_activation_activate_service):
10708         * bus/activation.h:
10709         * bus/bus.c: (bus_context_new):
10710         * bus/desktop-file.c: (new_section):
10711         * bus/driver.c: (bus_driver_send_service_deleted),
10712         (bus_driver_handle_activate_service):
10713         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10714         * bus/services.h:
10715         * dbus/dbus-connection.c:
10716         (dbus_connection_send_with_reply_and_block):
10717         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10718         * dbus/dbus-protocol.h:
10719         Make activation work better. Now pending activations will be queued
10720         and the daemon won't try to activate services that are already registered.
10721
10722 2003-03-16  Havoc Pennington  <hp@pobox.com>
10723
10724         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10725         connection data
10726
10727         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10728         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10729
10730 2003-03-16  Havoc Pennington  <hp@pobox.com>
10731
10732         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10733         this. always run the test suite before commit...
10734
10735         * bus/*: adapt to DBusConnection API changes
10736
10737         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10738         requires renaming stuff to avoid dbus_connection_dispatch name
10739         conflict.
10740
10741         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10742         function
10743
10744         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10745         separate from _dbus_message_loader_return_buffer()
10746
10747         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10748         this, because it's now always broken to use; the number of
10749         messages in queue vs. the number still buffered by the message
10750         loader is undefined/meaningless. Should use
10751         dbus_connection_get_dispatch_state().
10752         (dbus_connection_dispatch): rename from
10753         dbus_connection_dispatch_message
10754
10755 2003-03-16  Havoc Pennington  <hp@pobox.com>
10756
10757         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10758         implementation
10759
10760 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10761
10762         * dbus/dbus-connection.c:
10763         (dbus_connection_send_with_reply_and_block):
10764         Decrease connection->n_incoming when removing an entry
10765         from the list.
10766         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10767         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10768         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10769         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10770         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10771         (dbus_dict_get_byte_array):
10772         Handle NULL arrays and strings. Also add support for byte arrays.
10773
10774         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10775         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10776         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10777         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10778         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10779         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10780         * dbus/dbus-marshal.h:
10781         Add support for marshalling and demarshalling empty arrays and strings.
10782
10783         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10784         (dbus_message_append_string_array),
10785         (dbus_message_iter_get_boolean),
10786         (dbus_message_iter_get_boolean_array),
10787         (dbus_message_iter_get_int32_array),
10788         (dbus_message_iter_get_uint32_array),
10789         (dbus_message_iter_get_double_array),
10790         (dbus_message_iter_get_byte_array),
10791         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10792         (check_message_handling):
10793         Add support for getting empty arrays and dicts.
10794
10795         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10796         Don't do any validation at all for now, that's better than just checking
10797         for ASCII.
10798
10799         * test/data/valid-messages/emptiness.message:
10800         New test message with lots of empty arrays.
10801
10802 2003-03-16  Havoc Pennington  <hp@pobox.com>
10803
10804         * dbus/dbus-connection.c
10805         (_dbus_connection_queue_received_message_link): new function that
10806         can't fail due to OOM
10807
10808         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10809         new function pops a message together with a list link
10810         containing it.
10811
10812         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10813         message queuing functions to avoid needing to alloc memory
10814
10815 2003-03-16  Havoc Pennington  <hp@pobox.com>
10816
10817         Oops - test code was only testing failure of around 30 of the
10818         mallocs in the test path, but it turns out there are 500+
10819         mallocs. I believe this was due to misguided linking setup such
10820         that there was one copy of dbus_malloc etc. in the daemon and one
10821         in the shared lib, and only daemon mallocs were tested. In any
10822         case, the test case now tests all 500+ mallocs, and doesn't pass
10823         yet, though there are lots of fixes in this patch.
10824
10825         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10826         this so that it doesn't need to allocate memory, since it
10827         has no way of indicating failure due to OOM (and would be
10828         annoying if it did).
10829
10830         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10831
10832         * bus/Makefile.am: rearrange to create two self-contained
10833         libraries, to avoid having libraries with overlapping symbols.
10834         that was resulting in weirdness, e.g. I'm pretty sure there
10835         were two copies of global static variables.
10836
10837         * dbus/dbus-internals.c: move the malloc debug stuff to
10838         dbus-memory.c
10839
10840         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10841         empty.
10842
10843         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10844
10845         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10846         on failure.
10847
10848         * bus/dispatch.c (bus_dispatch_add_connection): free
10849         message_handler_slot when no longer using it, so
10850         memory leak checkers are happy for the test suite.
10851
10852         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10853
10854         * bus/bus.c (new_connection_callback): disconnect in here if
10855         bus_connections_setup_connection fails.
10856
10857         * bus/connection.c (bus_connections_unref): fix to free the
10858         connections
10859         (bus_connections_setup_connection): if this fails, don't
10860         disconnect the connection, just be sure there are no side
10861         effects.
10862
10863         * dbus/dbus-string.c (undo_alignment): unbreak this
10864
10865         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10866         leaking
10867         (_dbus_auth_new): fix the order in which we free strings
10868         on OOM failure
10869
10870         * bus/connection.c (bus_connection_disconnected): fix to
10871         not send ServiceDeleted multiple times in case of memory
10872         allocation failure
10873
10874         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10875         get the base service name
10876         (dbus_bus_register_client): don't return base service name,
10877         instead store it on the DBusConnection and have an accessor
10878         function for it.
10879         (dbus_bus_register_client): rename dbus_bus_register()
10880
10881         * bus/dispatch.c (check_hello_message): verify that other
10882         connections on the bus also got the correct results, not
10883         just the one sending hello
10884
10885 2003-03-15  Havoc Pennington  <hp@pobox.com>
10886
10887         Make it pass the Hello handling test including all OOM codepaths.
10888         Now to do other messages...
10889
10890         * bus/services.c (bus_service_remove_owner): fix crash when
10891         removing owner from an empty list of owners
10892         (bus_registry_ensure): don't leave service in the list of
10893         a connection's owned services if we fail to put the service
10894         in the hash table.
10895
10896         * bus/connection.c (bus_connection_preallocate_oom_error): set
10897         error flag on the OOM error.
10898
10899         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10900         handle _dbus_transport_set_connection failure
10901
10902         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10903         to create watches up front and simply enable/disable them as
10904         needed.
10905         (unix_connection_set): this can now fail on OOM
10906
10907         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10908         of enabling/disabling a watch or timeout.
10909
10910         * bus/loop.c (bus_loop_iterate): don't touch disabled
10911         watches/timeouts
10912
10913         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10914
10915 2003-03-15  Havoc Pennington  <hp@pobox.com>
10916
10917         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10918         write useful test code, after all that futzing around ;-)
10919
10920         Test does not yet pass because we can't handle OOM in
10921         _dbus_transport_messages_pending (basically,
10922         dbus_connection_preallocate_send() does not prealloc the write
10923         watch). To fix this, I think we need to add new stuff to
10924         set_watch_functions, namely a SetEnabled function so we can alloc
10925         the watch earlier, then enable it later.
10926
10927         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10928         dbus-memory.c to the convenience lib
10929
10930         * bus/test.c: rename some static functions to keep them clearly
10931         distinct from stuff in connection.c. Handle client disconnection.
10932
10933 2003-03-14  Havoc Pennington  <hp@pobox.com>
10934
10935         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10936         transport, tests more of the real codepath. Set up clients
10937         with bus_setup_debug_client.
10938
10939         * bus/test.c (bus_setup_debug_client): function to set up debug
10940         "clients" on the main loop
10941
10942         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10943         support
10944
10945         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10946         server type
10947
10948         * dbus/dbus-server-debug.c: support a debug server based on pipes
10949
10950         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10951         (_dbus_close): new function
10952
10953         * configure.in: check for socketpair
10954
10955 2003-03-14  Havoc Pennington  <hp@redhat.com>
10956
10957         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10958         cheesy hack
10959
10960         * dbus/dbus-transport-debug.c: rework this a good bit to be
10961         less complicated. hopefully still works.
10962
10963         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10964         manually
10965
10966         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10967         after running it
10968
10969         * dbus/dbus-message.c (dbus_message_copy): rename from
10970         dbus_message_new_from_message, fix it up to copy
10971         all the message fields, add test case
10972
10973         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10974         not quite passing yet
10975
10976 2003-03-14  Havoc Pennington  <hp@pobox.com>
10977
10978         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10979         until no work remains" in test code. (the large diff here
10980         is just code movement, no actual changes)
10981
10982         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10983         1, no point waiting around for test code.
10984         (_dbus_server_debug_accept_transport): unref the timeout
10985         after adding it (right?)
10986
10987         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10988
10989 2003-03-13  Havoc Pennington  <hp@redhat.com>
10990
10991         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10992         out of memory
10993
10994         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10995         of memory
10996
10997         * dbus/dbus-connection.h: Make AddWatchFunction and
10998         AddTimeoutFunction return a bool so they can fail on out-of-memory
10999
11000         * bus/bus.c (bus_context_new): set up timeout handlers
11001
11002         * bus/connection.c (bus_connections_setup_connection): set up
11003         timeout handlers
11004
11005         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11006         can fail
11007
11008         * bus/bus.c (bus_context_new): adapt to changes
11009
11010         * bus/connection.c: adapt to changes
11011
11012         * test/watch.c: adapt to DBusWatch changes
11013
11014         * bus/dispatch.c (bus_dispatch_test): started adding this but
11015         didn't finish
11016
11017 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11018
11019         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11020
11021 2003-03-13  Havoc Pennington  <hp@pobox.com>
11022
11023         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11024         set up a test framework as for the library
11025
11026 2003-03-12  Havoc Pennington  <hp@pobox.com>
11027
11028         Throughout: purge global variables, introduce BusActivation,
11029         BusConnections, BusRegistry, etc. objects instead.
11030
11031         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11032         message bus object
11033
11034         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11035         going to redo this a bit differently I think
11036
11037 2003-03-12  Havoc Pennington  <hp@redhat.com>
11038
11039         Mega-patch that gets the message bus daemon initially handling
11040         out-of-memory. Work still needed. Also lots of random
11041         moving stuff to DBusError instead of ResultCode.
11042
11043         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11044
11045         * dbus/dbus-connection.c
11046         (dbus_connection_send_with_reply_and_block): use DBusError
11047
11048         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11049         DBusResultCode
11050
11051         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11052         code here, as the only failure possible is OOM.
11053
11054         * bus/connection.c (bus_connection_disconnect):
11055         rename bus_connection_disconnected as it's a notification only
11056
11057         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11058         "name" on get_args failure, should be done by get_args;
11059         don't disconnect client for bad args, just return an error.
11060         (bus_driver_handle_service_exists): ditto
11061
11062         * bus/services.c (bus_services_list): NULL-terminate returned array
11063
11064         * bus/driver.c (bus_driver_send_service_lost)
11065         (bus_driver_send_service_acquired): send messages from driver to a
11066         specific client to the client's unique name, not to the broadcast
11067         service.
11068
11069         * dbus/dbus-message.c (decode_header_data): reject messages that
11070         contain no name field
11071         (_dbus_message_get_client_serial): rename to
11072         dbus_message_get_serial and make public
11073         (_dbus_message_set_serial): rename from set_client_serial
11074         (_dbus_message_set_reply_serial): make public
11075         (_dbus_message_get_reply_serial): make public
11076
11077         * bus/connection.c (bus_connection_foreach): allow stopping
11078         iteration by returning FALSE from foreach function.
11079
11080         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11081         (dbus_connection_free_preallocated_send)
11082         (dbus_connection_preallocate_send): new API for sending a message
11083         without possibility of malloc failure.
11084         (dbus_connection_send_message): rename to just
11085         dbus_connection_send (and same for whole function family)
11086
11087         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11088
11089         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11090
11091         * bus/activation.c: handle/return errors
11092
11093         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11094
11095         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11096         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11097         (_dbus_result_from_errno): move to this file
11098
11099 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11100
11101         * dbus/dbus-marshal.c:
11102         (_dbus_marshal_set_string):
11103         Take a length argument so we can marshal the correct string
11104         length.
11105
11106         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11107         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11108         (_dbus_marshal_test):
11109         * dbus/dbus-marshal.h:
11110         Add support for marshalling and demarshalling dicts.
11111
11112         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11113         Add support for TYPE DICT.
11114
11115         * dbus/dbus-message.c: (set_string_field):
11116         Adjust header padding.
11117
11118         (dbus_message_append_args_valist), (dbus_message_append_dict),
11119         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11120         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11121         (check_message_handling), (check_have_valid_message):
11122         * dbus/dbus-message.h:
11123         Add functions for setting and getting dicts.
11124
11125         * dbus/dbus-protocol.h:
11126         Add DBUS_TYPE_DICT.
11127
11128         * dbus/dbus.h:
11129         Add dbus-dict.h
11130
11131         * doc/dbus-specification.sgml:
11132         Add information about how dicts are marshalled.
11133
11134         * test/data/invalid-messages/dict-with-nil-value.message:
11135         * test/data/invalid-messages/too-short-dict.message:
11136         * test/data/valid-messages/dict-simple.message:
11137         * test/data/valid-messages/dict.message:
11138         Add sample messages containing dicts.
11139
11140 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11141
11142         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11143
11144 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11145
11146         * dbus/Makefile.am:
11147         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11148         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11149         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11150         (dbus_dict_set_double), (dbus_dict_set_string),
11151         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11152         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11153         (dbus_dict_set_string_array), (_dbus_dict_test):
11154         * dbus/dbus-dict.h:
11155         Fix according to comments from Havoc.
11156
11157 2003-03-06  Michael Meeks  <michael@server.home>
11158
11159         * configure.in: if we don't have kde-config, disable have_qt.
11160
11161 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11162
11163         * dbus/Makefile.am:
11164         Add dbus-dict.[ch]
11165
11166         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11167         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11168         (dbus_dict_remove), (dbus_dict_get_value_type),
11169         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11170         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11171         (dbus_dict_put_double), (dbus_dict_put_string),
11172         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11173         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11174         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11175         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11176         (dbus_dict_get_double), (dbus_dict_get_string),
11177         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11178         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11179         (dbus_dict_get_string_array), (_dbus_dict_test):
11180         * dbus/dbus-dict.h:
11181         Add DBusDict implementation
11182
11183         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11184         * dbus/dbus-test.h:
11185         Add _dbus_dict_test
11186
11187 2003-03-04  Havoc Pennington  <hp@pobox.com>
11188
11189         * test/data/auth/*: adapt to changes
11190
11191         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11192         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11193         userid
11194
11195         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11196         more stuff from being in a context name, to make the protocol
11197         simpler to deal with
11198
11199         * dbus/dbus-errors.c (dbus_error_has_name): new function
11200         (dbus_error_is_set): new function
11201
11202         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11203         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11204
11205         * dbus/dbus-connection.c (dbus_connection_flush): also read
11206         messages during a flush operation
11207
11208         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11209
11210 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11211
11212         * configure.in: Check for gethostbyname on Solaris.
11213
11214         * dbus/dbus-transport.c: (_dbus_transport_open):
11215         Remove duplicate "tcp" entry.
11216
11217         * doc/dbus-specification.sgml:
11218         Clarify some things.
11219
11220 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11221
11222         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11223         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11224         (_dbus_keyring_test):
11225         * dbus/dbus-md5.c: (_dbus_md5_compute):
11226         * dbus/dbus-sha.c: (_dbus_sha_compute):
11227         Plug memory leaks.
11228
11229 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11230
11231         * README: Add some things.
11232
11233 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11234
11235         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11236         after case DBUS_TYPE_BOOELAN.
11237
11238 2003-03-02  Havoc Pennington  <hp@pobox.com>
11239
11240         * test/break-loader.c (randomly_set_extreme_ints): add test that
11241         sets really huge and small integers
11242
11243         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11244         that length of boolean array fits in the string, and that
11245         string has room for boolean value in single-bool case.
11246
11247         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11248         optional value to "ALIGN" command which is what to fill the
11249         alignment with.
11250
11251         * test/data/valid-messages/no-padding.message: add regression
11252         test for the message padding problem
11253
11254 2003-03-02  Havoc Pennington  <hp@pobox.com>
11255
11256         * dbus/dbus-message.c (decode_header_data): fix to always init
11257         message_padding, from Benjamin Dauvergne
11258
11259 2003-03-02  Havoc Pennington  <hp@pobox.com>
11260
11261         * configure.in: 0.5
11262
11263         * NEWS: Update.
11264
11265 2003-03-01  Joe Shaw  <joe@assbarn.com>
11266
11267         * configure.in: Check for "struct cmsgcred" and try to access its
11268         members for BSD-like unices.
11269
11270         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11271         _dbus_read_credentials_unix_socket().
11272         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11273         read() for reading the credential byte off the unix socket.  Use
11274         struct cmsgcred on systems that support it.
11275
11276 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11277
11278         * glib/Makefile.am:
11279         * configure.in:
11280         Make gthreads-2.0 dependency optional. Don't build thread test if
11281         its not found.
11282
11283 2003-02-27  Havoc Pennington  <hp@pobox.com>
11284
11285         * dbus/dbus-connection.c
11286         (dbus_connection_send_message_with_reply_and_block): fix doh!
11287         doh! doh! bug that resulted in never removing a reply from the
11288         queue, no wonder we called get_reply_serial so much ;-)
11289
11290         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11291         and client serial instead of demarshaling them every time
11292
11293 2003-02-27  Havoc Pennington  <hp@pobox.com>
11294
11295         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11296         more inlined, using dbus-string-private.h, speeds things up
11297         substantially
11298
11299         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11300         when freeing the string
11301         (_dbus_string_steal_data): fix for align offset
11302         (undo_alignment): new function
11303
11304 2003-02-26  Havoc Pennington  <hp@redhat.com>
11305
11306         All kinds of audit fixes from Owen, plus initial attempt to
11307         handle unaligned memory returned from malloc.
11308
11309         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11310         leave room for align_offset and nul byte
11311         (fixup_alignment): function to track an align_offset and
11312         ensure real->str is aligned
11313         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11314         to allow a nul byte plus align offset
11315         (_dbus_string_lock): fix overflow issue
11316         (_dbus_string_init_const_len): add assertions on sanity of len,
11317         assign allocated to be ALLOCATION_PADDING larger than len
11318         (set_length): fixup the overflow handling
11319         (_dbus_string_get_data_len): fix overflow in assertion
11320         (open_gap): detect overflow in size of gap to be opened
11321         (_dbus_string_lengthen): add overflow check
11322         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11323         (_dbus_string_append): add overflow check
11324         (_dbus_string_append_unichar): overflow
11325         (_dbus_string_delete): fix overflow in assertion
11326         (_dbus_string_copy_len): overflow in assertion
11327         (_dbus_string_replace_len): overflows in assertions
11328         (_dbus_string_find): change to implement in terms of
11329         _dbus_string_find_to
11330         (_dbus_string_find_to): assorted fixage
11331         (_dbus_string_equal_c_str): assert c_str != NULL,
11332         fix logic so the function works
11333         (_dbus_string_ends_with_c_str): fix overflow thingy
11334         (_dbus_string_base64_encode): overflow fix
11335         (_dbus_string_validate_ascii): overflow
11336         (_dbus_string_validate_nul): overflow
11337
11338 2003-02-26  Havoc Pennington  <hp@redhat.com>
11339
11340         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11341
11342 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11343
11344         * configure.in:
11345         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11346
11347         * dbus/dbus-connection.c:
11348         * dbus/dbus-connection.h:
11349         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11350         Add dbus_connection_set_wakeup_main_function and use it when queueing
11351         incoming and outgoing messages.
11352
11353
11354         * dbus/dbus-dataslot.c:
11355         Threadsafe usage of DBusDataSlotAllocator
11356
11357         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11358         dbus_new can fail.
11359
11360         * dbus/dbus-server-unix.c:
11361         Add todo comment
11362
11363         * glib/dbus-gmain.c:
11364         Implement the new wakeup functions for glib.
11365
11366         * glib/Makefile.am:
11367         * glib/test-thread-client.c:
11368         * glib/test-thread-server.c:
11369         * glib/test-thread.h:
11370         Initial cut at some thread test code. Not really done yet.
11371
11372 2003-02-26  Havoc Pennington  <hp@pobox.com>
11373
11374         * dbus/dbus-connection.c
11375         (dbus_connection_send_message_with_reply_and_block): fix crash
11376         where we ref'd the outgoing message instead of the returned reply
11377
11378         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11379         at the end of this function, so if we didn't need to read for
11380         authentication, we reinstall it for receiving messages
11381
11382         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11383         a NULL sender for peer-to-peer case
11384
11385         * dbus/dbus-transport-unix.c (check_read_watch): handle
11386         !authenticated case correctly
11387
11388         * glib/dbus-gmain.c: add support for DBusServer
11389
11390         * dbus/dbus-server.c: add data slot support
11391
11392         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11393         return values and handle errors
11394
11395         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11396         DBusConnection
11397
11398         * Doxyfile.in (INPUT): add glib subdir
11399
11400         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11401         setup_with_g_main instead of hookup_with_g_main; write docs
11402
11403 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11404
11405         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11406         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11407         * dbus/dbus-message.c: (dbus_message_append_boolean),
11408         (dbus_message_append_boolean_array),
11409         (dbus_message_get_args_valist), (_dbus_message_test):
11410         * dbus/dbus-message.h:
11411         * doc/dbus-specification.sgml:
11412         Various fixes as pointed out by Havoc.
11413
11414         * test/data/invalid-messages/bad-boolean-array.message:
11415         * test/data/invalid-messages/bad-boolean.message:
11416         Add invalid boolean value test cases.
11417
11418 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11419
11420         * dbus/dbus-internals.c: (_dbus_type_to_string):
11421         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11422         (_dbus_marshal_validate_arg):
11423         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11424         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11425         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11426         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11427         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11428         (dbus_message_iter_get_double),
11429         (dbus_message_iter_get_boolean_array), (message_iter_test):
11430         * dbus/dbus-message.h:
11431         * dbus/dbus-protocol.h:
11432         * doc/dbus-specification.sgml:
11433         * test/data/valid-messages/lots-of-arguments.message:
11434         Add support for boolean and boolean array types.
11435
11436 2003-02-23  Havoc Pennington  <hp@pobox.com>
11437
11438         * dbus/dbus-keyring.c: finish most of this implementation and
11439         simple unit test
11440
11441         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11442         these barf if the error isn't cleared to NULL
11443
11444         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11445         (_dbus_create_directory): new function
11446
11447         * dbus/dbus-errors.c (dbus_set_error): fix warning
11448
11449         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11450         (_dbus_string_hex_decode): new function
11451         (test_hex_roundtrip): test code
11452
11453         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11454
11455         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11456
11457         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11458         the save-to-temp/rename trick to atomically write the new file
11459         (_dbus_string_parse_uint): new function
11460
11461 2003-02-22  Havoc Pennington  <hp@pobox.com>
11462
11463         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11464
11465 2003-02-22  Havoc Pennington  <hp@pobox.com>
11466
11467         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11468         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11469
11470         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11471
11472         * dbus/test/data/sha-1: add US government test suite for SHA-1
11473
11474 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11475
11476         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11477         Make string arrays NULL-terminated.
11478
11479         * dbus/dbus-memory.c: (dbus_free_string_array):
11480         * dbus/dbus-memory.h:
11481         New function for freeing NULL-terminated string arrays.
11482
11483         * dbus/dbus-message-builder.c: (append_quoted_string),
11484         (_dbus_message_data_load):
11485         Add support for array types.
11486
11487         * dbus/dbus-message.c: (check_message_handling):
11488         Add more types as test cases.
11489
11490         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11491         (_dbus_string_parse_double):
11492         Add the start offset to the end offset.
11493
11494         * test/data/valid-messages/lots-of-arguments.message:
11495         New test message with lots of arguments.
11496
11497 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11498
11499         * dbus/dbus-message.c: (dbus_message_append_nil),
11500         (dbus_message_append_int32), (dbus_message_append_uint32),
11501         (dbus_message_append_double), (dbus_message_append_string),
11502         (dbus_message_append_int32_array),
11503         (dbus_message_append_uint32_array),
11504         (dbus_message_append_double_array),
11505         (dbus_message_append_byte_array),
11506         (dbus_message_append_string_array):
11507         Fix all out-of-memory handling in these functions.
11508
11509 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11510
11511         * dbus/dbus-message.c: (dbus_message_append_nil):
11512         Fix a silly.
11513
11514 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11515
11516         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11517         (dbus_message_append_nil), (dbus_message_append_int32_array),
11518         (dbus_message_append_uint32_array),
11519         (dbus_message_append_double_array),
11520         (dbus_message_append_byte_array),
11521         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11522         (dbus_message_iter_get_int32_array),
11523         (dbus_message_iter_get_uint32_array),
11524         (dbus_message_iter_get_double_array),
11525         (dbus_message_iter_get_byte_array),
11526         (dbus_message_iter_get_string_array):
11527
11528         * dbus/dbus-message.h:
11529         Add functions for appending and getting arrays.
11530
11531 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11532
11533         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11534         element size at least 8 bytes, fixes mempool tests on
11535         64-bit machines.
11536
11537 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11538
11539         * dbus/dbus-transport-unix.c (unix_do_iteration):
11540         Unlock the connection mutex during a blocking select call.
11541         Add todo about how we need a way to wake up the select.
11542
11543         * dbus/dbus-connection-internal.h:
11544         * dbus/dbus-connection.c:
11545         Add _dbus_connection_lock and _dbus_connection_unlock.
11546
11547 2003-02-19  Havoc Pennington  <hp@pobox.com>
11548
11549         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11550         Doxyfile.in, not Doxyfile
11551
11552         * dbus/dbus-keyring.c: do some hacking on this
11553
11554         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11555
11556         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11557         dbus_error_init
11558         (dbus_set_error): remove dbus_error_init, check for message ==
11559         NULL *before* we sprintf into it, and add @todo about including
11560         system headers in this file
11561
11562         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11563
11564         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11565
11566         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11567         get various bits of user information based on either username
11568         or user ID
11569         (_dbus_homedir_from_username): new function
11570
11571 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11572
11573         * configure.in:
11574         Add check for nonposix getpwnam_r
11575
11576         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11577         Align the pool element size to a sizeof (void *) boundary.
11578
11579         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11580         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11581         General Solaris fixes.
11582
11583         * test/data/valid-messages/simplest-manual.message:
11584         Explicitly state that we want little-endian packing.
11585
11586 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11587
11588         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11589
11590         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11591         Added to create a transport connecting using a tcp/ip socket.
11592
11593         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11594         to a tcp socket at given host and port.
11595         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11596         hostname and port.
11597
11598         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11599
11600         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11601         Added to create a server listening on a TCP/IP socket.
11602
11603 2003-02-19  Havoc Pennington  <hp@pobox.com>
11604
11605         Throughout: mop up all the Doxygen warnings and undocumented
11606         stuff.
11607
11608         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11609         to search any paths.
11610
11611         * dbus/dbus-threads.c: move global mutex initializers to
11612         dbus-internals.h, multiple prototypes was confusing doxygen
11613         besides being kind of ugly
11614
11615         * Doxyfile (PREDEFINED): have Doxygen define
11616         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11617         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11618         (do not abuse the feature! it's for stuff like the autogenerated
11619         macros in dbus-md5.c, not just for things you don't feel like
11620         documenting...)
11621
11622 2003-02-18  Havoc Pennington  <hp@pobox.com>
11623
11624         * dbus/dbus-string.c (_dbus_string_zero): new function
11625
11626         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11627         wrap it in some dbus-friendly API
11628
11629         * dbus/dbus-types.h: add 16-bit types
11630
11631 2003-02-18  Joe Shaw  <joe@assbarn.com>
11632
11633         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11634         credentials from our currently running process.
11635         (get_word): Fix a buglet where we were copying the entire length
11636         instead of relative to our position.
11637
11638         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11639         keys on the stack... it's 640k of data.
11640
11641         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11642         read the credentials byte off the socket, even if we don't have
11643         SO_PEERCRED.
11644         (_dbus_poll): Implement poll() using select() for systems which
11645         don't have it.
11646
11647         * glib/test-dbus-glib.c (main): Print out an error if no
11648         parameters are given.
11649
11650         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11651         can fallback to a secondary auth mechanism if the first fails.
11652
11653 2003-02-18  Havoc Pennington  <hp@pobox.com>
11654
11655         * AUTHORS: add Alex
11656
11657 2003-02-17  Havoc Pennington  <hp@pobox.com>
11658
11659         * doc/dbus-specification.sgml: lots of cosmetic
11660         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11661         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11662         s/server/bus/ (except in authentication section). Add a section
11663         "Message Bus Message Routing"
11664
11665 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11666
11667         Release 0.4
11668
11669         * NEWS: Update
11670
11671 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11672
11673         * doc/dbus-specification.sgml:
11674         Specification updates.
11675
11676 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11677
11678         * bus/activation.c: (bus_activation_init), (child_setup),
11679         (bus_activation_activate_service):
11680         * bus/activation.h:
11681         * bus/main.c: (main):
11682         Set DBUS_ADDRESS environment variable.
11683
11684         * dbus/dbus-errors.c: (dbus_set_error):
11685         Don't use va_copy since that's a C99 feature.
11686
11687         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11688         (_dbus_spawn_async):
11689         * dbus/dbus-sysdeps.h:
11690         Add child_setup_func to _dbus_spawn_async.
11691
11692         * doc/dbus-specification.sgml:
11693         Update specification.
11694
11695         * test/spawn-test.c: (setup_func), (main):
11696         Fix test.
11697
11698 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11699
11700         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11701         Added todo.
11702
11703 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11704
11705         * doc/.cvsignore:
11706         * doc/Makefile.am:
11707         * doc/dbus-test-plan.sgml:
11708         Add test plan document.
11709
11710         * test/Makefile.am:
11711         Fix distcheck.
11712
11713 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11714
11715         * dbus/dbus-message.c: (decode_header_data),
11716         (_dbus_message_loader_return_buffer):
11717         Set the header padding amount when loading a message.
11718
11719 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11720
11721         * bus/dispatch.c: (send_one_message):
11722         Only send broadcast messages to registered connections.
11723
11724         * dbus/dbus-message.c: (dbus_message_name_is):
11725         * dbus/dbus-message.h:
11726         New convenience function.
11727
11728         * dbus/dbus-transport-debug.c: (do_reading):
11729         Only dispatch one message per run.
11730
11731         * test/Makefile.am:
11732         * test/bus-test.c: (new_connection_callback), (die),
11733         (test_hello_client1_handler), (test_hello_client2_handler),
11734         (test_hello_replies), (main):
11735
11736         * test/bus-test-loop.[ch]:
11737         Add these.
11738
11739 2003-02-16  Havoc Pennington  <hp@pobox.com>
11740
11741         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11742         backward conditional
11743
11744 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11745
11746         * dbus/dbus-connection.c:
11747         Implement sent_message_with_reply. (with_reply_and block is still
11748         busted).
11749         Made dispatch_message not lose message if OOM.
11750
11751         * dbus/dbus-errors.h:
11752         Add NoReply error (for reply timeouts).
11753
11754 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11755
11756         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11757         Actually free keys and values when destroying hashtable.
11758
11759 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11760
11761         * dbus/dbus-auth.c: (client_try_next_mechanism):
11762         Plug a leak.
11763
11764         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11765         Return TRUE if there's no thread implementation around.
11766
11767         * glib/dbus-gmain.c: (free_source),
11768         (dbus_connection_hookup_with_g_main):
11769         Make sure to remove the GSource when the connection is finalized.
11770
11771 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11772
11773         * bus/dispatch.c: (bus_dispatch_message_handler):
11774         * dbus/dbus-errors.h:
11775         Return an error if someone tries to send a message to a service
11776         that doesn't exist.
11777
11778 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11779
11780         * bus/activation.c: (load_directory), (bus_activation_init),
11781         (bus_activation_activate_service):
11782         * bus/activation.h:
11783         * bus/driver.c:
11784         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11785         More work on the activation handling.
11786
11787         * dbus/dbus-errors.h:
11788         Add some error messages
11789
11790         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11791         * dbus/dbus-message.h:
11792         New function that creates an error message.
11793
11794         * dbus/dbus-protocol.h:
11795         Add ACTIVATE_SERVER message.
11796
11797         * dbus/dbus-server-unix.c: (unix_handle_watch),
11798         (_dbus_server_new_for_domain_socket):
11799         Call _dbus_fd_set_close_on_exec.
11800
11801         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11802         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11803         (_dbus_fd_set_close_on_exec):
11804         * dbus/dbus-sysdeps.h:
11805         Add _dbus_fd_set_close_on exec function. Also add function that checks
11806         that all open fds are set to close-on-exec and warns otherwise.
11807
11808         * dbus/dbus-transport-unix.c:
11809         (_dbus_transport_new_for_domain_socket):
11810         Call _dbus_fd_set_close_on_exec.
11811
11812 2003-02-16  Havoc Pennington  <hp@pobox.com>
11813
11814         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11815         allow people to avoid setting SIGPIPE to SIG_IGN
11816         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11817         we've been asked not to
11818
11819 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11820
11821         * dbus/dbus-list.c: (_dbus_list_append_link),
11822         (_dbus_list_prepend_link):
11823         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11824         (dbus_realloc):
11825         Warning fixes.
11826
11827 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11828
11829         * bus/Makefile.am:
11830         * bus/activation.c: (bus_activation_entry_free),
11831         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11832         * bus/activation.h:
11833         * bus/main.c: (main):
11834         Add simple activation support, doesn't work yet though.
11835
11836 2003-02-15   Zack Rusin  <zack@kde.org>
11837
11838         * qt/dbus-qthread.cpp:  small casting fix
11839
11840 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11841
11842         * dbus/dbus-errors.c: (dbus_set_error):
11843         * dbus/dbus-errors.h:
11844         Add a few errors and make dbus_set_error void.
11845
11846         * dbus/dbus-sysdeps.c:
11847         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11848         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11849         * dbus/dbus-sysdeps.h:
11850         Add _dbus_spawn_async.
11851
11852         * test/spawn-test.c: (main):
11853         Test for _dbus_spawn_async.
11854
11855 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11856
11857         * dbus/dbus-internals.h:
11858         Fix build without tests.
11859
11860         * dbus/dbus-list.c: (alloc_link):
11861         Fix a segfault when a malloc fails.
11862
11863         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11864         (dbus_malloc0), (dbus_realloc):
11865         Add support for malloc debugging.
11866
11867 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11868
11869         * dbus/dbus-threads.c:
11870         * dbus/dbus-threads.h:
11871         Add condvars. Remove static mutext from API.
11872         Implement static mutexes by initializing them from threads_init.
11873
11874         * glib/dbus-gthread.c:
11875         * qt/dbus-qthread.cpp:
11876         Update with the thread api changes.
11877
11878
11879         * dbus/dbus-list.c:
11880         * dbus/dbus-list.h:
11881         Turn StaticMutex into normal mutex + init function.
11882         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11883         _dbus_list_append_link, _dbus_list_prepend_link
11884
11885
11886         * dbus/dbus-sysdeps.c:
11887         * dbus/dbus-sysdeps.h:
11888         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11889         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11890
11891         * dbus/dbus-protocol.h:
11892         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11893
11894         * dbus/dbus-message.c:
11895         Make ref/unref atomic.
11896         Fix some docs.
11897
11898         * dbus/dbus-connection-internal.h:
11899         * dbus/dbus-connection.c:
11900         * dbus/dbus-connection.h:
11901         Make threadsafe.
11902         Change _peek to _borrow,_return & _steal_borrowed.
11903         Change disconnect callback to event.
11904         Make dbus_connection_dispatch_messages reentrant.
11905
11906         * dbus/dbus-transport.c:
11907         Don't ref the connection on calls to the transport
11908         implementation.
11909
11910         * dbus/dbus-message-handler.c:
11911         Make threadsafe.
11912
11913         * glib/dbus-gmain.c:
11914         Don't use peek_message anymore
11915
11916         * test/Makefile.am:
11917         * test/debug-thread.c:
11918         * test/debug-thread.h:
11919         Simple thread implementation that asserts() on deadlocks in
11920         single-threaded code.
11921
11922         * test/bus-test.c:
11923         (main) Call debug_threads_init.
11924
11925         * test/watch.c:
11926         Use disconnect message instead of disconnect callback.
11927
11928         * bus/connection.c:
11929         * bus/connection.h:
11930         Don't call dbus_connection_set_disconnect_function. Instead export
11931         bus_connection_disconnect.
11932
11933         * bus/dispatch.c:
11934         Call bus_connection_disconnect when we get a disconnected message.
11935
11936 2003-02-15  Havoc Pennington  <hp@pobox.com>
11937
11938         * dbus/dbus-message.c (dbus_message_new): fool around with the
11939         docs
11940
11941 2003-02-14  Havoc Pennington  <hp@pobox.com>
11942
11943         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11944
11945         * dbus/dbus-memory.c: fail if the debug functions indicate we
11946         should
11947
11948         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11949         (_dbus_decrement_fail_alloc_counter): debug functions to
11950         simulate memory allocation failures
11951
11952 2003-02-14  Havoc Pennington  <hp@pobox.com>
11953
11954         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11955         to DBusError
11956
11957 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11958
11959         * bus/driver.c: (bus_driver_handle_hello):
11960         * bus/driver.h:
11961         * bus/services.c: (bus_service_lookup):
11962         Reorder message sending so we get a more sane order.
11963
11964         * test/bus-test.c: (message_handler):
11965         Fix tyop.
11966
11967 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11968
11969         * bus/driver.c: (bus_driver_send_service_deleted),
11970         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11971         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11972         (bus_driver_send_welcome_message),
11973         (bus_driver_handle_list_services),
11974         (bus_driver_handle_acquire_service),
11975         (bus_driver_handle_service_exists):
11976         * dbus/dbus-bus.c: (dbus_bus_register_client),
11977         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11978         * dbus/dbus-errors.c: (dbus_result_to_string):
11979         * dbus/dbus-errors.h:
11980         * dbus/dbus-message.c: (dbus_message_append_args),
11981         (dbus_message_append_args_valist), (dbus_message_get_args),
11982         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11983         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11984         (dbus_message_iter_get_byte_array),
11985         (dbus_message_iter_get_string_array), (message_iter_test),
11986         (check_message_handling), (_dbus_message_test):
11987         * dbus/dbus-message.h:
11988         * test/bus-test.c: (main):
11989         Change fields to arguments in messages, so that they won't be
11990         confused with header fields.
11991
11992         * glib/test-dbus-glib.c: (main):
11993         Remove append_fields from hello message.
11994
11995 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11996
11997         * dbus/dbus-errors.c:
11998         * dbus/dbus-message.c:
11999         * dbus/dbus-string.c:
12000         Documentation fixes.
12001
12002 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12003
12004         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12005         (remove_timeout):
12006         Implement support for timeouts in dbus-glib.
12007
12008 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12009
12010         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12011         * dbus/dbus-message.c: (process_test_subdir):
12012         * test/break-loader.c: (find_breaks_based_on):
12013         Plug some memory leaks.
12014
12015 2003-02-13  Richard Hult  <rhult@codefactory.se>
12016
12017         * bus/main.c: Fix build.
12018
12019         * dbus/dbus-errors.h:
12020         * dbus/dbus-errors.c: Fix copyright for Anders.
12021
12022 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12023
12024         * bus/Makefile.am:
12025         Add utils.[ch]
12026
12027         * bus/connection.c: (bus_connection_foreach):
12028         Fix a warning.
12029
12030         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12031         (unescape_string), (new_section), (parse_section_start),
12032         (parse_key_value), (report_error), (bus_desktop_file_load),
12033         (bus_desktop_file_get_string):
12034         * bus/desktop-file.h:
12035         Use DBusError for error reporting.
12036
12037         * bus/dispatch.c: (send_one_message),
12038         (bus_dispatch_message_handler):
12039         * bus/driver.c: (bus_driver_send_service_deleted),
12040         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12041         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12042         (bus_driver_send_welcome_message),
12043         (bus_driver_handle_list_services),
12044         (bus_driver_handle_acquire_service),
12045         (bus_driver_handle_service_exists):
12046         * bus/loop.c: (bus_loop_run):
12047         * bus/main.c:
12048         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12049
12050         * bus/utils.c: (bus_wait_for_memory):
12051         * bus/utils.h:
12052         New files with general utility functions.
12053
12054         * dbus/dbus-internals.h:
12055         Remove _DBUS_HANDLE_OOM.
12056
12057 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12058
12059         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12060         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12061         * dbus/dbus-errors.h:
12062         Add DBusError structure.
12063
12064 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12065
12066         * test/data/valid-messages/standard-acquire-service.message:
12067         * test/data/valid-messages/standard-hello.message:
12068         * test/data/valid-messages/standard-list-services.message:
12069         * test/data/valid-messages/standard-service-exists.message:
12070         Add some standard messages.
12071
12072 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12073
12074         * bus/driver.c: (bus_driver_send_welcome_message),
12075         (bus_driver_handle_list_services),
12076         (bus_driver_handle_acquire_service),
12077         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12078         Update for API changes in libdbus.
12079
12080         * dbus/dbus-message.c: (dbus_message_new_reply):
12081         * dbus/dbus-message.h:
12082         Remove the name argument. The spec states that replies shouldn't
12083         have a name.
12084
12085 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12086
12087         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12088         (report_error), (bus_desktop_file_load), (lookup_section),
12089         (lookup_line), (bus_desktop_file_get_raw),
12090         (bus_desktop_file_get_string):
12091         * bus/desktop-file.h:
12092         Some fixes, and new functions for getting a key value from a section.
12093
12094 2003-02-13  Havoc Pennington  <hp@pobox.com>
12095
12096         * test/data/auth/fail-after-n-attempts.auth-script: new test
12097
12098         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12099         reject the client.
12100
12101 2003-02-13  Havoc Pennington  <hp@pobox.com>
12102
12103         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12104         dbus_credentials_match were backward
12105
12106         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12107         NO_CREDENTIALS and ROOT_CREDENTIALS
12108
12109         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12110         into here. Never process more commands after we've reached an
12111         end state; store further data as unused bytes.
12112
12113         * test/data/auth/*: add more auth tests
12114
12115         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12116         command to match exact string and EXPECT_UNUSED to match unused
12117         bytes
12118
12119         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12120
12121 2003-02-12  Havoc Pennington  <hp@pobox.com>
12122
12123         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12124         \r off of popped lines
12125
12126         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12127         scripts
12128
12129         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12130         SEND, append \r\n
12131
12132 2003-02-12  Havoc Pennington  <hp@pobox.com>
12133
12134         * dbus/Makefile.am: remove break-loader from the build, since it
12135         moved.
12136
12137         * configure.in: add --enable-gcov to turn on coverage profiling
12138         flags and disable optimization
12139
12140 2003-02-10  Havoc Pennington  <hp@pobox.com>
12141
12142         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12143         initial cut at test framework for DBusAuth from laptop.
12144         Doesn't quite work yet but it compiles and I need to get
12145         it off the 266mhz laptop. ;-)
12146
12147         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12148         fix a memleak in error case
12149
12150 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12151
12152         * bus/Makefile.am:
12153         * bus/desktop-file.c:
12154         * bus/desktop-file.h:
12155         Add a desktop file parser.
12156
12157 2003-02-11  Zack Rusin  <zack@kde.org>
12158
12159         * qt/message.[h|cpp]: sample implementation
12160         of the KDE wrapper for DBusMessage
12161
12162 2003-02-09  Zack Rusin  <zack@kde.org>
12163
12164         * test/bus-test.c: make_it_compile
12165         * doc/dbus-specification.sgml: minimal semantic fix
12166
12167 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12168
12169         Release 0.3
12170
12171         * NEWS: Update
12172
12173 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12174
12175         * dbus/Makefile.am:
12176         * dbus/dbus-break-loader.c:
12177         * test/Makefile.am:
12178         * test/break-loader.c:
12179         Move dbus-break-loader to test/ and rename it to break-loader.
12180
12181 2003-02-02  Havoc Pennington  <hp@pobox.com>
12182
12183         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12184         for code to manage cookies in your home directory
12185
12186         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12187
12188         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12189         to authenticate, then disconnect the client.
12190
12191 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12192
12193         * dbus/dbus-message.c (dbus_message_append_fields):
12194         Correct docs.
12195
12196 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12197
12198         * doc/dbus-specification.sgml:
12199         Update address format section.
12200
12201 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12202
12203         * test/Makefile.am:
12204         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12205         (message_handler), (new_connection_callback), (loop_quit),
12206         (loop_run), (main):
12207         Add bus test.
12208
12209 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12210
12211         * bus/driver.c: (bus_driver_handle_service_exists):
12212         Simplify the code a bit.
12213
12214         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12215         Fix a silly.
12216
12217 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12218
12219         * bus/Makefile.am:
12220         Add libdbus-daemon.la and link to it.
12221
12222 2003-02-01  James Willcox  <jwillcox@gnome.org>
12223
12224         * bus/driver.c: (bus_driver_handle_own_service):
12225         Actually include the service reply code in the message.
12226
12227 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12228
12229         * bus/driver.c: (bus_driver_handle_service_exists):
12230         Don't unref the incoming message.
12231
12232 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12233
12234         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12235
12236 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12237
12238         * dbus/dbus-server.c: (dbus_server_listen):
12239         * dbus/dbus-transport.c: (_dbus_transport_open):
12240         ifdef out the calls to the debug transport and server.
12241
12242 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12243
12244         * dbus/dbus-watch.c (dbus_watch_get_flags):
12245         Add note in the docs that ERROR or HANGUP won't be returned
12246         and are assumed always on.
12247
12248         * glib/dbus-gmain.c (add_watch):
12249         Always add IO_ERR | IO_HUP
12250
12251         * dbus/dbus-message.h:
12252         Add semicolon after dbus_message_iter_get_string_array().
12253         Makes qt code build again
12254
12255 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12256
12257         * bus/driver.c: (create_unique_client_name),
12258         (bus_driver_handle_hello):
12259         Don't take a name, just use a numeric id to identify
12260         each client.
12261
12262         * dbus/Makefile.am:
12263         * dbus/dbus-bus.c: (dbus_bus_register_client),
12264         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12265         * dbus/dbus-bus.h:
12266         Add new convenience functions for communicating with the bus.
12267
12268         * dbus/dbus-message.h:
12269
12270         * dbus/dbus-protocol.h:
12271         Fix a typo.
12272
12273 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12274
12275         * dbus/dbus-message.c (dbus_message_append_fields):
12276         Add some more doc comments.
12277
12278 2003-02-01  Havoc Pennington  <hp@pobox.com>
12279
12280         * dbus/dbus-break-loader.c (randomly_modify_length): change
12281         a 4-byte value in the message as if it were a length
12282
12283         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12284         execute bit on saved files
12285
12286 2003-02-01  Havoc Pennington  <hp@pobox.com>
12287
12288         * dbus/dbus-break-loader.c (main): new program to find messages
12289         that break the loader.
12290
12291         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12292         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12293
12294         * dbus/dbus-string.c (_dbus_string_set_byte): new
12295
12296 2003-01-31  Havoc Pennington  <hp@pobox.com>
12297
12298         * dbus/dbus-message.c: refactor the test code to be more general,
12299         in preparation for writing a "randomly permute test cases to
12300         try to break the loader" program.
12301
12302 2003-01-31  Havoc Pennington  <hp@pobox.com>
12303
12304         * doc/dbus-specification.sgml: work on the specification
12305
12306         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12307         the protocol version of the message.
12308
12309         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12310         no longer specifies that.
12311         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12312         1/2/3/4)
12313
12314         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12315         "break" for DBUS_TYPE_NIL, remove @todo
12316
12317 2003-01-31  Havoc Pennington  <hp@pobox.com>
12318
12319         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12320         just set_is_error/get_is_error as this is a commonly-used
12321         function, and write docs.
12322
12323 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12324
12325         * dbus/dbus-address.c: (dbus_address_entry_free):
12326         Free key and value lists.
12327
12328         * dbus/dbus-internals.c: (_dbus_type_to_string):
12329         Add the types we didn't have.
12330
12331         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12332         (_dbus_marshal_validate_arg):
12333         Add NIL types.
12334
12335         * dbus/dbus-message.c: (dbus_message_set_sender):
12336         Remove todo about being able to set sender to NULL.
12337
12338         (dbus_message_set_is_error_reply),
12339         (dbus_message_get_is_error_reply):
12340         * dbus/dbus-message.h:
12341         New functions.
12342
12343         * dbus/dbus-protocol.h:
12344         Add error reply flag.
12345
12346         * test/data/valid-messages/opposite-endian.message:
12347         Add NIL type to test.
12348
12349 2003-01-31  Havoc Pennington  <hp@pobox.com>
12350
12351         * doc/dbus-specification.sgml: fully specify the header.  Add
12352         flags and major protocol version, and change header/body len to
12353         unsigned.
12354
12355         * dbus/dbus-message-builder.c (append_saved_length): append length
12356         as uint32
12357
12358         * dbus/dbus-message.c (dbus_message_create_header): change header
12359         length and body length to unsigned. Add the new fields from the
12360         spec
12361         (_dbus_message_loader_return_buffer): unsigned header/body len
12362
12363 2003-01-30  Havoc Pennington  <hp@pobox.com>
12364
12365         * dbus/dbus-auth.c: rework to use only REJECTED, no
12366         MECHANISMS
12367
12368         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12369         use REJECTED, suggested by Mark McLoughlin
12370
12371 2003-01-30  Havoc Pennington  <hp@pobox.com>
12372
12373         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12374         a better way to report errors here. e.g.  "unix address lacks
12375         path" or something. also "no such file" when the path doesn't
12376         exist, etc.
12377
12378         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12379         leaking list nodes
12380         (dbus_parse_address): add @todo about documenting address format,
12381         and allowing , and ; to be escaped
12382
12383 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12384
12385         * dbus/Makefile.am:
12386         Add dbus-address.[ch]
12387
12388         * dbus/dbus-address.c: (dbus_address_entry_free),
12389         (dbus_address_entries_free), (create_entry),
12390         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12391         (dbus_parse_address), (_dbus_address_test):
12392         * dbus/dbus-address.h:
12393         New files for dealing with address parsing.
12394
12395         * dbus/dbus-connection.c:
12396         Document timeout functions.
12397
12398         * dbus/dbus-message.c:
12399         Document dbus_message_new_from_message.
12400
12401         * dbus/dbus-server-debug.c:
12402         Document.
12403
12404         * dbus/dbus-server.c: (dbus_server_listen):
12405         Parse address and use correct server implementation.
12406
12407         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12408         * dbus/dbus-string.h:
12409         New function with test.
12410
12411         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12412         * dbus/dbus-test.h:
12413         Add address tests.
12414
12415         * dbus/dbus-transport-debug.c:
12416         Document.
12417
12418         * dbus/dbus-transport.c: (_dbus_transport_open):
12419         Parse address and use correct transport implementation.
12420
12421 2003-01-30  Havoc Pennington  <hp@pobox.com>
12422
12423         * dbus/dbus-message.c: use message->byte_order instead of
12424         DBUS_COMPILER_BYTE_ORDER throughout.
12425         (dbus_message_create_header): pad header to align the
12426         start of the body of the message to 8-byte boundary
12427
12428         * dbus/dbus-marshal.h: make all the demarshalers take const
12429         DBusString arguments.
12430
12431         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12432         validate message args here, so we don't have to do slow validation
12433         later, and so we catch bad messages as they are incoming. Also add
12434         better checks on header_len and body_len. Also fill in
12435         message->byte_order
12436
12437         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12438         implemented properly)
12439         (_dbus_string_validate_nul): new function to check all-nul
12440
12441         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12442         get_arg_end_pos and remove all validation
12443         (_dbus_marshal_validate_arg): actually do validation here.
12444
12445 2003-01-29  Havoc Pennington  <hp@pobox.com>
12446
12447         * dbus/dbus-message.c (check_message_handling): fix assertion
12448         failure on set_client_serial
12449
12450 2003-01-28  Havoc Pennington  <hp@pobox.com>
12451
12452         * dbus/dbus-server-debug.c: Add doc section comments
12453
12454         * dbus/dbus-transport-debug.c: add doc section comments
12455
12456 2003-01-28  Havoc Pennington  <hp@redhat.com>
12457
12458         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12459         the reverse order from how I had it
12460         (_dbus_string_base64_encode): reverse encoding order. I was
12461         basically byteswapping everything during encoding.
12462
12463 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12464
12465         * dbus/dbus-connection-internal.h:
12466         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12467         (_dbus_connection_remove_timeout):
12468         Add functions for adding and removing timeouts.
12469
12470         * dbus/dbus-message.c: (dbus_message_new_from_message):
12471         Add new function that takes a message and creates an exact
12472         copy of it, but with the refcount set to 1.
12473         (check_message_handling):
12474         Fix build error.
12475
12476         * dbus/dbus-server-protected.h:
12477         * dbus/dbus-server.c: (_dbus_server_init_base),
12478         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12479         (dbus_server_set_timeout_functions):
12480         (_dbus_server_remove_timeout):
12481         New functions so that a server can add and remove timeouts.
12482
12483         (dbus_server_listen):
12484         Add commented out call to dbus_server_debug_new.
12485
12486         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12487         Actually set the handler, doh.
12488
12489         * dbus/dbus-transport.c: (_dbus_transport_open):
12490         Add commented out call to dbus_transport_debug_client_new.
12491
12492         * dbus/Makefile.am:
12493         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12494
12495 2003-01-28  Havoc Pennington  <hp@pobox.com>
12496
12497         * dbus/dbus-message.c (check_message_handling): function to check
12498         on the loaded message, iterates over it etc.
12499
12500 2003-01-28  Havoc Pennington  <hp@pobox.com>
12501
12502         * test/Makefile.am (dist-hook): fix make distdir
12503
12504         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12505
12506 2003-01-27  Havoc Pennington  <hp@pobox.com>
12507
12508         * dbus/dbus-mempool.c (time_for_size): replace printf with
12509         _dbus_verbose
12510
12511         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12512         empty lines; fix the SAVE_LENGTH stuff to be
12513         START_LENGTH/END_LENGTH so it actually works; couple other
12514         bugfixes
12515
12516         * test/Makefile.am (dist-hook): add dist-hook for .message files
12517
12518         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12519         can be constant or locked.
12520         (_dbus_string_free): allow freeing a const string as
12521         documented/intended
12522
12523         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12524
12525         * dbus/dbus-test-main.c (main): take an argument which is the
12526         directory containing test data
12527
12528         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12529         argument to this and load all the messages in test/data/
12530         checking that they can be loaded or not loaded as appropriate.
12531
12532 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12533
12534         * bus/dispatch.c: (bus_dispatch_message_handler):
12535         Dispatch messages sent to services.
12536
12537         * bus/driver.c: (bus_driver_send_service_deleted),
12538         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12539         (bus_driver_send_service_acquired):
12540         Add helper functions for sending service related messages.
12541
12542         (bus_driver_send_welcome_message):
12543         Send HELLO_REPLY instead of WELCOME.
12544
12545         (bus_driver_handle_list_services):
12546         Send LIST_SERVICES_REPLY instead of SERVICES.
12547
12548         (bus_driver_handle_own_service),
12549         (bus_driver_handle_service_exists):
12550         New message handlers.
12551
12552         (bus_driver_handle_message):
12553         Invoke new message handlers.
12554
12555         (bus_driver_remove_connection):
12556         Don't remove any services here since that's done automatically
12557         by bus_service_remove_owner now.
12558
12559         * bus/driver.h:
12560         New function signatures.
12561
12562         * bus/services.c: (bus_service_add_owner):
12563         Send ServiceAcquired message if we're the only primary owner.
12564
12565         (bus_service_remove_owner):
12566         Send ServiceAcquired/ServiceLost messages.
12567
12568         (bus_service_set_prohibit_replacement),
12569         (bus_service_get_prohibit_replacement):
12570         Functions for setting prohibit replacement.
12571
12572         (bus_service_has_owner):
12573         New function that checks if a connection is in the owner queue of
12574         a certain service.
12575
12576         * bus/services.h:
12577         Add new function signatures.
12578
12579         * dbus/dbus-list.c: (_dbus_list_test):
12580         Add tests for _dbus_list_remove_last and traversing the list backwards.
12581
12582         * dbus/dbus-list.h:
12583         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12584         go any further, so return NULL then.
12585
12586         * dbus/dbus-protocol.h:
12587         Add new messages, service flags and service replies.
12588
12589 2003-01-26  Havoc Pennington  <hp@pobox.com>
12590
12591         * dbus/dbus-message-builder.c: implement, completely untested.
12592
12593         * test/data/*: add data to be used in testing.
12594         ".message" files are our simple loadable text format.
12595         ".message-raw" will be binary dumps of messages.
12596
12597         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12598
12599 2003-01-26  Havoc Pennington  <hp@pobox.com>
12600
12601         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12602
12603         * dbus/dbus-errors.c (dbus_result_to_string): add
12604         file errors
12605
12606         * dbus/dbus-message-builder.c: new file, will contain code to load
12607         up messages from files. Not implemented yet.
12608
12609 2003-01-26  Havoc Pennington  <hp@pobox.com>
12610
12611         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12612         the sender by setting to NULL
12613
12614 2003-01-26  Havoc Pennington  <hp@pobox.com>
12615
12616         The unit tests pass, but otherwise untested.  If it breaks, the
12617         tests should have been better. ;-)
12618
12619         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12620         the connection.
12621
12622         * dbus/dbus-message.c: redo everything so we maintain
12623         message->header as the only copy of the various fields.
12624         This avoids the possibility of out-of-memory in some cases,
12625         for example dbus_message_lock() can't run out of memory anymore,
12626         and avoids extra copying. Figured I may as well go ahead and do
12627         this since it was busted for dbus_message_lock to not return
12628         failure on OOM, and dbus_message_write_header was totally
12629         unchecked for OOM. Also fixed some random other bugs.
12630
12631         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12632         that strings are nul-terminated. Also, end_pos can be equal
12633         to string length just not greater than, I think.
12634         (_dbus_marshal_set_int32): new function
12635         (_dbus_marshal_set_uint32): new function
12636         (_dbus_marshal_set_string): new function
12637
12638         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12639         a warning, init timeout_list to NULL
12640         (dbus_connection_send_message): don't use uninitialized variable
12641         "serial"
12642
12643         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12644
12645 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12646
12647         * bus/driver.c: (bus_driver_handle_hello),
12648         (bus_driver_send_welcome_message):
12649         Plug leaks
12650
12651 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12652
12653         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12654         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12655         (dbus_connection_unref):
12656         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12657         * dbus/dbus-message.c: (dbus_message_unref),
12658         Plug memory leaks.
12659
12660         (dbus_message_get_fields):
12661         Remove debugging printout.
12662
12663         (_dbus_message_loader_return_buffer):
12664         Don't store the header string.
12665
12666         (_dbus_message_test):
12667         Plug leaks.
12668
12669 2003-01-26  Richard Hult  <rhult@codefactory.se>
12670
12671         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12672         the file descriptor list, since it can change under us.
12673
12674 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12675
12676         * glib/dbus-gmain.c: (dbus_connection_prepare),
12677         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12678         (remove_watch), (dbus_connection_hookup_with_g_main):
12679         Rewrite the glib handling to use its own GSource instead of a
12680         GIOChannel so we can catch messages put in the queue while waiting
12681         for a reply.
12682
12683 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12684
12685         * bus/Makefile.am:
12686         * bus/connection.c: (connection_disconnect_handler),
12687         (connection_watch_callback), (bus_connection_setup):
12688         * bus/dispatch.c: (send_one_message),
12689         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12690         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12691         * bus/dispatch.h:
12692         * bus/driver.c: (bus_driver_send_service_deleted),
12693         (bus_driver_send_service_created), (bus_driver_handle_hello),
12694         (bus_driver_send_welcome_message),
12695         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12696         (bus_driver_handle_message):
12697         * bus/driver.h:
12698         Refactor code, put the message dispatching in its own file. Use
12699         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12700         is disconnected.
12701
12702 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12703
12704         * dbus/dbus-internals.h:
12705         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12706
12707         * dbus/dbus-message.c: (dbus_message_get_sender):
12708         * dbus/dbus-message.h:
12709         Implement dbus_message_get_sender.
12710
12711         * dbus/dbus-protocol.h:
12712         Add message and service defines.
12713
12714 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12715
12716         * dbus/dbus-connection.c: (dbus_connection_send_message):
12717         * dbus/dbus-message-internal.h:
12718         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12719         (dbus_message_write_header):
12720         Remove _dbus_messag_unlock and don't set the client serial on a
12721         message if one already exists.
12722
12723 2003-01-24  Havoc Pennington  <hp@pobox.com>
12724
12725         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12726         list_pool
12727
12728         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12729         on OOM
12730
12731 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12732
12733         * dbus/dbus-list.c: (alloc_link), (free_link):
12734         Use a memory pool for the links.
12735
12736 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12737
12738         * bus/connection.c: (bus_connection_foreach):
12739         * bus/connection.h:
12740         Add new bus_connection_foreach function.
12741
12742         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12743         Add function that broadcasts a message to all clients.
12744
12745         (bus_driver_send_service_created), (bus_driver_handle_hello),
12746         (bus_driver_send_welcome_message),
12747         (bus_driver_handle_list_services), (bus_driver_message_handler):
12748         Implement functions that take care of listing services, and notifying
12749         clients when new services are created.
12750
12751         * bus/services.c: (bus_services_list):
12752         * bus/services.h:
12753         Add new function that returns an array of strings with the currently
12754         registered services.
12755
12756         * glib/dbus-glib.h:
12757         * glib/dbus-gmain.c:
12758         Update copyright year.
12759
12760 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12761
12762         * dbus/dbus-connection.c: (dbus_connection_send_message):
12763         Unlock the message in case it was sent earlier.
12764
12765         (dbus_connection_send_message_with_reply_and_block):
12766         Remove the reply message from the list.
12767
12768         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12769         Set array_len and new_pos correctly.
12770
12771         (_dbus_marshal_test):
12772         Remove debug output.
12773
12774         * dbus/dbus-message-internal.h:
12775         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12776         New function that returns the reply serial.
12777
12778         (_dbus_message_unlock):
12779         New function that unlocks a message and resets its header.
12780
12781         (dbus_message_append_string_array),
12782         (dbus_message_get_fields_valist),
12783         (dbus_message_iter_get_field_type),
12784         (dbus_message_iter_get_string_array),
12785         (dbus_message_get_fields),
12786         (dbus_message_append_fields_valist):
12787         Handle string arrays.
12788
12789         (dbus_message_set_sender):
12790         Make this function public since the bus daemon needs it.
12791
12792         (decode_header_data):
12793         Set the reply serial to -1 initially.
12794
12795         * dbus/dbus-message.h:
12796         Add dbus_message_set_sender.
12797
12798 2003-01-24  Havoc Pennington  <hp@pobox.com>
12799
12800         * doc/dbus-specification.sgml: add some stuff
12801
12802 2003-01-22  Havoc Pennington  <hp@pobox.com>
12803
12804         * doc/dbus-specification.sgml: Start to document the protocol.
12805
12806 2003-01-22  Havoc Pennington  <hp@pobox.com>
12807
12808         * dbus/dbus-connection.c
12809         (dbus_connection_send_message_with_reply_and_block): add some @todo
12810
12811         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12812
12813 2003-01-21  Havoc Pennington  <hp@pobox.com>
12814
12815         (patch untested because can't compile)
12816
12817         * bus/driver.c (create_unique_client_name): make this function
12818         never recycle client names. Also, caller should initialize
12819         the DBusString.
12820
12821         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12822
12823 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12824
12825         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12826         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12827         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12828         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12829         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12830         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12831         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12832         * dbus/dbus-marshal.h:
12833         * dbus/dbus-protocol.h:
12834         Add support for marshalling and demarshalling integer, double
12835         and string arrays.
12836
12837 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12838
12839         * bus/Makefile.am:
12840         Add driver.[ch]
12841
12842         * bus/connection.c: (connection_disconnect_handler):
12843         Remove the connection from the bus driver's list.
12844
12845         (connection_watch_callback): Dispatch messages.
12846
12847         (free_connection_data): Free connection name.
12848
12849         (bus_connection_setup): Add connection to the bus driver's list.
12850         (bus_connection_remove_owned_service):
12851         (bus_connection_set_name), (bus_connection_get_name):
12852         Add functions for setting and getting the connection's name.
12853
12854         * bus/connection.h:
12855         Add function headers.
12856
12857         * bus/driver.c: (create_unique_client_name),
12858         (bus_driver_handle_hello_message),
12859         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12860         (bus_driver_add_connection), (bus_driver_remove_connection):
12861         * bus/driver.h:
12862         * bus/main.c:
12863         * bus/services.c: (bus_service_free):
12864         * bus/services.h:
12865         New file that handles communication and registreation with the bus
12866         itself.
12867
12868 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12869
12870         * dbus/dbus-connection.c: (dbus_connection_send_message):
12871         Add a new client_serial parameter.
12872
12873         (dbus_connection_send_message_with_reply):
12874         Remove a @todo since we've implemented the blocking function.
12875
12876         (dbus_connection_send_message_with_reply_and_block):
12877         New function that sends a message and waits for a reply and
12878         then returns the reply.
12879
12880         * dbus/dbus-connection.h:
12881         Add new functions.
12882
12883         * dbus/dbus-errors.c: (dbus_result_to_string):
12884         * dbus/dbus-errors.h:
12885         Add new DBUS_RESULT.
12886
12887         * dbus/dbus-message-internal.h:
12888         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12889         (_dbus_message_set_sender), (dbus_message_write_header),
12890         (dbus_message_new_reply), (decode_header_data),
12891         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12892         * dbus/dbus-message.h:
12893         Add new functions that set the reply serial and sender.
12894         Also marshal and demarshal them correctly and add test.
12895
12896         * dbus/dbus-protocol.h:
12897         Add new DBUS_MESSAGE_TYPE_SENDER.
12898
12899         * glib/dbus-glib.h:
12900         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12901         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12902         (dbus_connection_hookup_with_g_main):
12903         * glib/test-dbus-glib.c: (main):
12904         Rewrite to use GIOChannel and remove the GSource crack.
12905
12906         * test/echo-client.c: (main):
12907         * test/watch.c: (check_messages):
12908         Update for changed APIs
12909
12910 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12911
12912         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12913
12914         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12915         Create a DBusTimeoutList.
12916         (dbus_connection_set_timeout_functions): Add new function to
12917         set timeout callbacks
12918
12919         * dbus/dbus-connection.h: Add public DBusTimeout API.
12920
12921         * dbus/dbus-message.c: (dbus_message_get_service):
12922         * dbus/dbus-message.h:  New function.
12923
12924         * dbus/dbus-server.c: Fix small doc typo.
12925
12926         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12927
12928 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12929
12930         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12931         of the string, just as long as specified.
12932
12933 2003-01-19  Havoc Pennington  <hp@pobox.com>
12934
12935         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12936         new function
12937
12938         * dbus/dbus-server.c (dbus_server_set_max_connections)
12939         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12940         keep track of current number of connections, and add API for
12941         setting a max (but haven't implemented enforcing the max yet)
12942
12943 2003-01-18  Havoc Pennington  <hp@pobox.com>
12944
12945         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12946         reading/writing if read_watch != NULL or write_watch != NULL.
12947
12948         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12949         the message loader code to actually load message->header and
12950         message->body into the newly-created message.
12951
12952         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12953         in OOM case
12954
12955         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12956         (dbus_connection_get_max_message_size)
12957         (dbus_connection_set_max_live_messages_size)
12958         (dbus_connection_get_max_live_messages_size): implement some
12959         resource limitation functions
12960
12961         * dbus/dbus-resources.c: new file implementing some of the
12962         resource limits stuff
12963
12964         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12965         missing docs, add @todo to handle OOM etc.
12966
12967         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12968         docs
12969
12970 2003-01-18  Havoc Pennington  <hp@pobox.com>
12971
12972         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12973         connection if it hasn't been already.
12974
12975         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12976         replace with DisconnectFunction.
12977
12978 2003-01-18  Havoc Pennington  <hp@pobox.com>
12979
12980         Building --disable-verbose-mode --disable-asserts --disable-tests
12981         cuts the library from 112K to 45K or so
12982
12983         * configure.in: check for varargs macro support,
12984         add --enable-verbose-mode, --enable-asserts.
12985
12986         * dbus/dbus-internals.h (_dbus_assert): support
12987         DBUS_DISABLE_ASSERT
12988         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12989
12990 2003-01-18  Havoc Pennington  <hp@pobox.com>
12991
12992         * dbus/dbus-test.c: include config.h so that tests actually run
12993
12994         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12995         so the failure mode when that assumption fails will be plenty
12996         obvious.
12997
12998 2003-01-18  Havoc Pennington  <hp@pobox.com>
12999
13000         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13001
13002         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13003         the distribution
13004
13005         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13006         since we don't want to use those in make check
13007
13008 2003-01-15  Havoc Pennington  <hp@redhat.com>
13009
13010         Release 0.2
13011
13012         * NEWS: update
13013
13014 2003-01-15  Havoc Pennington  <hp@redhat.com>
13015
13016         * test/Makefile.am: fix so that test source code ends up in the
13017         distribution on make distcheck
13018
13019 2003-01-15  Havoc Pennington  <hp@redhat.com>
13020
13021         Release 0.1.
13022
13023         * NEWS: update
13024
13025 2003-01-15  Havoc Pennington  <hp@redhat.com>
13026
13027         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13028         fix build when --disable-tests
13029
13030         * Makefile.am (EXTRA_DIST): put HACKING in here
13031
13032         * HACKING: document procedure for making a tarball release.
13033
13034 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13035
13036         * bus/connection.c: (connection_error_handler),
13037         (bus_connection_setup):
13038         * bus/main.c: (main):
13039         Make sure that the DBusConnectionData struct is NULLed
13040         out to prevent a segfault.
13041
13042         * dbus/dbus-errors.c: (dbus_result_to_string):
13043         * dbus/dbus-errors.h:
13044         * dbus/dbus-message.c: (dbus_message_get_fields),
13045         (dbus_message_get_fields_valist), (_dbus_message_test):
13046         * dbus/dbus-message.h:
13047         Make dbus_message_get_fields return a result code so we can
13048         track invalid fields as well as oom.
13049
13050 2003-01-11  Havoc Pennington  <hp@pobox.com>
13051
13052         * configure.in: change --enable-test/--enable-ansi action-if-given
13053         to enable_foo=$enableval instead of enable_foo=yes
13054
13055 2003-01-08  Havoc Pennington  <hp@pobox.com>
13056
13057         * dbus/dbus-string.c (_dbus_string_align_length): new function
13058
13059         * dbus/dbus-test-main.c: move main() for test app here
13060         * dbus/dbus-test.c
13061         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13062         symbol to run tests, because dbus-test isn't in the main
13063         library
13064
13065         Code review nitpicks.
13066
13067         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13068         for people with narrow emacs ;-). Assert client_serial was filled
13069         in. Assert message->name != NULL.
13070         (dbus_message_append_fields): have "first_field_type" arg separate
13071         from va list, needed for C++ binding that also uses varargs IIRC
13072         and helps with type safety
13073         (dbus_message_new): add @todo about using DBusString to store
13074         service/name internally
13075         (dbus_message_new): don't leak ->service and ->name on OOM later
13076         in the function
13077         (dbus_message_unref): free the service name
13078         (dbus_message_get_fields): same change to varargs
13079         i.e. first_field_type
13080         (_dbus_message_loader_return_buffer): assert that the message data
13081         is aligned (if not it's a bug in our code). Put in verbose griping
13082         about why we set corrupted = TRUE.
13083         (decode_header_data): add FIXME that char* is evil.  Was going to
13084         add FIXME about evil locale-specific string.h strncmp, but just
13085         switched to wacky string-as-uint32 optimization. Move check for
13086         "no room for field name" above get_const_data_len() to avoid
13087         assertion failure in get_const_data_len if we have trailing 2
13088         bytes or the like. Check for service and name fields being
13089         provided twice. Don't leak service/name on error. Require field
13090         names to be aligned to 4 bytes.
13091
13092         * dbus/dbus-marshal.c: move byte swap stuff to header
13093         (_dbus_pack_int32): uscore-prefix
13094         (_dbus_unpack_int32): uscore-prefix
13095         (_dbus_unpack_uint32): export
13096         (_dbus_demarshal_string): add @todo complaining about use of
13097         memcpy()
13098         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13099         handling allowing corrupt data to go unchecked
13100
13101 2003-01-08  Havoc Pennington  <hp@redhat.com>
13102
13103         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13104         to the select() as needed for authentication. (should be using
13105         _dbus_poll() not select, but for another day)
13106
13107         * dbus/dbus.h: include dbus/dbus-protocol.h
13108
13109 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13110
13111         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13112         dbus-connection.h
13113
13114 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13115
13116         * dbus/dbus-internals.c: (_dbus_type_to_string):
13117         New function that returns a string describing a type.
13118
13119         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13120         * dbus/dbus-marshal.h:
13121         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13122         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13123         (dbus_message_iter_get_byte_array):
13124         * dbus/dbus-message.h:
13125         Add new convenience functions for appending and getting message fields.
13126         Also add demarshalling routines for byte arrays.
13127
13128 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13129
13130         * dbus/dbus-connection-internal.h:
13131         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13132         (_dbus_connection_get_next_client_serial),
13133         (dbus_connection_send_message):
13134         * dbus/dbus-internals.h:
13135         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13136         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13137         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13138         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13139         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13140         (_dbus_verbose_bytes), (_dbus_marshal_test):
13141         * dbus/dbus-marshal.h:
13142         * dbus/dbus-message-internal.h:
13143         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13144         (dbus_message_write_header), (_dbus_message_lock),
13145         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13146         (dbus_message_get_name), (dbus_message_append_int32),
13147         (dbus_message_append_uint32), (dbus_message_append_double),
13148         (dbus_message_append_string), (dbus_message_append_byte_array),
13149         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13150         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13151         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13152         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13153         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13154         (decode_header_data), (_dbus_message_loader_return_buffer),
13155         (message_iter_test), (_dbus_message_test):
13156         * dbus/dbus-message.h:
13157         * dbus/dbus-protocol.h:
13158         * dbus/dbus-test.c: (main):
13159         * dbus/dbus-test.h:
13160         * glib/test-dbus-glib.c: (message_handler), (main):
13161         * test/echo-client.c: (main):
13162         * test/watch.c: (check_messages):
13163         Make messages sendable and receivable for real.
13164
13165 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13166
13167         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13168         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13169         * dbus/dbus-message.c: (dbus_message_append_int32),
13170         (dbus_message_append_uint32), (dbus_message_append_double),
13171         (dbus_message_append_string), (dbus_message_append_byte_array):
13172         Handle OOM restoration.
13173
13174 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13175
13176         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13177         (_dbus_demarshal_string), (_dbus_marshal_test):
13178         * dbus/dbus-marshal.h:
13179         * dbus/dbus-message.c: (dbus_message_get_name),
13180         Document these functions.
13181
13182         (dbus_message_append_int32), (dbus_message_append_uint32),
13183         (dbus_message_append_double), (dbus_message_append_string),
13184         (dbus_message_append_byte_array):
13185         * dbus/dbus-message.h:
13186         Add functions for adding message fields of different types.
13187
13188         * dbus/dbus-protocol.h:
13189         Add the different types.
13190
13191 2003-01-05  Havoc Pennington  <hp@pobox.com>
13192
13193         * bus/connection.c: implement routines for handling connections,
13194         first thing is keeping a list of owned services on each connection
13195         and setting up watches etc.
13196
13197         * bus/services.c: implement a mapping from service names to lists
13198         of connections
13199
13200         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13201
13202         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13203         to use static mutexes for global data
13204
13205         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13206         collection of functions to set/get application-specific data
13207         on the DBusConnection.
13208
13209 2003-01-04  Havoc Pennington  <hp@pobox.com>
13210
13211         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13212         (_dbus_poll): new function
13213
13214         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13215         copied from GLib
13216
13217         * bus/loop.c: initial code for the daemon main loop
13218
13219 2003-01-04  Havoc Pennington  <hp@pobox.com>
13220
13221         * test/watch.c (error_handler): make it safe if the error handler
13222         is called multiple times (if we s/error handler/disconnect
13223         handler/ we should just guarantee it's called only once)
13224
13225         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13226         error handler on disconnect (it's quite possible we should
13227         just change the error handler to a "disconnect handler," I'm
13228         not sure we have any other meaningful errors)
13229
13230         * configure.in: check for getpwnam_r
13231
13232         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13233         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13234         mechanism as in SASL spec, using socket credentials
13235
13236         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13237         (_dbus_send_credentials_unix_socket): new function
13238
13239         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13240         dbus_accept()
13241         (_dbus_write): only check errno if <0 returned
13242         (_dbus_write_two): ditto
13243
13244 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13245
13246         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13247         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13248         (_dbus_marshal_test):
13249         * dbus/dbus-marshal.h:
13250         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13251         to _dbus_marshal_utf8_string. Also fix some tests.
13252
13253 2002-12-28  Harri Porten  <porten@kde.org>
13254
13255         * configure.in: added check for C++ compiler and a very cheesy
13256         check for the Qt integration
13257
13258         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13259
13260         * qt/Makefile.am: added
13261
13262         * qt/.cvsignore: added
13263
13264         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13265         latter, added #ifdef QT_THREAD_SUPPORT guard.
13266
13267         * dbus/Makefile.am: added missing headers for make dist
13268
13269 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13270
13271         * dbus/Makefile.am: fixup export-symbols-regex.
13272
13273 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13274
13275         * acinclude.m4: Add this file and put the
13276         PKG_CHECK_MODULE macro in it.
13277
13278 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13279
13280         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13281         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13282         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13283         (_dbus_marshal_test):
13284         Make the demarshalling routines align the pos argument.
13285         Add string marshalling tests and fix the obvious bugs
13286         discovered.
13287
13288 2002-12-26  Havoc Pennington  <hp@pobox.com>
13289
13290         * dbus/dbus-auth.c: fixes fixes fixes
13291
13292         * dbus/dbus-transport-unix.c: wire up support for
13293         encoding/decoding data on the wire
13294
13295         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13296         (_dbus_auth_decode_data): append to target string
13297         instead of nuking it.
13298
13299 2002-12-26  Havoc Pennington  <hp@pobox.com>
13300
13301         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13302         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13303         doh
13304
13305         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13306         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13307         now). Main point is because I wanted unpack_uint32 to implement
13308         _dbus_verbose_bytes
13309         (_dbus_verbose_bytes): new function
13310
13311         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13312
13313         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13314         mechanism to handle a corrupt message stream
13315         (_dbus_message_loader_new): fix preallocation to only prealloc,
13316         not prelengthen
13317
13318         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13319         (_dbus_string_test): enhance tests for copy/move and fix the
13320         functions
13321
13322         * dbus/dbus-transport-unix.c: Hold references in more places to
13323         avoid reentrancy problems
13324
13325         * dbus/dbus-transport.c: ditto
13326
13327         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13328         leak reference count in no-message case
13329
13330         * test/watch.c (do_mainloop): handle adding/removing watches
13331         during iteration over the watches. Also, ref the connection/server
13332         stored on a watch, so we don't try to mangle a destroyed one.
13333
13334         * dbus/dbus-transport-unix.c (do_authentication): perform
13335         authentication
13336
13337         * dbus/dbus-auth.c (get_state): add a state
13338         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13339         (_dbus_auth_get_unused_bytes): append the unused bytes
13340         to the passed in string, rather than prepend
13341
13342         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13343         the auth conversation DBusAuth
13344
13345         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13346         (_dbus_transport_new_for_domain_socket): when creating a
13347         transport, pass in whether it's a client-side or server-side
13348         transport so we know which DBusAuth to create
13349
13350 2002-12-03  Havoc Pennington  <hp@pobox.com>
13351
13352         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13353         _after_ finalizing the derived members
13354         (unix_connection_set): unref watch if we fail to add it
13355
13356         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13357         transport first, so that the connection owned by the
13358         transport will be valid as the transport finalizes.
13359
13360         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13361         if necessary, and remove watches from the connection.
13362
13363         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13364
13365 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13366
13367         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13368         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13369         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13370         (_dbus_marshal_test):
13371         * dbus/dbus-marshal.h:
13372         Add string marshal functions and have the demarshal functions
13373         return the new position.
13374
13375 2002-12-25  Havoc Pennington  <hp@pobox.com>
13376
13377         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13378         it is a simple protocol that just maps directly to SASL.
13379
13380         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13381         initial implementation, not actually used yet.
13382
13383         * dbus/dbus-string.c (_dbus_string_find): new function
13384         (_dbus_string_equal): new function
13385         (_dbus_string_base64_encode): new function
13386         (_dbus_string_base64_decode): new function
13387
13388 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13389
13390         * dbus/Makefile.am:
13391         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13392         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13393         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13394         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13395         * dbus/dbus-marshal.h:
13396         * dbus/dbus-protocol.h:
13397         * dbus/dbus-test.c: (main):
13398         * dbus/dbus-test.h:
13399         Add un-optimized marshalling/demarshalling routines.
13400
13401 2002-12-25  Harri Porten  <porten@kde.org>
13402
13403         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13404
13405 2002-12-24  Zack Rusin  <zack@kde.org>
13406
13407         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13408         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13409         main loop stuff
13410
13411 2002-12-24  Havoc Pennington  <hp@pobox.com>
13412
13413         * glib/dbus-gthread.c: fix include
13414
13415         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13416         I think glib API needs to change, though, as you don't
13417         want to use DBusMessageFunction, you want to use the
13418         DBusMessageHandler object. Probably
13419         dbus_connection_open_with_g_main_loop()
13420         and dbus_connection_setup_g_main_loop() or something like that
13421         (but think of better names...) that just create a connection
13422         that has watch/timeout functions etc. already set up.
13423
13424         * dbus/dbus-connection.c
13425         (dbus_connection_send_message_with_reply): new function just to
13426         show how the message handler helps us deal with replies.
13427
13428         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13429
13430         * dbus/dbus-string.c (_dbus_string_test): free a string that
13431         wasn't
13432
13433         * dbus/dbus-hash.c: use memory pools for the hash entries
13434         (rebuild_table): be more paranoid about overflow, and
13435         shrink table when we can
13436         (_dbus_hash_test): reduce number of sprintfs and write
13437         valid C89. Add tests for case where we grow and then
13438         shrink the hash table.
13439
13440         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13441
13442         * dbus/dbus-connection.c (dbus_connection_register_handler)
13443         (dbus_connection_unregister_handler): new functions
13444
13445         * dbus/dbus-message.c (dbus_message_get_name): new
13446
13447         * dbus/dbus-list.c: fix docs typo
13448
13449         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13450         an object representing a handler for messages.
13451
13452 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13453
13454         * glib/dbus-glib.h:
13455         * glib/dbus-gthread.c: (dbus_gthread_init):
13456         Don't use the gdbus prefix for public functions.
13457
13458 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13459
13460         * Makefile.am:
13461         * configure.in:
13462         Add GLib checks and fixup .pc files
13463
13464         * glib/Makefile.am:
13465         * glib/dbus-glib.h:
13466         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13467         (gdbus_connection_check), (gdbus_connection_dispatch),
13468         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13469         (dbus_connection_gsource_new):
13470         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13471         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13472         * glib/test-dbus-glib.c: (message_handler), (main):
13473         Add GLib support.
13474
13475 2002-12-15  Harri Porten  <porten@kde.org>
13476
13477         * autogen.sh: check for libtoolize before attempting to use it
13478
13479         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13480         struct.
13481
13482         * .cvsignore: ignore more stamp files
13483
13484         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13485
13486         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13487         without make install.
13488
13489 2002-12-15  Havoc Pennington  <hp@pobox.com>
13490
13491         * dbus/dbus-threads.c: add thread stubs that a higher library
13492         layer can fill in. e.g. the GLib wrapper might fill them in with
13493         GThread stuff. We still need to use this thread API to
13494         thread-safe-ize the library.
13495
13496 2002-12-12  Havoc Pennington  <hp@pobox.com>
13497
13498         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13499         below new interfaces and include fewer system headers.
13500
13501         * dbus/dbus-sysdeps.c (_dbus_read): new function
13502         (_dbus_write): new function
13503         (_dbus_write_two): new function
13504         (_dbus_connect_unix_socket): new function
13505         (_dbus_listen_unix_socket): new function
13506
13507         * dbus/dbus-message-internal.h: change interfaces to use
13508         DBusString
13509
13510 2002-12-11  Havoc Pennington  <hp@pobox.com>
13511
13512         * dbus/dbus-types.h: add dbus_unichar
13513
13514         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13515
13516         * dbus/dbus-connection.c (dbus_connection_send_message): return
13517         TRUE on success
13518
13519         * dbus/dbus-transport.c: include dbus-watch.h
13520
13521         * dbus/dbus-connection.c: include dbus-message-internal.h
13522
13523         * HACKING: add file with coding guidelines stuff.
13524
13525         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13526         handling here, for security purposes (as in vsftpd). Not actually
13527         using this class yet.
13528
13529         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13530         system/libc usage here, as in vsftpd, for ease of auditing (and
13531         should also simplify portability). Haven't actually moved all the
13532         system/libc usage into here yet.
13533
13534 2002-11-25  Havoc Pennington  <hp@pobox.com>
13535
13536         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13537         always print the first verbose message.
13538
13539 2002-11-24  Havoc Pennington  <hp@pobox.com>
13540
13541         * test/echo-client.c, test/echo-server.c: cheesy test
13542         clients.
13543
13544         * configure.in (AC_CHECK_FUNCS): check for writev
13545
13546         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13547         function
13548
13549         * dbus/dbus-list.c (_dbus_list_foreach): new function
13550
13551         * dbus/dbus-internals.c (_dbus_verbose): new function
13552
13553         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13554         representing a server that listens for connections.
13555
13556         * dbus/.cvsignore: create
13557
13558         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13559         public API for reporting errors
13560
13561         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13562         public object representing a connection that
13563         sends/receives messages. (Same object used for
13564         both client and server.)
13565
13566         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13567         Basic abstraction for different kinds of stream
13568         that we might read/write messages from.
13569
13570 2002-11-23  Havoc Pennington  <hp@pobox.com>
13571
13572         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13573         _DBUS_INT_MAX
13574
13575         * dbus/dbus-test.c (main): add list test, and include
13576         dbus-test.h as intended
13577
13578         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13579         (_dbus_hash_table_remove_int): return value indicates
13580         whether the entry existed to remove
13581
13582         * dbus/dbus-list.c: add linked list utility class,
13583         with docs and tests
13584
13585         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13586         array sometimes.
13587
13588 2002-11-23  Havoc Pennington  <hp@pobox.com>
13589
13590         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13591         DBUS_END_DECLS to nothing, that should fix this once and for all
13592
13593         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13594
13595         * dbus/dbus-message.c, dbus/dbus-hash.c:
13596         add some missing @brief
13597
13598 2002-11-23  Havoc Pennington  <hp@pobox.com>
13599
13600         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13601         to avoid confusing Doxygen
13602
13603         * dbus/dbus-hash.c: @} not }@
13604
13605         * dbus/dbus-message.c (struct DBusMessage): split out
13606         internals docs
13607
13608 2002-11-23  Havoc Pennington  <hp@pobox.com>
13609
13610         * configure.in: pile on more warning flags if using gcc
13611
13612         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13613         to document static functions
13614
13615         * configure.in: add summary to end of configure so it
13616         looks nice and attractive
13617
13618         * dbus/dbus-hash.c: finish implementation and write unit
13619         tests and docs
13620
13621         * configure.in: add --enable-tests to enable unit tests
13622
13623         * dbus/dbus-test.c: test program to run unit tests
13624         for all files in dbus/*, initially runs a test for
13625         dbus-hash.c
13626
13627         * dbus/dbus-internals.h: file to hold some internal utility stuff
13628
13629 2002-11-22  Havoc Pennington  <hp@redhat.com>
13630
13631         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13632         "ported" away from Tcl
13633
13634         * dbus/dbus-types.h: header for types such as dbus_bool_t
13635
13636 2002-11-22  Havoc Pennington  <hp@redhat.com>
13637
13638         * dbus/dbus.h: fixups for doc warnings
13639
13640         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13641         macros
13642         (QUIET): make it quiet so we can see warnings
13643
13644         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13645
13646 2002-11-22  Havoc Pennington  <hp@redhat.com>
13647
13648         * Makefile.am: include "Doxyfile" target in all-local
13649
13650         * configure.in: generate the Doxyfile
13651
13652         * Doxyfile.in: move Doxyfile here, so we can use
13653         configure to generate a Doxyfile with the right
13654         version number etc.
13655
13656 2002-11-22  Havoc Pennington  <hp@redhat.com>
13657
13658         * dbus/dbus-message.c: move inline docs into .c file
13659
13660         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13661         so all docs are under doc/
13662         (MAN_EXTENSION): generate man pages. Use extension
13663         ".3dbus" which matches ".3qt" on my system,
13664         I guess this is OK, I don't know really.
13665         (FILE_PATTERNS): look for .c files not .h, makes sense
13666         for plain C I think
13667
13668 2002-11-22  Havoc Pennington  <hp@pobox.com>
13669
13670         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13671         because any app can be a server, and any app can be a client,
13672         the bus is a special kind of server.
13673
13674 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13675
13676         * Doxyfile : adding. Still needs Makefile rules to be generated
13677         automatically (just run "doxygen" in the toplevel dir for now to
13678         generate docs)
13679
13680         * dbus/dbus-message.h : Adding sample docs (javadoc since
13681         resembles gtk-doc a little more)
13682
13683         * dbus/dbus.h : Adding sample docs
13684
13685 2002-11-21  Havoc Pennington  <hp@redhat.com>
13686
13687         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13688         so we can allow ourselves to include files directly,
13689         instead of having to use dbus.h
13690
13691         * dbus/dbus.h: fill in
13692
13693         * dbus/dbus-message.h: sketch out a sample header file.
13694         Include griping if you include it directly instead of
13695         via dbus.h
13696
13697         * dbus/dbus-macros.h: new file with macros for extern "C",
13698         TRUE/FALSE, NULL, etc.
13699
13700         * doc/file-boilerplate.c: put include guards in here
13701
13702 2002-11-21  Havoc Pennington  <hp@redhat.com>
13703
13704         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13705
13706         * COPYING: include the GPL as well, and license code
13707         under both AFL and GPL.
13708
13709 2002-11-21  Havoc Pennington  <hp@redhat.com>
13710
13711         * acconfig.h: get rid of this
13712
13713         * autogen.sh (run_configure): add --no-configure option
13714
13715         * configure.in: remove AC_ARG_PROGRAM to make
13716         autoconf complain less. add AC_PREREQ.
13717         add AC_DEFINE third arg.
13718
13719 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13720
13721         * doc/Makefile.am:
13722         Fix references so we can distcheck.
13723
13724 2002-11-21  Havoc Pennington  <hp@redhat.com>
13725
13726         * Initial module creation
13727