2006-07-16 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-07-16  Havoc Pennington  <hp@redhat.com>
2
3         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
4         Improve the error message on reply timeout
5
6 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
7
8         * Remove all bindings
9
10 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
11
12         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
13         and set pending_reply out arg to NULL is connection is disconnected
14         (connection_timeout_and_complete_all_pending_calls_unlocked): New
15         static method for cleaning up pending calls on disconnect
16         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
17         calls queued timeouts on disconnect 
18
19          * dbus/dbus-pending-call.ci (_dbus_pending_call_set_connection):
20         Remove 
21
22 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
23
24         * bus/activation.[ch] (bus_activation_list_services): new function to 
25         get the list of services that can be activated
26
27         * bus/dispatch.c: test coverage for the new bus method
28         ListActivatableNames
29
30         * bus/driver.c: new bus method ListActivatableNames to get the list of
31         services that can be activated
32
33         * doc/dbus-specification.xml: ListActivatableNames method documentation
34
35 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
36         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
37         source files
38
39 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
40         * dbus/dbus-message-factory.c:
41         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
42
43 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
44         * dbus/dbus-connection-internal.h:
45         * dbus/dbus-connection.c:
46         * file dbus/dbus-pending-call.c:
47         * dbus/dbus-pending-call.h:
48         Make DBusPendingCall an opaque type even to D-Bus internals
49
50 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
51
52         * dbus/dbus-connection.h: remove connection_disconnect and replace with
53         connection_close
54
55         * dbus/dbus-connection.c: include dbus-bus.h
56         (_dbus_connection_read_write_dispatch): make static
57
58 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
59
60         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
61         function
62         (dbus_connection_dispatch): On disconnect unref any shared connections
63
64         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
65         for cleaning up shared connections on disconnect
66         (internal_bus_get): get a hard refrence to shared connections when
67         they are created
68         
69         * doc/TODO: Remove items which are no longer relevent or have been fixed
70         Split 1.0 todo items with a 0.90 freeze todo list
71  
72 2006-06-14  Ross Burton  <ross@openedhand.com>
73
74         * glib/dbus-gobject.c:
75         Free a leaking GArray (surely not!) in dbus_g_method_return.
76
77 2006-06-14  Ross Burton  <ross@openedhand.com>
78
79         * tools/Makefile.am:
80         * tools/dbus-monitor.c:
81         Don't use the GLib bindings in dbus-monitor (patch from Ralf
82         Habacker).
83         
84 2006-06-14  Ross Burton  <ross@openedhand.com>
85
86         * tools/dbus-print-message.c:
87         Also print the object path when outputting signals or method calls.
88
89 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
90
91         * qt/src/Makefile.am: install the qdbus.h header.
92         This allows people to actually use the installed code.
93
94 2006-06-12  Ross Burton  <ross@openedhand.com>
95
96         * glib/dbus-gproxy.c:
97         Don't leak a GArray when firing signals (thank Rob Taylor for review).
98
99 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
100
101         * Released 0.62
102
103 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
104
105         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
106         break pedantic builds. Closes bug 6043 (patch approved by
107         Havoc back in February).
108
109 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
110
111         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
112         that took a QDBusMessage parameter.
113         * qt/src/qdbusbus.h: Add a default flag for RequestName.
114         * qt/tools/dbus.cpp: Don't use automatic call because we might
115         be calling an async method: request a reply.
116
117 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
118
119         * test/qt/*: Update the testcases, including testing the new
120         functionality of sending null QByteArray and QString over the
121         bus. Add new headertest test and restore the old
122         qdbusxmlparser test.
123
124 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
125
126         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
127         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
128
129         * qt/examples/Makefile.am:
130         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
131         form.
132
133         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
134         QByteArray() (nulls) over the bus.
135         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
136         the one that has the signature suffix stripped.
137         * qt/src/qdbusreply.h: Make some methods const.
138
139 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
140
141         Patch from Timo Hoenig <thoenig@suse.de>.
142
143         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
144         required during build to EXTRA_DIST.
145         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
146         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
147         * configure.in: Fix "make dist", take care that the Makefile for
148         qt/dbus is being generated.
149
150 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
151
152         * bus/bus.c: Fix eavesdropping on method calls
153
154 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
155
156         * configure.in:
157         * dbus/dbus-userdb-util.c:
158         Add Solaris console owner patch from Artem Kachitchkine
159
160 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
161
162         * qt/Makfile.am:
163         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
164         reorganisation. Thanks to Timo Hoenig for pointing this out.
165
166 2006-06-06  Robert McQueen  <robot101@debian.org>
167
168         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
169           call to dbus_g_type_get_struct.
170
171 2006-06-06  Robert McQueen  <robot101@debian.org>
172
173         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
174           pointers were put into a GPtrArray-based specialised collection, and
175           then freed along with the array. GValues which you add into
176           collections or maps which have the NOCOPY flag set are assumed to not
177           belong to the caller, so rather than the existing pointer-stealing
178           semantics, they are copied instead. Given that the main consumers of
179           this abstraction are the bindings themselves, I don't think this is
180           too bad, but others should watch their choice of take vs set_static.
181
182 2006-06-06  Robert McQueen  <robot101@debian.org>
183
184         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
185           of g_slist_prepend not being used. Fixed copying of slist-based
186           specialised collections, then wrote a test case and found that it was
187           all broken. Went on to fix iterating and appending too. Good thing
188           nobody uses this code yet.
189
190 2006-06-06  Robert McQueen  <robot101@debian.org>
191
192         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
193           the iterators use gvalue_take_ptrarray_value (the GValues themselves
194           are discarded without unsetting, so it makes no difference whether
195           we take or set_static). Remove cases for G_TYPE_POINTER because
196           there really is nothing useful we can do with them in our
197           specialised types - we *need* boxed copy/free functions at the very
198           least.
199
200 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
201
202         * qt/dbus: Add directory. I had forgotten to add this
203         yesterday after the move...
204
205         * qt/examples/Makefile.am:
206         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
207
208         * qt/tools/Makefile.am:
209         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
210         Added feature to get and set properties.
211         Added validation of service, object path and interface names.
212
213         * qt/tools/dbusidl2cpp.cpp: Two new features:
214         1) Allow specifying both the header and the source file names,
215         by separating them with a colon.
216         2) Don't write an interface output if the -p switch wasn't
217         given, but the -a was.
218
219         * qt/src/*: Fix usage of Iterators and ConstIterators.
220         Fix shadowing of variables by other variables (-Wshadow).
221         Fix keyword-cleanliness in headers.
222         Fix ASCII-cast (QLatin1String, QLatin1Char).
223         Fix validation of member names.
224         Add extra checking of introspection data during XML parsing.
225         Various bug fixes.
226
227 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
228
229         * dbus/Makefile.am:
230         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
231         qt/dbus/qdbus.h now.
232
233 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
234
235         * configure.in: Make --disable-qt actually do
236           something. Patch inspired by Zack Rusin.
237
238 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
239
240         * qt/: Update to Subversion r548032.
241         This includes a big reorganisation of the files inside the
242         subdir.
243
244 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
245
246         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
247         clear:  
248         "Failed to connect to socket <host>:<port> <error>" instead of
249         "Failed to connect to socket <host>: <error>:<port>"
250
251         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
252         for a tcp transport. 
253
254 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
255
256         * qt/*: Update the QtDBus bindings up to revision 546310 in
257         Subversion.
258         This adds the dbuscpp2xml tool, that parses a C++ header and
259         outputs a D-BUS Introspection XML.
260
261 2006-05-21  Havoc Pennington  <hp@redhat.com>
262
263         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
264         is not NULL when it shouldn't be. Also a couple of possible fixes
265         for #4637 though I don't understand why the bug happens, to be
266         honest... also the object constructor has an assert name != NULL
267         and the name is only currently NULL for peer-to-peer proxies that 
268         I don't think anyone uses? So it should be asserting.
269         Anyway, for now at least see if we get an earlier assertion failure.
270
271         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
272         apparently broken code to be sure the tests fail and someone 
273         will fix them...
274
275 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
276
277         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
278         and arrays when they had a single element: has_next returns
279         false, even before you read the element. So, instead, check
280         the array length.
281
282 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
283
284         * qt/qdbusmessage.cpp:
285         * qt/qdbustypehelper_p.h:
286         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
287         the list is a const-reference
288
289 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
290
291         * Adding old doc patch that never got applied
292         
293         * dbus/bus.c (dbus_bus_add_match): Add documentation
294
295         * doc/dbus-specification.xml: Add documentation for the match rules
296           and the AddMatch and RemoveMatch methods
297
298 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
299
300         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
301         call (r535506)
302
303         * qt/dbusidl2cpp.cpp:
304         * qt/qdbusabstractadaptor.cpp:
305         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
306         sibling of the QDBusAbstractAdaptor objects instead of the
307         parent. (r535848)
308
309         * qt/dbusidl2cpp.cpp:
310         * qt/qdbusabstractinterface.cpp:
311         * qt/qdbusabstractinterface.h:
312         * qt/qdbusabstractinterface_p.h:
313         * qt/qdbusinterface.cpp: Make properties in interfaces
314         actually work. The code that was generated would not compile,
315         due to moc calls to functions that did not exist. They now
316         shall. (r536571)
317
318 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
319
320         * Makefile.am:
321         * configure.in:
322         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
323         Thanks to Brad Hards for providing the patch
324
325 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
326
327         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
328         call. (r535506)
329
330 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
331
332         * qt/examples/dbus.cpp: Enhance error messages and use
333         QDBusInterfacePtr.
334
335 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
336
337         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
338         and disable the copy operators. (r533772, r534746)
339
340         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
341
342         * qt/qdbusabstractinterface.cpp:
343         * qt/qdbusabstractinterface.h: Change the default call mode to
344         not use the event loop. Add convenience call() methods that
345         take a CallMode parameter. (r534042)
346
347         * qt/qdbusconnection.h: Change the default call mode to not
348         use the event loop. (r534042)
349
350         * qt/qdbusinterface.cpp:
351         * qt/qdbusinterface.h: Add a method to tell us if the
352         interface is valid (since we don't return a null pointer
353         anymore) (r534099)
354
355         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
356         (r534101)
357
358         * qt/qdbusinternalfilters.cpp: Decouple the introspection
359         function in two so taht we get the chance to introspect
360         without having a QDBusMessage (r534102)
361
362         * qt/qdbusbus.h:
363         * qt/qdbusconnection.cpp:
364         * qt/qdbusconnection_p.h:
365         * qt/qdbusintegrator.cpp: Keep a list of our own names to
366         avoid a round-trip to the server when attempting to introspect
367         one of our own objects. Also make sure the filter functions
368         match the empty interface as well. (r534108)
369         Don't keep the connection names. Instead, trust the unique
370         connection name (r534111)
371         Remove event loop usage (r534112)
372
373 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
374
375         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
376         Brad Hards.
377
378 2006-04-28  Robert McQueen  <robot101@debian.org>
379
380         * glib/dbus-gproxy.c: Fix properties so that they can be given in
381         any order, making it easier for people who inherit from this
382         object.
383
384 2006-04-28  Robert McQueen  <robot101@debian.org>
385
386         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
387         of memory from within pointer arrays and lists. Fixes bug #6300.
388
389 2006-04-28  Robert McQueen  <robot101@debian.org>
390
391         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
392         generating struct signatures. Fixes bug #6083.
393
394 2006-04-28  Robert McQueen  <robot101@debian.org>
395
396         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
397         to qdbusconnection_p.moc.
398
399 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
400
401         * README, INSTALL: Doc fixes
402         Patch from Brad Hards <bradh at frogmouth.net>
403
404 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
405
406         * qt/examples/dbus.cpp: Use the new merged-interface mode for
407         the dynamic meta object. No need to guess which interface to
408         call.
409
410 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
411
412         * qt/qdbusconnection_p.h:
413         * qt/qdbusmetaobject.cpp:
414         * qt/qdbusmetaobject_p.h:
415         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
416         for the dynamic meta object. No need to guess which
417         interface to call.
418         * qt/qdbusabstractinterface_p.h:
419         * qt/qdbusconnection.cpp:
420         * qt/qdbusintegrator.cpp:
421         * qt/qdbusinterface.cpp:
422         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
423         Add a QDBusRef that looks and behaves like DCOPRef.
424
425 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
426
427         * dbus/dbus-connection.c: Interfaces are optional in method
428         calls, so don't give up if the interface parameter is NULL.
429         Patch reviewed by Havoc Pennington.
430
431 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
432
433         * qt/qdbusreply.h: Add default constructor and operator=
434           (r532625)
435         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
436           in public headers (r532952)
437         * qt/qdbusabstractinterface.cpp:
438         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
439           make it the default (r532951)
440
441 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
442
443         * dbus/dbus-connection.c: Fix asserts
444         Patch from Tim Moloney <t.moloney at verizon.net>
445
446 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
447
448         * mono/Connection.cs, mono/Message.cs: Check Target type
449         Patch from Aaron Bockover (abockover at novell.com)
450
451 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
452
453         * INSTALL: fine-tune the requirements for the Qt4 binding.
454
455 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
456
457         * tools/dbus-print-message.c: Added support for printing of all 
458           remaining data types. Fixed logic for indentation of compound
459           data types.
460         
461 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
462
463         * INSTALL: fill out content of file providing DBus specific
464           build installations, followed by generic Auto* INSTALL file
465           content
466         
467 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
468
469         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
470           Patch by Stefan Eilers. (r529537)
471
472 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
473
474         * qt/qdbusinternalfilters.cpp: Don't show the parent's
475           contents (r528208)
476
477 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
478
479         * qt/Makefile.am: fix the dependency for
480           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
481           not in qdbusconnection.cpp.
482           Thanks to Jakub Stachowski <stachowski@hypair.net> for
483           spotting this.
484
485 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
486
487         * qt/examples/listnames.cpp:
488         * qt/examples/Makefile.am: Three ways to list the names on the
489           bus.
490
491 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
492
493         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
494           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
495
496 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
497
498         Merge from Subversion:
499         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
500           something that exists (r526315)
501         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
502           slots/signals (r526316)
503         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
504           also return an unknown-method error if the parameters don't
505           match for org.freedesktop.DBus.Properties. (r526842)
506         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
507         * qt/qdbusintegrator.cpp: Restore the proper order of
508           delivery: don't make method returns be delivered on priority
509           (r528150)
510
511 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
512
513         * configure.in qt/Makefile.am: add qt/examples
514         * qt/examples: Add QtDBus example programs:
515           - hello: Hello, World
516           - ping: Simple method-calling program
517           - pong: Simple object-exporting program (not using adaptors)
518           - complexping: Interactive method-calling program 
519                 (also gets and sets properties).
520           - complexpong: Sample program exporting methods, signals and
521                 properties, using adaptors.
522           - dbus: Simple implementation of a generic method-calling
523                 program, similar to 'dbus-send', but with semantics
524                 similar to 'dcop'.
525           - chat: Simplistic chat program, implemented using signals
526                 and the system bus. Looks like IRC.
527
528 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
529
530         * configure.in: Detect QtGui (necessary for one of the
531           example programs). Note: this increases the minimum required
532           version of Qt to 4.1.3.
533
534 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
535
536         * test/qt/*: Sync with KDE Subversion revision 523647.
537         Update the testcases to the new API. Remove testcases for
538         classes that are no longer public or have been removed.
539
540 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
541
542         * qt/*: 
543         * dbus/qdbus.h: Sync with KDE Subversion revision
544         523647. Hopefully, this will be the last of the
545         source-incompatible changes. Documentation has been improved;
546         support for QList<basic-types> has been added; QDBusObject is
547         gone; QDBus(Abstract)Interface is now a QObject with
548         auto-generated meta-object; QDBusIntrospection is marked
549         private, since QMetaObject can be used now; lots of bugfixes.
550
551 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
552
553         Patch from Milosz Derezynski <internalerror at gmail.com>
554         
555         * configure.in:
556         Output the service directory in the configure summary
557
558         * dbus-1.pc.in:
559         Add session_bus_services_dir
560
561 2006-03-10  Ross Burton  <ross@openedhand.com>
562
563         * tools/dbus-print-message.c:
564         Add support for object paths and signatures.
565
566 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
567
568         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
569         config reload.
570         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
571         information caches
572         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
573         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
574         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
575         * dbus/dbus-userdb.h: Add function to flush all user/group information
576         caches.
577
578 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
579
580         * qt/dbusidl2cpp.cpp:
581         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
582         for dcopidl2cpp, found in the KDE installations (or the more
583         modern kalyptus): generate Qt4 C++ code for the input XML
584         introspection. Currently no IDL parsing.
585
586 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
587
588         * test/qt/*: Update the self-tests.
589
590 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
591
592         * qt/*: 
593         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
594         represents the first feature-complete version of the Qt4
595         bindings since I took ove maintainership.
596
597 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
598
599         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
600         dir. This is C++, so we can't use the DBus ones.
601
602 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
603
604         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
605         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
606
607 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
608
609         * dbus/dbus-connection.c: 
610         (_dbus_connection_block_pending_call):
611         Check to see if our data has already been read off the connection
612         by another blocking pending call before we block in poll.
613         (check_for_reply_and_update_dispatch_unlocked):
614         Code taken from _dbus_connection_block_pending_call - checks for
615         an already read reply and updates the dispatch if there is one.
616
617         * test/name-test/test-pending-call-dispatch.c:
618         New test for making sure we don't get stuck polling a 
619         dbus connection which has no data on the socket when
620         blocking out of order on two or more pending calls.
621
622 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
623
624         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
625         make/automake don't detect that we're talking about the same
626         .lo file if I specify the full path to the source files.
627
628 2006-02-26  Havoc Pennington  <hp@redhat.com>
629
630         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
631
632         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
633         session bus variable is unset, suggest "man dbus-launch" and "man
634         dbus-daemon" to figure out how to fix the problem
635
636 2006-02-25  Havoc Pennington  <hp@redhat.com>
637
638         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
639         should make this thing use the new glib options parser
640
641 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
642
643         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
644         .lo files taking moc sources.
645
646 2006-02-25  Havoc Pennington  <hp@redhat.com>
647
648         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
649         and install it as a public header
650
651 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
652
653         * Released 0.61
654
655 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
656         
657         * proxies.py: Fix the callchain
658
659 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
660         
661         * patch from Sjoerd Simons <sjoerd at debian.org>:      
662
663         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
664         dbus/dbus-sysdeps.c
665
666         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
667         call _dbus_group_info_free_allocated which causes infinite loop,
668         correctly call _dbus_group_info_free
669
670 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
671
672         * qt/qdbusinterface_p.h:
673         * qt/qdbusinterface.cpp: Use the standard
674         org.freedesktop.DBus.Method.NoReply annotation for the "async"
675         calls instead of creating one for us.
676
677         * qt/qdbusconnection_p.h:
678         * qt/qdbusintegrator.cpp: Remove debugging code.
679
680         * qt/qdbusintegrator.cpp:
681         * qt/qdbusmessage.cpp:
682         * qt/qdbusmessage_p.h:
683         * qt/qdbusmessage.h: Change the behaviour of automatic
684         reply-sending: now a reply is always sent, unless the caller
685         didn't request one or if the user slot has already sent one.
686
687 2006-02-16  Robert McQueen  <robot101@debian.org>
688
689         * configure.in: Patch from Debian packages by Sjoerd Simons
690         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
691         arguments so it's possible to build both bindings in the
692         same tree.
693
694         * qt/Makefile.am: Fix truncated value so that make dist works.
695
696 2006-02-16  Robert McQueen  <robot101@debian.org>
697
698         * acinclude.m4, configure.in: Patch from Brad Hards
699         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
700         improving quoting, re-ordering a few checks, and a few other
701         aesthetic tidy-ups.
702
703 2006-02-16  Robert McQueen  <robot101@debian.org>
704
705         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
706         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
707         assertion that the next element to read from the iter is fixed in
708         size. This is not the case when you are at the end of the iter,
709         because the next element type is INVALID.
710
711         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
712         a bogus assert which means that you may not initialise a 0-length
713         string unless you provide a non-NULL pointer. This prevented
714         you from marshalling messages containing zero-length arrays in
715         some cases.
716
717         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
718         from Rob to correct bogus asserts when trying to demarshal an
719         array and get_fixed_array got you 0 elements. Append nothing to
720         the GArray in this case.
721
722         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
723         an empty array via the glib bindings. Without all of the above
724         patches, this new test fails.
725
726 2006-02-16  Robert McQueen  <robot101@debian.org>
727
728         * glib/dbus-gmain.c: Make the previous commit compile.
729
730         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
731         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
732         specify sender_keyword="foo", path_keyword="bar" when adding
733         a signal listener, so that you can bind to signals generically
734         but still do something useful in your callback.
735
736         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
737         chars so that they're not cast to chars and made negative. Thanks
738         to Jakub Stachowski for reporting this and testing the fix.
739
740 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
741
742         * dbus/dbus-glib.h:
743         * glib/dbus-gmain.h:
744         (dbus_g_connection_open): new method for openning
745         a connection to an arbitrary address in the glib bindings
746
747         * ChangeLog: checkin last entry which doesn't seem to be commited
748
749 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
750
751         * tools/dbus-launch.c: Fixed sh syntax output
752
753 2006-02-13  Robert McQueen  <robot101@debian.org>
754
755         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
756         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
757         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
758         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
759         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
760         missing piece of the glib bindings jigsaw puzzle. This modifies
761         the existing specialised types to have N type parameters (rather
762         than the current 1 or 2 for arrays and dictionaries respectively).
763         You can then use this to get a glib type to represent any arbitrary
764         D-Bus struct type using dbus_g_type_get_struct. The only
765         implementation of these types is with GValueArrays as before,
766         but it's now possible to store these in arrays, emit them in
767         signals, etc.
768
769 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
770
771         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
772         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
773         <thiago.macieira at trolltech.com>
774
775 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
776
777         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
778         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
779
780 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
781
782         * bus/connection.c (bus_connections_expect_reply): Make
783         pending reply limit not common to all connections (Bug #5416)
784         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
785
786 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
787
788         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
789
790 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
791
792         * gcj/Makefile.am: point to correct jar command (Bug #4529)
793         patch from Doug Goldstein <cardoe at gentoo.org>
794
795 2006-02-09  Joe Shaw  <joeshaw@novell.com>
796
797         * mono/Arguments.cs: Fix a magic number in the mono bindings
798         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
799
800 2006-01-27  Robert McQueen  <robot101@debian.org>
801
802         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
803         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
804         when generating the client-side methods, instead of overloading
805         CSymbol which broke everything horribly. My apologies.
806
807 2006-01-27  Robert McQueen  <robot101@debian.org>
808
809         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
810         by me and Rob Taylor to add a simple_free function to D-Bus map
811         and collection types, which allows those types which can be freed
812         with a GDestroyNotify (such as GHashTables and GArrays, but not
813         GPtrArrays) to be stored as the values in hashtables.
814
815         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
816         Patch by Rob Taylor to add nested dicts to the glib tests to check
817         the above code works, and appears not to leak when called repeatedly.
818
819 2006-01-27  Robert McQueen  <robot101@debian.org>
820
821         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
822         to free a D-Bus allocated string with dbus_free () instead of
823         g_free ().
824
825 2006-01-27  Iain Holmes  <iain@openedhand.com>
826
827         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
828         method from being called multiple times.
829
830 2006-01-19  Robert McQueen  <robot101@debian.org>
831
832         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
833         <rob.taylor@collabora.co.uk> to add support for generating bindings
834         to arrays that are represented as GPtrArrays rather than GArrays (ie
835         size-variable things, such as strings, objects, structs, etc).
836
837 2006-01-05  Robert McQueen  <robot101@debian.org>
838
839         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
840         <ricardo.kekki@movial.fi> to make it possible to inherit from
841         DBusGProxy, by splitting the DBusGProxy struct into a public part and
842         a private part, and moving the setting of the DBusGProxyManager into a
843         connection property, allowing proper GObject construction.
844
845 2006-01-05  Robert McQueen  <robot101@debian.org>
846
847         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
848         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
849         annotations when generating glib client bindings.
850
851 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
852
853         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
854
855         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
856
857 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
858
859         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
860
861 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
862
863         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
864
865 2005-12-19  Ross Burton  <ross@openedhand.com>
866
867         * doc/dbus-tutorial.xml:
868         Document the Glib client-side bindings, and list all possible annotations.
869
870 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
871
872         * dbus/bus.c (dbus_bus_release_name): Add documentation
873
874 2005-12-06  Robert McQueen  <robot101@debian.org>
875
876         * python/service.py: s/sucessful/successful/ so we're allocating to
877         and reading from the same variable. Oops.
878
879 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
880
881         * Released 0.60
882
883 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
884
885         * test/qt/Makefile.am: build from srcdir
886
887         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
888         Note - this code is wrong and needs to be fixed by the Qt binding
889         developers.  The flags should be treated as bitfields and not enums.
890
891         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
892
893 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
894
895         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
896           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
897           in production code
898
899 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
900
901         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
902         method for getting messages off the bus in the absence of a
903         mainloop.  This method is much like 
904         dbus_connection_read_write_dispatch except it does not dispatch
905         the messages to a registered filter function.  Instead it
906         allows a developer to process messages by directly popping
907         them off the bus.
908
909 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
910
911         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
912         the parser to continue instead of returning error
913         (bus_desktop_file_load): Do not free parser data when
914         parse_section_start or parse_key_value fails because it was 
915         already freed by parser_free (patch from Carlos Garcia Campos  
916         <carlosgc at gnome.org>)
917
918 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
919
920         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
921         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
922         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
923         test/test-segfault.c, test/test-utils.c,
924         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
925         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
926         Various cleanup of dead code and compiler warnings (patch from
927         Kjartan Maraas <kmaraas at gnome.org>) 
928
929 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
930
931         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
932         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
933
934 2005-11-27  Robert McQueen  <robot101@debian.org>
935
936         * python/dbus_bindings.pyx: Repair my previous commit which reverted
937         part of the preceding one. Oops. Merge patch by Johan Hedberg
938         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
939         on big-endian platforms.
940
941         * test/python/test-client.py: Add some 16-bit integers to the test
942         values.
943
944 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
945
946         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
947         method return message for property getters
948
949 2005-11-27  Robert McQueen  <robot101@debian.org>
950
951         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
952         with type v of an instance of dbus.Variant(foo, type='x') caused
953         it to be boxed twice before sending over the bus.
954
955         * python/dbus_bindings.pyx, python/service.py,
956         test/python/test-client.py: Update the constants for the new
957         request_name flags, and update comments/test cases now that queueing
958         is the default action.
959
960 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
961
962         * configure.in:
963         - Change version to 0.60 for impending release
964         - upped the sonames because of ABI and API breakage
965
966 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
967
968         * configure.in: Add test/name-test/Makefile to the generated
969         Makefile list
970
971         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
972         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
973         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
974         not to queue an ower if it can't be the primary owner
975
976         * bus/bus.h: Add new internal BusOwner struct
977
978         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
979         to bus_registry_ensure and don't set the prohibit_replacement flag
980         since they are now set per BusOwner and not per name.
981         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
982         that returns the list of connections in a name's connection queue
983         
984         * bus/services.c (struct BusService): remove prohibit_replacement field
985         (struct BusOwner): new struct for keeping track of queued connections
986         and their associated flags for the queue
987         (struct BusRegistry): add a BusOwner memory pool
988         (bus_registry_new): initialize the BusOwner memory pool
989         (bus_registry_unref): free the BusOwner memory pool
990         (_bus_service_find_owner_link): new internal method for
991         searching the queue for a specific connection
992         (bus_owner_set_flags): new method for adding setting the flags on a
993         bus owner
994         (bus_owner_new): new method that creates a BusOwner object from the
995         pool and sets its flags
996         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
997         (bus_registry_ensure): Add the flags parameter
998         (bus_registry_acquire_service): Switch from using raw connections to
999         using the BusOwner struct
1000         Add new state machine for dealing with the new set of flags
1001         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1002         cancel_ownership, free_ownership_cancel_data, 
1003         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1004         restore_ownership, free_ownership_restore_data, 
1005         add_restore_ownership_to_transaction): Switch to using BusOwner 
1006         instead of raw connections
1007         (bus_service_add_owner): Add flags parameter
1008         Switch to using BusOwner instead of raw connections
1009         Add state machine for dealing with the new set of flags
1010         (bus_service_swap_owner): Swaps the first and second owners in the
1011         queue.  Used to make sure proper signals are sent when a service looses 
1012         or gains primary ownership.  We never insert an owner at the top of the
1013         queue.  Instead we insert it in the second position and then swap.
1014         (bus_service_remove_owner): Remove the owner from the queue sending
1015         out the NameLost and NameOwnerChanged signals if the we were the 
1016         primary owner
1017         (bus_service_get_primary_owners_connection): New method that extracts
1018         the connection from the primary owner
1019         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1020         connection
1021         (bus_service_get_allow_replacement): Changed from the old 
1022         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1023         primary owner and returns if it can be replaced or not
1024         (bus_service_set_prohibit_replacement): removed
1025         (bus_service_has_owner): returns TRUE if and owner with
1026         the specified connection exists in the queue
1027         
1028         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1029         method that only compiles if tests are enabled.  Allows us to get the 
1030         unique name of a connection so we can check it against the queue when
1031         doing regression tests
1032
1033         * bus/activation.c (bus_activation_send_pending_auto_activate),
1034         bus/dispatch.c (bus_dispatch),  
1035         bus/driver.c (bus_driver_handle_get_service_owner, 
1036         bus_driver_handle_get_connection_unix_user, 
1037         bus_driver_handle_get_connection_unix_process_id,
1038         bus_driver_handle_get_connection_selinux_security_context),
1039         bus/signals.c (connection_is_primary_owner): 
1040         use bus_service_get_primary_owners_connection instead of
1041         bus_service_get_primary_owner
1042
1043         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1044         _dbus_listen_unix_socket): Calculate the length of the socket
1045         path and use that instead of using a fixed length which was
1046         causing socket names to contain many trailing Nul bytes.
1047
1048         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1049         (dbus_g_method_get_sender): New method for extracting the sender 
1050         from a DBusGMethodInvocation
1051         (dbus_g_method_return_get_reply): changed name to 
1052         dbus_g_method_get_reply
1053         (dbus_g_method_return_send_reply): changed name to
1054         dbus_g_method_send reply
1055
1056         * doc/dbus-specification.xml: New docs that describe how the new
1057         queueing system works and talks about the changes to the how
1058         we specify socket names
1059
1060         * glib/examples/example-service.c, 
1061         glib/examples/example-signal-emitter.c,
1062         glib/examples/statemachine/statemachine-server.c:
1063         Changed the RequestName flags to the new system
1064
1065         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1066         regression test suite for testing various states of the new
1067         queueing system
1068         
1069 2005-11-15  Robert McQueen  <robot101@debian.org>
1070
1071         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1072         Taylor to add two methods, dbus_g_method_return_get_reply and
1073         dbus_g_method_return_send_reply, to allow you to get the reply
1074         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1075         and send it. The GLib bindings can't marshal a return value of
1076         something like a(s) if the array is empty - ultimately they should be
1077         made to heed the signature of the out arguments as the Python bindings
1078         now can, but this is a workable interim solution which might have
1079         other applications.
1080
1081 2005-11-15  Robert McQueen  <robot101@debian.org>
1082
1083         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1084         method to org.freedesktop.DBus to release a bus name or give up
1085         waiting in the queue for it.
1086
1087         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1088         dbus_bus_release_name method to send the ReleaseName method calls.
1089         Add constants for the return values to dbus/dbus-shared.h.
1090
1091         * doc/dbus-specification.xml: Document the new ReleaseName method
1092         in the specification.
1093
1094         * python/dbus_bindings.pyx: Add a low-level python binding for the
1095         release name method.
1096
1097         * python/exceptions.py, python/service.py: Make freeing BusName
1098         objects release the name. Add a NameExistsException, and fix a
1099         bug with creating UnknownMethodException.
1100
1101         * test/python/test-client.py: Add tests for freeing BusName
1102         objects causing names to be released.
1103
1104 2005-11-14  Robert McQueen  <robot101@debian.org>
1105
1106         * python/service.py: Include the traceback in the error reply when we
1107         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1108
1109 2005-11-14  David Zeuthen  <davidz@redhat.com>
1110
1111         Patch from Timo Hoenig <thoenig@suse.de>.
1112
1113         * bus/bus.c: I've recently investigated why the automatic reload
1114         of configuration files does not work as expected.
1115
1116         Currently, reloading configuration files does only work when
1117         running dbus-daemon with --nodaemon.  If we are running as daemon
1118         we're hitting a dnotify bug once we fork the process.
1119
1120         We're initializing the dnotify fds before calling fork().  Once
1121         the child process forked it does still have the fds (and they
1122         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1123         getting SIGIO as changes are made to the configuration files.
1124
1125         The attached patch moves the initialization of the dnotify fds to
1126         process_config_postinit().  This is safe for all current code
1127         paths and solves the dnotify disfunction.  If we're running
1128         dbus-daemon as daemon the fds for dnotify are now being
1129         initialized after fork() for the child process.
1130
1131         * configure.in: The current configure.in check for dnotify probes
1132         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1133         match for 'xlinux', too. Additionally I have adapted the configure
1134         option's style to match with the others.
1135
1136 2005-11-14  Robert McQueen  <robot101@debian.org>
1137
1138         * python/decorators.py, python/service.py: Add a new argument to the
1139         dbus.service.method decorator called sender_keyword, which if set,
1140         specifies the name of an argument which will be provided the bus
1141         name of the method caller.
1142
1143         * test/python/test-client.py, test/python/test-service.py: Add a
1144         method and test to check the sender_keyword functionality.
1145
1146 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1147
1148         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1149         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1150         Simons <sjoerd at luon.net>)
1151
1152         * AUTHORS: Add Robert McQueen for his work on the Python
1153         Bindings and other parts of D-Bus
1154
1155 2005-11-07  Robert McQueen  <robot101@debian.org>
1156
1157         * python/decorators.py: Change emit_signal function to use the
1158         signature annotation of the signal when marhsalling the arguments from
1159         the service. Fix a bug where the code checking signature length
1160         against argument length referenced the wrong variable.
1161
1162         * python/introspect_parser.py: Avoid adding the type signature of
1163         signal arguments to any methods which occur after them in the
1164         introspection data (!) by making the parser a little more careful
1165         about its current state.
1166
1167         * python/service.py: Remove debug prints from last commit (again :D).
1168
1169         * test/python/test-client.py, test/python/test-service.py: Add test
1170         signals with signature decorators to test the strict marshalling code
1171         gives errors at the right time. Could do with checking the signals
1172         actually get emitted too, given that the test does nothing with
1173         signals at the moment...
1174
1175 2005-11-07  Robert McQueen  <robot101@debian.org>
1176
1177         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1178         instances to stop madness of creating new instances representing
1179         the same bus connection all the time, rendering any tracking of
1180         match rules and bus names quite meaningless. Caught a bug where
1181         the private argument to SessionBus() and friends was being passed
1182         in as use_default_mainloop by mistake. Still some problems with
1183         multiple dbus_binding.Connection instances representing the same
1184         low-level connection (eg when you use both SessionBus() and
1185         StarterBus() in same process), but it's a lot better now than it
1186         was.
1187
1188         * python/dbus_bindings.pyx: Add constants with the return values
1189         for bus_request_name().
1190
1191         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1192         and retrieve the same instances for the same name, so deletion can be
1193         done with refcounting. Also now throws some kind of error if you
1194         don't actually get the name you requested, unlike previously...
1195
1196         * test/python/test-client.py: Add tests for instance caching of buses
1197         and bus name objects.
1198
1199 2005-11-04  Robert McQueen  <robot101@debian.org>
1200
1201         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1202         marshalling of boolean values. Add some booleans to the values in
1203         the test client.
1204
1205         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1206         argument to the dbus.service.method decorator, which allows you to
1207         name arguments to take two callback functions for replying with
1208         return values or an exception.
1209
1210         * test/python/test-client.py, test/python/test-service.py: Add test
1211         case using asynchronous method reply functions, both return values and
1212         errors, and from within both the function itself and from a mainloop
1213         callback.
1214
1215         * python/decorators.py, python/service.py: Perform checking that the
1216         number of method/signal arguments matches the number of types in the
1217         signature at class loading time, not when you first introspect the
1218         class.
1219
1220         * python/service.py: Remove debug print left by the last commit.
1221
1222 2005-11-03  Robert McQueen  <robot101@debian.org>
1223
1224         * python/service.py: Heavy refactoring of method invocation, with
1225         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1226         in favour of a new _message_cb that uses seperate functions for
1227         looking up the method to call, marshalling the return values, and
1228         sending exceptions as errors, and is easier to follow as a
1229         consequence.  Fixes some corner cases about returning things that
1230         don't match your declared out_signature, allows exceptions to define
1231         _dbus_error_name and have it be sent over the bus as the error name,
1232         and paves the way for cool stuff like heeding the message no reply
1233         flag, asynchronous method implementations, informing the method of the
1234         sender, and including backtraces in the error messages.
1235
1236         * test/python/test-client.py: Catch and print exceptions thrown in the
1237         async callback tests, rather than passing them to the low-level
1238         bindings to be ignored in a noisy and frustrating manner.
1239
1240 2005-11-03  Robert McQueen  <robot101@debian.org>
1241
1242         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1243         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1244         tweak others to be consistent.
1245
1246         * test/python/test-client.py: Tweak output of testInheritance.
1247
1248 2005-10-29  Robert McQueen  <robot101@debian.org>
1249
1250         * python/service.py: Major changes to allow multiple inheritance
1251         from classes that define D-Bus interfaces:
1252         
1253          1. Create a new Interface class which is the parent class of
1254             Object, and make the ObjectType metaclass into InterfaceType.
1255         
1256          2. Patch written with Rob Taylor to replace use of method_vtable
1257             with code that walks the class's __MRO__ (method resolution order)
1258             to behave like Python does when invoking methods and allow
1259             overriding as you'd expect. Code is quite tricky because
1260             we have to find two methods, the one to invoke which has the
1261             right name and isn't decorated with the /wrong/ interface,
1262             and the one to pick up the signatures from which is decorated
1263             with the right interface.
1264         
1265             The same caveats apply as to normal multiple inheritance -
1266             this has undefined behaviour if you try and inherit from two
1267             classes that define a method with the same name but are
1268             decorated with different interfaces. You should decorate
1269             your overriding method with the interface you want.
1270         
1271          3. Replace grungy introspection XML generation code in the metaclass
1272             with dictionaries that cope correctly with multiple inheritance
1273             and the overriding of methods. This also uses the signature
1274             decorations to provide correct introspection data, including
1275             the debut appearance of the types of your return values. :D
1276
1277         * test/python/test-client.py, test/python/test-service.py: Add a test
1278         case to try invoking an method that overrides one inherited from a
1279         D-Bus interface class.
1280
1281 2005-10-29  Robert McQueen  <robot101@debian.org>
1282
1283         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1284         Add checking for the end of struct character when marshalling a
1285         struct in MessageIter.append_strict.
1286
1287         * python/examples/example-service.py,
1288         python/examples/gconf-proxy-service.py,
1289         python/examples/gconf-proxy-service2.py: Update to use gobject
1290         mainloop directly rather than appearing to depend on gtk.
1291
1292         * python/test/test-client.py, python/test/test-server.py: Remove
1293         obsolete and broken test scripts for old bindings. We have up to date
1294         and working tests in test/python/.
1295
1296 2005-10-29  Robert McQueen  <robot101@debian.org>
1297
1298         * python/decorators.py: Add optional arguments to the method and
1299         signal decorators to allow you to specify the signature of arguments
1300         and return values. Preserve the doc strings of signal functions in the
1301         decorated version, for pydoc and friends.
1302
1303         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1304         parse_signature_block function with an iterable dbus.Signature()
1305         type. Fix a bug in MessageIter.append_strict where you could append
1306         anything by claiming it was a string.
1307
1308         * python/service.py: Use the out_signature decoration on methods to
1309         marshal return values, meaning you no longer require dbus.Array()
1310         or dbus.Dictionary() to indicate the type when returning empty
1311         arrays or dictionaries. Fix a bug where exceptions which are defined
1312         in __main__ are not turned into error replies.
1313
1314         * test/python/test-client.py, test/python/test-service.py: Add test
1315         for correct marshalling of return values according to out_signature.
1316         Fix a bug in the async call test where the error_handler is missing a
1317         self argument.
1318
1319 2005-10-29  Robert McQueen  <robot101@debian.org>
1320
1321         * glib/Makefile.am, glib/examples/Makefile.am,
1322         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1323         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1324
1325         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1326
1327         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1328         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1329         the command line.
1330
1331 2005-10-27  Ross Burton  <ross@openedhand.com>
1332
1333         * dbus/dbus-marshal-header.c:
1334         Remove dead code.
1335
1336         * glib/dbus-gobject.c:
1337         Stop compiler warning.
1338
1339 2005-10-25  Ross Burton  <ross@openedhand.com>
1340
1341         * dbus/dbus-auth.c:
1342         * dbus/dbus-server-unix.c:
1343         * dbus/dbus-transport-unix.c:
1344         * glib/dbus-gmain.c:
1345         * glib/dbus-gobject.c:
1346         Add some const keywords.
1347
1348 2005-10-25  Ross Burton  <ross@openedhand.com>
1349
1350         * doc/dbus-specification.xml:
1351         Document the NoReply annotation.
1352
1353         * glib/dbus-binding-tool-glib.h:
1354         * glib/dbus-binding-tool-glib.c:
1355         Respect the NoReply annotation.
1356
1357 2005-10-24  Robert McQueen <robot101@debian.org>
1358
1359         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1360         derive from unicode instead of str, and encode/decode UTF-8 when
1361         marshalling/unmarshalling bus messages
1362
1363         * python/introspect_parser.py: encode introspection data as UTF-8
1364         before passing the buffer into libxml2
1365
1366         * test/python/test-client.py: add unicode test strings
1367
1368         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1369         ignore generated python test files
1370
1371 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1372
1373         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1374         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1375         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1376
1377         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1378         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1379         when constructing struct signatures
1380
1381         * python/_dbus.py (Bus): handle private connections using the
1382         private keyword in the constructor. defaults to private=False
1383         (Bus::close): new method to close a connection to the bus
1384
1385         * python/dbus_bindings.pyx (Connection::close): renamed method
1386         was previously called disconnect
1387         (bus_get): now supports getting a private connection
1388
1389         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1390         keyword is set to True.  if it is, execute the method without waiting
1391         for a reply
1392         (ProxyObject::_introspect_execute_queue): new method for executing
1393         all the pending methods that were waiting for the introspect to
1394         finish.  this is called when introspect either succeeds or fails
1395         (ProxyObject::_introspect_error_handler): call queued methods
1396
1397 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1398
1399         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1400         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1401
1402         * python/service.py (Object::_message_cb): handle exceptions correctly
1403         by sending them over the wire to the calling app.  This makes sure
1404         the client returns immediately instead of waiting the 15 seconds to
1405         timeout.
1406
1407         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1408         Add a test to benchmark how long it takes to introspect a service and 
1409         call a method which returns a large element (pretty fast)
1410
1411         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1412         method which pushes a lot of data
1413
1414 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1415
1416         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1417         reclaim memory outside of the loop and use del istead of just setting
1418         the key to None
1419
1420 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1421
1422         * python/service.py (ObjectType::_reflect_on_signal): Always close
1423         signal tag even when there are no arguments
1424
1425 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * configure.in: Set mono, mono-docs and Qt3 to default
1428         to no instead of auto when building.  These bindings do not
1429         have full time maintainers and will not be supported for the
1430         1.0 release.
1431
1432 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1433
1434         patches from Michael Krivoruchko <misha at sun.com>: 
1435         
1436         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1437         _dbus_connection_message_sent, 
1438         _dbus_connection_send_preallocated_unlocked_no_update, 
1439         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1440         is NULL when calling _dbus_verbose
1441
1442         * configure.in: check for functions getpeerucred and getpeereid
1443
1444         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1445         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1446         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1447         Patch was only tested on Solaris 10 x86 so it might be issues
1448         with other platforms (i.e. BSDs and MacOSX)
1449         
1450
1451 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1452
1453         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1454         instead of marshal basic so we can handle recursive types in a variant
1455
1456         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1457         in variants
1458
1459         * test/glib/test-service-glib.c, test-service-glib.xml
1460         (my_object_echo_variant [EchoVariant], 
1461         my_object_process_variant_of_array_of_ints123
1462         [ProcessVariantOfArrayOfInts123]): 
1463         Add two test methods
1464
1465         * python/introspect_parser.py: New module for parsing introspect
1466         data.
1467
1468         * python/dbus_bindings.pyx:
1469         (various places): when throwing errors fix to use errormsg instead 
1470         of message local variable because Pyrex can get confused with other 
1471         message variables (initial patch by Robert McQueen 
1472         <robert.mcqueen at collabora.co.uk>)
1473         (MessageIter::parse_signature_block): new method for getting the next
1474         block in a signiture.
1475         (MessageIter::append_strict): new method for appending values strictly
1476         using the passed in signature instead of guessing at the type
1477         (MessageItter:: append_dict, append_struct, append_array): use 
1478         signatures to marshal children if the signature is available
1479         
1480         * python/exceptions.py (IntrospectionParserException): new exception
1481
1482         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1483         introspected signatures if available, else we fall back to the
1484         old way of doing things.
1485         (ProxyObject::_introspect_reply_handler ): parse introspection data
1486         
1487         * python/service.py (ObjectType::_reflect_on_method): Properly
1488         terminate <method> if there are no args in the reflection data
1489
1490         * test/python/test-client.py: add tests for talking with the GLib
1491         test server.  This gives us better coverage for introspection since
1492         python to python will always generate arguments as variants.  It also
1493         allows us to test the robustness of the GLib bindings and interlanguage
1494         communications.
1495
1496         
1497 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1498
1499         * bus/driver.c (bus_driver_handle_introspect): Add signals
1500         to the introspect data. (patch from Daniel P. Berrange 
1501         <dan at berrange.com>)
1502
1503         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1504         
1505         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1506         _dbus_connection_run_builtin_filters): Changed these to
1507         be unlock_no_update functions and call 
1508         _dbus_connection_send_unlocked_no_update instead of
1509         dbus_connection_send to avoid locking errors.
1510         
1511         * doc/TODO: Removed the make Ping test TODO
1512         
1513 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1514
1515         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1516         We now copy the message from a DBusError and then free 
1517         the error object befor throwing the error
1518
1519         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1520         DBusBindingOutputMode enum which was causing a warning.
1521         #include <time.h> so using time_t is explicitly defined
1522
1523 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1524
1525         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1526         - dbus/dbus-bus.c
1527         (internal_bus_get): new method that take over the heavy lifting
1528         of dbus_bus_get and adds the ability to get a private connection
1529         to the bus
1530         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1531         interface as in previous versions
1532         (dbus_bus_get_private): new method that is a wrapper to 
1533         internal_bus_get to get a private connection to the bus
1534
1535         - dbus/dbus-bus.h
1536         (dbus_bus_get_private): add as a public libdbus interface
1537
1538         - dbus-1.pc.in: output system_bus_default_address and 
1539         sysconfdir variables so apps can use them when compiling
1540
1541 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1542         * dbus/qt: New Qt bindings
1543
1544 2005-09-12  Waldo Bastian  <bastian@kde.org>
1545
1546         * dbus/dbus-marshal-validate.c,
1547         doc/dbus-specification.xml, test/Makefile.am,
1548         test/test-names.c: allow hyphens in bus names.
1549
1550 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1551
1552         * test/data/auth/fallback.auth-script: we don't
1553         retry the EXTERNAL method when we know its going
1554         to fail anymore.
1555
1556 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1557
1558         * dbus/dbus-connection-internal.h: rename
1559         (add|remove|toggle)_(watch|timeout) to unlocked()
1560         
1561         * dbus/dbus-connection.c: ditto.
1562         
1563         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1564         Update some callers for the renaming.
1565
1566 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1567
1568         * dbus/dbus-auth.c: (record_mechanisms): don't
1569         retry the first auth mechanism because we know
1570         we're just going to get rejected again.
1571         
1572         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1573         Fix thinko ... and what a nasty little bugger to
1574         track down you were ...
1575
1576         * dbus/dbus-connection.c:
1577         (_dbus_connection_add_watch),
1578         (_dbus_connection_remove_watch): add note about
1579         these needing the connection to be locked.
1580         (_dbus_connection_get_dispatch_status_unlocked):
1581         set status to DATA_REMAINS when we queue the
1582         disconnected message.
1583         
1584         * bus/dispatch.c:
1585         (bus_dispatch): fix warning.
1586         (check_existent_service_no_auto_start):
1587         Expect ChildSignaled error too.
1588         (check_existent_hello_from_self): fix another
1589         couple of warnings.
1590         
1591 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1592
1593         Patches from James Willcox <snorp@snorp.net>
1594
1595         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1596
1597         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1598         support array "out" parameters.
1599
1600         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1601         for 16-bit int support.
1602
1603 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1604
1605         * Released 0.50
1606
1607         * Patch from Steve Grubb:
1608         - bus/activation.c (bus_activation_service_reload_test): clean up
1609         some indentation
1610         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1611         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1612         buffer overflows in the test suite.  This is non critical because
1613         it can not be exploited and this code is only run when doing a 
1614         make check.
1615
1616         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1617         - configure.in: Don't check and link against kdecore, only qt headers
1618         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1619         - gcj/org/freedesktop/dbus/Makefile.am:
1620         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1621         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1622         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1623         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1624         - tools/Makefile.am: Add platform extentions to binaries 
1625         (i.e. .exe on windows)
1626
1627         * configure.in: 
1628         - Make it so if no suitable version of python is found we only 
1629         disable building python instead of exiting the configure script
1630         - Require version 2.4 of glib for glib bindings
1631         - Up version to 0.50
1632
1633         * python/__init__.py: Sync version with libdbus to (0,50,0)
1634         
1635 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1636
1637         * dbus/dbus-object-tree.c (find_subtree_recurse):
1638         a couple of optimizations (bug #710):
1639         - do a binary search in the tree
1640         - insert a new child at the right place directly, no need for
1641           qsort anymore
1642         - do the "double alloc" thing when allocating children
1643
1644 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1645
1646         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1647
1648         * python/dbus_bindings.pyx: Memory management foo
1649         (global): remove hacky _user_data_references global list
1650         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1651         tuples. Unref user_data
1652         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1653         (Connection::__del__): Remove and replace with __dealloc__ method
1654         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1655         to keep tuple from being deallocated instead of the global var hack
1656         (Connection::register_object_path): Stuff user_data into a tuple.
1657         Use Py_INCREF to keep tuple from being deallocated instead of the 
1658         global var hack
1659         (Connection::register_fallback): Stuff user_data into a tuple.
1660         Use Py_INCREF to keep tuple from being deallocated instead of the 
1661         global var hack
1662         (GIL_safe_pending_call_notification): Don't unref the message
1663         because it gets unreffed when going out of scope.  Py_XDECREF
1664         the user_data
1665         (PendingCall::__del__): Remove and replace with __dealloc__ method
1666         (PendingCall::set_notify): ref the pending call because we will
1667         need it to stick around for when the notify callback gets called
1668         (Message::__del__): Remove and replace with __dealloc__ method
1669
1670         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1671         gthreads_init to match up with the dbus call
1672
1673         * python/glib.py (init_threads): Changed to threads_init to match
1674         up with gobject.threads_init().  init_threads is kept for backwards
1675         compat but will most likely be deprecated in the future
1676
1677         * test/python/test-client.py: 
1678         - revamp to use Python's unittest functionality
1679         - add async call tests
1680         - setup threads in glib and dbus so we make sure locks are working
1681         
1682 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1683
1684         * python/dbus_bindings.pyx 
1685         (_pending_call_notification, cunregister_function_handler, 
1686         cmessage_function_handler): All callback functions have been rearranged 
1687         to workaround a bug in Pyrex when working with the GIL which is Python's 
1688         global lock when dealing with threads.  They have been split into
1689         a wrapper function (which assumes the name of the old function) and
1690         a _GIL_safe_<function name> function which contains the functionality
1691         of the old function.  This ensures that Pyrex does not write code
1692         the lock is released.
1693         
1694
1695 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1696
1697         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1698         GIL global lock when calling back into Python
1699
1700 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1701
1702         * Release 0.36.2
1703
1704         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1705
1706         * bus/policy.c (bus_policy_allow_user): change default "user is
1707         allowed" to be "user has same uid as the bus itself"; any
1708         allow/deny rules will override.
1709
1710         * bus/session.conf.in: don't allow all users, since now by default
1711         the user that ran the bus can connect.
1712
1713 2005-08-26  Colin Walters  <walters@verbum.org>
1714
1715         * tools/dbus-print-message.c (print_message): Flush stdout
1716         after printing a message, so that redirecting to a file, then
1717         hitting Ctrl-C works.
1718
1719 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1720
1721         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1722         (EmptyMessage): new class that subclasses Message.  This is a workaround
1723         to a Pyrex bug that fails to call __del__ when the Message object goes out
1724         of scope.  For some reason subclassing Message fixes this bug
1725         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1726         - s/Message(_create=0)/EmptyMessage everywhere else
1727         
1728         * test/python/test-{server|client}.py: add the python/.libs directory
1729         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1730         get picked up from the system
1731
1732 2005-08-25  Colin Walters  <walters@verbum.org>
1733
1734         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1735         to Ryan Lortie for the suggestion.
1736
1737 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1738
1739         * test/python: Add python regression test
1740
1741         * configure.in: Add test/python/Makefile
1742
1743         * test/Makefile.am: Add the python directory to SUBDIRS
1744
1745 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1746
1747         * Release 0.36.1
1748
1749         * python/_dbus.py: 
1750         (Interface::connect_to_signal): propigate keywords for match on args
1751         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1752
1753         * python/proxies.py (ProxyObject::connect_to_signal):
1754         propigate keywords for match on args
1755
1756         * Makefile.am: point everything to pyexecdir since python borks
1757         on multilib
1758
1759 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * Release 0.36
1762
1763 2005-08-23  Colin Walters  <walters@verbum.org>
1764
1765         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1766
1767 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1768
1769         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1770         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1771         of defining DBusConnection ourselves.
1772
1773 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1774
1775         * python/dbus.pth: New path file to fix up problems when installing
1776         c libraries to lib64 and python files to lib.
1777
1778         * python/Makefile.am: install dbus.pth in the correct spot
1779
1780 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1781         * ChangeLog: clean up my last entry a bit
1782
1783         * doc/introspect.xsl: New stylesheet for converting introspection data
1784         into browser renderable xhtml. Contributed by Lennart Poettering.
1785
1786         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1787         Poettering.
1788
1789         * doc/dbus-tutorial.xml: 
1790         - Add Colin Walter to the Authors section for authoring the GLib
1791         section
1792         - Add descriptions of the new signature and type functionality
1793         in the Python complex type mapping section
1794         - Add a sidenote on the new args matching functionality in 
1795         the Python bindings
1796         - Fixed up some of the examples to use the gobject.MainLoop
1797         instead of gtk.main
1798         
1799         * python/_dbus.py:
1800         (Bus::_create_args_dict): New. Converts a hash of arg matches
1801         to a more useable format
1802         (Bus::add_signal_receiver): add a **keywords parameter for catching
1803         arg match parameters
1804         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1805         arg match parameters
1806         
1807         * python/matchrules.py:
1808         (MatchTree::exec_matches): Check for arg matches
1809         (SignalMatchRule::add_args_match): New method
1810         (SignalMatchRule::execute): Added args_list parameter as an optimization
1811         so we don't have to marshal the args more than once
1812         (SignalMatchRule::match_args_from_list): New method that checks to see
1813         if the rule's arg matches match an argument list.  Only arguments
1814         set in the rule are checked.
1815         (SignalMatchRule::match_args_from_rule): New method that checks to see
1816         if the rule's arg matches match another rule's.  All args have to match
1817         in order for this method to return true.  If either rule has more args
1818         then it is not a match.
1819         (SignalMatchRule::is_match): Add args match
1820         (SignalMatchRule::repr): Add args to the final output if they exist
1821
1822 2005-08-17  Ross Burton  <ross@burtonini.com>
1823
1824         * glib/dbus-gproxy.c:
1825         (dbus_g_proxy_call_no_reply): unref the message once sent.
1826         (dbus_g_proxy_call): protect against NULL proxy.
1827
1828 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1829
1830         * python/__init__.py: Version updated (0, 43, 0)
1831         
1832         * python/dbus_bindings.pyx: 
1833         - Fixed type objects to have self passed into __init__
1834         - Added the Variant type
1835         - Add the ability to specify types or signatures for Array, Variant 
1836         and Dictionary
1837         (Connection::send_with_reply_handlers): return a PendingCall object
1838         (_pending_call_notification): handle the case when an error is returned 
1839         without an error message in the body
1840         (MessageIter::get_boolean): return True or False instead of an integer
1841         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1842         and add checks for objects with embeded signatures or types (Array, 
1843         Variant and Dictionary)
1844         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1845         (MessageIter::append_dict): handle embeded types or signatures
1846         (MessageIter::append_array): handle embeded types or signatures
1847         (MessageIter::append_variant): new method
1848         
1849         * python/proxies.py:
1850         (DeferedMethod): New. Dummy executable object used when queuing calls 
1851         blocking on introspection data
1852         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1853         or shorter timeouts for method calls
1854         (ProxyObject): Add first pass at an introspection state machine
1855         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1856         introspection. 
1857         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1858         the usual mechanisms for sending messages.  This is to avoid a deadlock
1859         where the Intospect call would be queued waiting for the Introspect 
1860         call to finish ;-)
1861         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1862         when introspection returns with no error
1863         (ProxyObject::_introspect_error_handler): New.  This method is called 
1864         when introspection encounters an error
1865         (ProxyObject::__getattr__): Code to handle different introspection 
1866         states.  Queue async calls or block blocking calls if we are 
1867         introspecting.  Pass through as normal if we are not or are done with 
1868         introspecting.
1869         
1870         * python/service.py: Import signal and method from decorators.py
1871
1872         * python/types.py: Add Variant type
1873
1874 2005-08-16  Colin Walters  <walters@verbum.org>
1875
1876         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1877         DBusError message is NULL.
1878
1879 2005-08-09  Havoc Pennington  <hp@redhat.com>
1880
1881         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1882         malloc'd copy of the name parameter
1883
1884 2005-08-09  Havoc Pennington  <hp@redhat.com>
1885
1886         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1887         warning if the reply serial is set to 0
1888
1889 2005-08-04  Colin Walters  <walters@verbum.org>
1890
1891         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1892         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1893         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1894         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1895         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1896         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1897         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1898         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1899         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1900         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1901         
1902         Prefix name with _ to ensure they're not exported.  All callers
1903         updated.
1904
1905         * glib/dbus-gvalue.c (typecode_to_gtype)
1906         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1907         (signature_iter_to_g_type_dict)
1908         (signature_iter_to_g_type_array)
1909         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1910         (dbus_gtypes_from_arg_signature):
1911         Move to dbus-gsignature.c.
1912
1913         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1914         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1915         (dbus_binding_tool_output_glib_client): Ditto.
1916
1917         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1918         and dbus-gsignature.h
1919
1920         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1921         unused variable.
1922
1923 2005-08-03  Colin Walters  <walters@verbum.org>
1924
1925         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1926         catch any incompatible changes accidentally made.
1927
1928 2005-08-03  Havoc Pennington  <hp@redhat.com>
1929
1930         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1931         typo, from Julien Puydt
1932
1933         * bus/connection.c (bus_connection_disconnected): we were always
1934         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1935
1936 2005-08-01  Colin Walters  <walters@verbum.org>
1937
1938         Patch from Joe Markus Clarke:   
1939         
1940         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1941         use-after-free.
1942
1943 2005-08-01  Colin Walters  <walters@verbum.org>
1944         
1945         Patch from Joe Markus Clarke:   
1946         
1947         * tools/dbus-send.c (main): 
1948         
1949         Don't use C99 style initializers (bug #3933).
1950         
1951 2005-08-01  Colin Walters  <walters@verbum.org>
1952
1953         Patch from Joe Markus Clarke:   
1954
1955         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
1956         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
1957         * glib/dbus-gobject.c (write_interface):
1958
1959         Don't use C99 style initializers (bug #3933).
1960
1961 2005-07-31  Havoc Pennington  <hp@redhat.com>
1962
1963         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1964         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1965
1966 2005-07-30  Havoc Pennington  <hp@redhat.com>
1967
1968         * fix a bunch of Doxygen warnings and mistakes
1969
1970 2005-07-30  Havoc Pennington  <hp@redhat.com>
1971
1972         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1973         DBUS_BUILD_TESTS since it's now used in production code
1974
1975 2005-07-29  Havoc Pennington  <hp@redhat.com>
1976
1977         * test/glib/test-profile.c (write_junk): initialize the junk
1978         buffer so valgrind doesn't have a breakdown
1979
1980 2005-07-29  Havoc Pennington  <hp@redhat.com>
1981
1982         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1983         (match_rule_matches): remove unused arg
1984         (test_matching): add tests for match_rule_matches()
1985
1986         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1987         do arg0='foo' arg5='bar' in the match rules
1988         (match_rule_matches): don't match if the arg0='foo' doesn't match.
1989
1990         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1991
1992 2005-07-29  Ross Burton  <ross@openedhand.com>
1993
1994         * dbus/dbus-connection.c:
1995         Don't create a DBusCondVar which is never used.
1996
1997 2005-07-27  Ross Burton  <ross@openedhand.com>
1998
1999         * dbus/dbus-message.c:
2000         Reduce the size of the maximum cached message to 10K.
2001
2002 2005-07-25  Ross Burton  <ross@openedhand.com>
2003
2004         * glib/dbus-gproxy.c:
2005         Remove matches when all proxies are unregistered.
2006
2007 2005-07-24  Colin Walters  <walters@verbum.org>
2008
2009         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2010         typedata; recursive arrays won't have it.
2011
2012         * test/glib/test-dbus-glib.c:
2013         * test/glib/test-service-glib.c:
2014         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2015         
2016 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2017
2018         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2019         proxies.py, service.py: Cleanup of code after running it through the
2020         pyflakes code checker mostly dealing with undefined names.  
2021         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2022
2023 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2024
2025         * NEWS: Update to 0.35.2
2026
2027 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2028
2029         * python/_dbus.py: Remove import of the dbus.services
2030         module as it no longer exists (patch from Dimitur Kirov)
2031
2032         * python/service.py (Object::__init__): Fixed typo
2033         s/name/bus_name (patch from Dimitur Kirov)
2034
2035         * python/examples/example-signal-emitter.py: import dbus.glib
2036         to get the main loop and use glib mainloop instead of gtk so
2037         X doesn't have to be running.
2038
2039         * python/examples/example-signal-recipient.py: import dbus.glib
2040         to get the main loop and use glib mainloop instead of gtk so
2041         X doesn't have to be running. Import the decorators module
2042         directly.
2043
2044         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2045         didn't pick up on but are needed to build
2046
2047         * configure.in: upped version to 0.35.2
2048
2049         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2050         added Colin Walters' SELinux API rename patch from head 
2051         s/unix sercurity context/selinux security context/
2052
2053 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2054
2055         * python/Makefile.am: dbus_binding.pxd.in should be included 
2056         in EXTRA_DIST not dbus_binding.pxd
2057         fix up $(srcdir) hopefully for the last time
2058
2059         * NEWS: Update to 0.35.1
2060
2061 2005-07-16  Colin Walters  <walters@verbum.org>
2062
2063         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2064         from bus_driver_handle_get_connection_unix_security_context.  Update for
2065         error usage.
2066         (message_handlers): Update for renames.
2067
2068         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2069         _dbus_string_init failure correctly.
2070         (bus_selinux_append_context): Convert SID to context.  Append it
2071         as a byte array.
2072         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2073         hasn't been called.
2074
2075         * bus/selinux.h: Update prototype.
2076
2077         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2078         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2079
2080 2005-07-15  Colin Walters  <walters@verbum.org>
2081
2082         * doc/TODO: Add note about convenience wrappers.
2083
2084 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2085
2086         * NEWS: Update to 0.35
2087
2088 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2089
2090         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2091         so distcheck doesn't fail
2092
2093         * glib/examples/Makefile.am: Add example-service.xml and 
2094         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2095
2096         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2097         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2098
2099         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2100         compiler looks in the right places during distcheck
2101
2102 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2103
2104         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2105         to fail
2106
2107 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2108
2109         * python/examples/example-service.py,
2110         python/examples/example-signal-emitter.py: Fixed up examples
2111         for API changes
2112
2113 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2114
2115         * python/__init__.py: Upped to version (0,42,0) because of
2116         the API change
2117
2118 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2119
2120         * ChangeLog: fix date in last entry
2121
2122         * configure.in, bus/system.conf.in: add the ability to configure 
2123         the system bus user at compiletime with the --with-dbus-user flag
2124         (patch from Kristof Vansant)
2125
2126 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2127
2128         * bus/dispatch.c, test/test-service.c: Add testcase
2129         for sending messages to oneself (TODO item).
2130
2131         * python/service.py (class Object): Swap ordering of bus_name 
2132         and object_path parameters to better support inheritance.
2133
2134         * doc/dbus-tutorial.xml: change Python docs to reflect change
2135         in parameter ordering and fix the inheritance section.
2136
2137         * doc/TODO: remove sending message to oneself TODO item
2138
2139 2005-07-15  Ross Burton  <ross@openedhand.com>
2140
2141         * glib/dbus-gproxy.c:
2142         Fix a leak when calling methods via the proxy.
2143
2144 2005-07-15  Colin Walters  <walters@verbum.org>
2145
2146         * bus/selinux.c (bus_selinux_append_context): Wrap in
2147         HAVE_SELINUX.
2148
2149 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2150
2151         * python/_dbus.py (Bus::remove_signal_receiver):
2152         don't add a callback to the match if none has been passed in
2153         
2154         * python/matchrules.py (SignalMatchTree::remove): if the rule
2155         being matched does not have a callback treat it as a wildcard
2156         fix matching logic
2157
2158         * doc/dbus-tutorial.xml: Add Python tutorial
2159
2160 2005-07-14  Colin Walters  <walters@verbum.org>
2161
2162         * bus/driver.c
2163         (bus_driver_handle_get_connection_unix_security_context): New function.
2164         (message_handlers): Add.
2165
2166         * bus/selinux.c (bus_selinux_append_context): New function; appends
2167         security context to message.
2168
2169         * bus/selinux.h: Prototype.
2170
2171         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2172
2173 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2174
2175         * bus/activation.c: clean up all tabs to be 8 spaces 
2176         (bus_activation_activate_service): make sure we clean up
2177         if activation fails
2178
2179         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2180         (check_shell_fail_service_auto_start): New function
2181         tests to make sure we get fail properly when trying to auto start a service
2182         with a faulty command line
2183         (check_shell_service_success_auto_start): New function tests to make sure
2184         auto started services get the arguments on the command line
2185
2186         * test/test-shell-service.c: Added service for testing auto-starting with 
2187         command line arguments
2188
2189         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2190         test/data/valid-service-files/debug-shell-echo-success.service.in:
2191         Added service files for testing auto-starting with command line arguments
2192
2193         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2194
2195 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2196
2197         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2198         
2199         * dbus/Makefile.am: added new files to build.
2200
2201         * bus/activation.c (bus_activation_activate_service): support
2202         activation commands with parameters.
2203
2204         * test/shell-test.c: added test program for the shell parsing
2205         code.
2206
2207 2005-07-13  David Zeuthen  <davidz@redhat.com>
2208
2209         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2210         64 bit signed and unsigned parameters
2211
2212 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2213
2214         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2215
2216         * python/service.py (class Name): renamed BusName to make it clearer
2217         what the object is for (a name on the bus)
2218
2219         * python/examples/example-service.py,
2220         python/examples/example-signal-emitter.py: change the Name object to
2221         BusName
2222
2223 2005-07-12  Colin Walters  <walters@verbum.org>
2224
2225         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2226
2227         * tools/dbus-launch.c: Include sys/select.h.
2228
2229 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2230         * python/dbus_bindings.pyx.in: removed
2231
2232         * python/dbus_bindings.pyx: Added.
2233         - Fixed some memleaks (patch from 
2234         Sean Meiners <sean.meiners@linspireinc.com>)
2235         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2236         own pxd file (Pyrex definition)
2237         - Broke out glib dependancies into its own pyx module
2238         
2239         * python/dbus_bindings.pdx: Added.
2240         - Defines C class Connection for exporting to other modules
2241
2242         * python/dbus_glib_bindings.pyx: Added.
2243         - New module to handle lowlevel dbus-glib mainloop integration
2244
2245         * python/glib.py: Added.
2246         - Registers the glib mainloop when you import this module
2247
2248         * python/services.py: Removed (renamed to service.py)
2249         
2250         * python/service.py: Added.
2251         - (class Server): renamed Name
2252
2253         * python/__init__.py: Bump ro version (0,41,0)
2254         -don't import the decorators or service module
2255         by default.  These now reside in the dbus.service namespace
2256
2257         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2258         setup function on creation 
2259
2260         * python/examples/example-service.py,
2261         python/examples/example-signal-emitter.py: update examples
2262
2263         * python/examples/gconf-proxy-service.py,
2264         python/examples/gconf-proxy-service2.py: TODO fix these up
2265
2266         * doc/TODO: Addition
2267         - Added a Python Bindings 1.0 section
2268         - added "Add match on args or match on details to match rules"
2269
2270
2271 2005-07-12  Colin Walters  <walters@verbum.org>
2272
2273         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2274         (statemachine-glue.h): 
2275         * glib/examples/Makefile.am (example-service-glue.h) 
2276         (example-signal-emitter-glue.h): 
2277         * glib/Makefile.am (dbus-glib-error-switch.h): 
2278         Add libtool --mode=execute so we use the built library instead
2279         of any installed one.
2280
2281 2005-07-11  Colin Walters  <walters@verbum.org>
2282
2283         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2284         (dbus_g_value_types_init): Remove assertion.
2285         (dbus_g_value_get_g_type, dbus_g_value_open)
2286         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2287         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2288         functions related to DBusGValue.  Now we marshal/demarshal
2289         structures as GValueArray.
2290         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2291         structures.
2292         (signature_iter_to_g_type_array): Don't call
2293         signature_iter_to_g_type_struct.
2294         (signature_iter_to_g_type_struct): Delete.
2295         (dbus_gvalue_to_signature): Delete.
2296         (dbus_gvalue_to_signature): New function with same name as other
2297         one; we can convert structures to signatures.
2298         (demarshal_valuearray): New function.
2299         (get_type_demarshaller): Use it.
2300         (demarshal_recurse): Delete.
2301         (marshal_proxy): New function.
2302         (marshal_map): Warn if we can't determine signature from type.
2303         (marshal_collection_ptrarray): Ditto.
2304         (marshal_collection_array): Ditto.
2305         (get_type_marshaller): Use marshal_valuearray.
2306         (marshal_recurse): Delete.
2307         (_dbus_gvalue_test): Add some tests.
2308
2309         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2310         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2311         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2312         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2313         (dbus_g_value_free): Remove prototypes.
2314
2315         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2316         G_TYPE_VALUE_ARRAY.
2317
2318         * glib/examples/example-service.c:
2319         * glib/examples/example-client.c: Implement GetTuple.
2320
2321         * test/glib/test-dbus-glib.c:
2322         * test/glib/test-service-glib.c:
2323         * test/glib/test-service-glib.xml: Add structure tests.
2324
2325 2005-07-10  Colin Walters  <walters@verbum.org>
2326
2327         * doc/TODO: Knock off some GLib items with this patch.
2328
2329         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2330         (_dbus_gvalue_signals_error): New functions.
2331
2332         * glib/dbus-gvalue-utils.h: Prototype them.
2333
2334         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2335         and change to not output const/retval flags for input args.  All
2336         callers updated.
2337         (invoke_object_method): Refactor to handle return values.  Add
2338         some more comments in various places.  Remove debug g_print.
2339
2340         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2341
2342         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2343         Handle G_TYPE_NONE.
2344         (compute_gsignature): New function; refactored from code from
2345         compute_marshaller and compute_marshaller_name.  Enhance to
2346         handle return values and async ops more cleanly.  Update for
2347         async ops returning NONE instead of BOOLEAN.
2348         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2349         and output appropriate string.
2350         (generate_glue): Handle return value annotation.  Also don't dump
2351         constness flag for input arguments.
2352
2353         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2354         files shared between installed library and utilities.
2355         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2356         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2357         binding tool can access gtype utility functions.
2358
2359         * test/glib/test-service-glib.c: 
2360         * test/glib/test-service-glib.xml: 
2361         * test/glib/test-dbus-glib.c: Add some tests for return values.
2362
2363 2005-07-09  Colin Walters  <walters@verbum.org>
2364
2365         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2366         argument if available, not method.
2367
2368         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2369         (invoke_object_method): First, remove some redundant
2370         GValues (object_value, error_value) in favor of working on
2371         array directly.  Second, rework constness to be less buggy.
2372         Now we iterate directly over the argument metadata instead
2373         of parallel iterating over output signature and metadata.
2374
2375         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2376
2377         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2378         annotation on input args.
2379         
2380 2005-07-09  Colin Walters  <walters@verbum.org>
2381
2382         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2383         Define.
2384
2385         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2386         annotation.
2387
2388         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2389         (method_dir_signature_from_object_info): Handle arg_iterate change.
2390         (write_interface): Ditto.
2391         (lookup_object_info): Don't barf if format_version is > 0.
2392         (invoke_object_method): Handle arg constness.
2393
2394         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2395         (arg_info_new): Create.
2396         (arg_info_unref): Destroy.
2397         (arg_info_get_annotations, arg_info_get_annotation) 
2398         (arg_info_add_annotation): New functions.
2399
2400         * glib/dbus-gidl.h: Prototype them.
2401
2402         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2403         args, disallow them in properties.
2404         (parse_annotation): Handle arg annotations.
2405
2406         * test/glib/test-service-glib.xml: 
2407         * test/glib/test-service-glib.c: Update to make some methods
2408         const.
2409
2410 2005-07-08  Colin Walters  <walters@verbum.org>
2411
2412         * test/glib/test-service-glib.xml: 
2413         * test/glib/test-service-glib.c:
2414         * test/glib/test-dbus-glib.c: Test a{sv}.
2415
2416         * glib/examples/statemachine/statemachine.c:
2417         * glib/examples/statemachine/statemachine-server.c:
2418         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2419         add progress bar, etc.
2420
2421         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2422         needed anymore due to generic array/map marshalling.
2423         (dbus_g_value_types_init): Don't register basic arrays or the
2424         string/string hash.
2425         (dbus_gtype_from_signature_iter): Don't try to recurse into
2426         variants.
2427         (dbus_gtype_to_signature): Check collection/map before type
2428         metadata.
2429         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2430         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2431         generic map creation/append functions instead of hash table
2432         specifically.
2433         (get_type_demarshaller): Handle maps.
2434         (demarshal_collection): Dispatch on collection type to either
2435         demarshal_collection_ptrarray or demarshal_collection_array.
2436         (get_type_marshaller): Handle maps.
2437         (marshal_collection): Dispatch collection type to either
2438         marshal_collection_ptrarray or marshal_collection_array.
2439         (_dbus_gvalue_test): New test.
2440
2441         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2442         (hash_free_from_gtype): Use it to free GValues.
2443         (hashtable_append): New function.
2444         (ptrarray_append): Fix prototype.
2445         (slist_append): Ditto.
2446         (_dbus_gvalue_utils_test): Extend tests.
2447
2448         * glib/dbus-gtype-specialized.c
2449         (dbus_g_type_specialized_init_append): Renamed from
2450         dbus_g_type_specialized_collection_init_append.  Remove const from
2451         value, since we steal it.
2452         (dbus_g_type_specialized_map_append): New function.
2453
2454         * glib/dbus-gtype-specialized.h: Update prototypes.
2455         Add DBusGTypeSpecializedMapAppendFunc.
2456
2457         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2458         _dbus_gvalue_test.
2459         
2460         * glib/dbus-gtest.h: Prototype it.
2461
2462 2005-07-08  Ross Burton  <ross@openedhand.com>
2463
2464         * dbus/dbus-glib.h:
2465         Add DBysGAsyncData for the async bindings.
2466
2467         * glib/dbus-binding-tool-glib.c:
2468         Re-enable the async bindings.
2469
2470         * test/glib/test-dbus-glib.c:
2471         Add a test for the generated async bindings.
2472
2473 2005-07-08  Colin Walters  <walters@verbum.org>
2474
2475         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2476         connection concept.
2477         
2478 2005-07-08  Colin Walters  <walters@verbum.org>
2479         
2480         * tools/Makefile.am: Kill of print-introspect in favor of using
2481         dbus-send --print-reply=literal.
2482
2483         * test/glib/test-service-glib.xml: 
2484         * test/glib/test-service-glib.c (my_object_get_objs): New test
2485         for "ao".
2486
2487         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2488         (main): Test GetObjs.
2489
2490         * glib/examples/statemachine/Makefile.am:
2491         * glib/examples/statemachine/sm-marshal.list:
2492         * glib/examples/statemachine/statemachine-client.c:
2493         * glib/examples/statemachine/statemachine-server.c:
2494         * glib/examples/statemachine/statemachine-server.xml:
2495         * glib/examples/statemachine/statemachine.c:
2496         * glib/examples/statemachine/statemachine.h:
2497         * glib/examples/statemachine/statemachine.xml:
2498
2499         New example.
2500
2501         * glib/examples/example-service.c (main): Move invocation
2502         of dbus_g_object_type_install_info earlier, to emphasize it
2503         should only be done once.
2504
2505         * glib/examples/example-signal-emitter.c (main): Ditto.
2506
2507         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2508
2509         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2510         (dbus_gvalue_marshal): Update prototypes.
2511
2512         * glib/dbus-gvalue.c: Update all marshalling functions to take
2513         const GValue instead of GValue.
2514         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2515         types.
2516         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2517         change.
2518         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2519         Return a newly-allocated string.
2520         (demarshal_proxy, demarshal_object_path, demarshal_object)
2521         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2522         we get the wrong types from message.
2523         (get_type_demarshaller): New function, extracted from
2524         dbus_gvalue_demarshal.
2525         (demarshal_collection): New function, demarshals generic
2526         collection.
2527         (dbus_gvalue_demarshal): Just invoke result of
2528         get_type_demarshaller.  Throw error if we don't have one.
2529         (marshal_garray_basic): Abort on OOM.
2530         (get_type_marshaller): New function, extracted from
2531         dbus_gvalue_marshal.
2532         (collection_marshal_iterator, marshal_collection): New functions;
2533         implements generic marshalling for an iteratable specialized
2534         collection.
2535         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2536
2537         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2538         G_TYPE_STRING.
2539         (ptrarray_value_from_gvalue): Ditto.
2540         (ptrarray_append, ptrarray_free): New functions.
2541         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2542         (slist_append, slist_end_append, slist_free): New functions.
2543         (dbus_g_type_specialized_builtins_init): Add append fuctions
2544         for GPtrArray and GSList.  Register GSList.
2545         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2546
2547         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2548         New.
2549         (dbus_g_type_specialized_collection_init_append)
2550         (dbus_g_type_specialized_collection_append)
2551         (dbus_g_type_specialized_collection_end_append): Prototype.
2552         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2553         end_append_func.
2554
2555         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2556         (dbus_g_type_specialized_collection_append) 
2557         (dbus_g_type_specialized_collection_end_append): New functions.
2558         (dbus_g_type_map_value_iterate): Take const GValue.
2559         (dbus_g_type_collection_value_iterate): Ditto.
2560
2561         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2562         _dbus_gvalue_utils_test.
2563         
2564         * glib/dbus-gtest.h: Prototype it.
2565
2566         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2567         using uninitialized owner_list.
2568         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2569         public API.
2570         (dbus_g_proxy_end_call_internal): Update to use error set
2571         from dbus_gvalue_demarshal instead of setting it here.
2572         (dbus_g_proxy_begin_call): Move return_if_fail here.
2573
2574         * glib/dbus-gobject.c (write_interface): Update for
2575         dbus_gtype_to_signature returning new string.
2576
2577         * configure.in: Add glib/examples/statemachine.
2578
2579 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2580
2581         * configure.in: Add a configure option, --with-console-auth-dir
2582         
2583         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2584         new setting.  Patch from Kay Sievers.
2585
2586 2005-07-06  Colin Walters  <walters@verbum.org>
2587
2588         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2589         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2590         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2591         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2592         Delete in favor of dbus_g_proxy_begin_call and
2593         dbus_g_proxy_cancel_call.
2594         (DBusGProxyCall, DBusGProxyCallNotify): New.
2595         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2596         data, and destroy function.  This replaces
2597         dbus_g_pending_call_set_notify.
2598         (dbus_g_proxy_cancel_call): Prototype.
2599         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2600
2601         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2602         pending_calls map.
2603         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2604         internal proxy for calls to the bus. Remove
2605         pending_nameowner_calls, now the internal proxy keeps track.
2606         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2607         pending_nameowner_calls.
2608         (got_name_owner_cb): Update prototype, and use
2609         dbus_g_proxy_end_call.
2610         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2611         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2612         favor of using internal proxy.
2613         (dbus_g_proxy_manager_unregister): Update to use
2614         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2615         (dbus_g_proxy_init): Initialize pending calls map.
2616         (dbus_g_proxy_constructor): New.
2617         (dbus_g_proxy_class_init): Add get/set property functions,
2618         constructor, and add NAME, PATH, and INTERFACE properties.
2619         (cancel_pending_call): New function.
2620         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2621         cancel them.
2622         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2623         (GPendingNotifyClosure): New structure.
2624         (d_pending_call_notify, d_pending_call_free): Moved here from
2625         dbus-glib.c.
2626         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2627         ordering.
2628         (manager_begin_bus_call): New internal function for talking to
2629         internal bus proxy.
2630         (dbus_g_proxy_new): Construct object using GObjet properties.
2631         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2632         Create closure of same, and insert call into map of pending calls.
2633         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2634         call.  Look up pending call in current set.  Remove it when we've
2635         completed.
2636         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2637         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2638         and destroy function directly.
2639         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2640         (dbus_g_proxy_call): Invoke with NULL callback.
2641         (dbus_g_proxy_cancel_call): New function, replaces
2642         dbus_g_pending_call_cancel.
2643
2644         * glib/dbus-gparser.c (validate_signature): Fix call to
2645         dbus_set_g_error.
2646
2647         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2648         New quark for attaching metadata to GType.
2649         (info_hash): Delete.
2650         (lookup_object_info): Look up using quark.
2651         (dbus_g_object_type_install_info): Check that a type is classed,
2652         not that it's an object.  Also just install type data using quark
2653         instead of using global hash.
2654
2655         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2656         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2657         (GPendingNotifyClosure): Delete.
2658         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2659         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2660
2661         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2662         client method generation until we can fix it...
2663         
2664         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2665         (load_from_service_thread_func): Ditto.
2666
2667         * tools/dbus-names-model.c (struct NamesModel): Hold
2668         DBusGProxyCall.
2669         (have_names_notify): Update prototype, use
2670         dbus_g_proxy_cancel_call.
2671         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2672
2673         * tools/dbus-monitor.c (filter_func): Update for print_message
2674         API change.
2675
2676         * test/glib/test-dbus-glib.c: Add more tests for async
2677         invocations.  Update many begin_call/end_call pairs to just use
2678         dbus_g_proxy_call.
2679
2680         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2681         allows us to dump print-introspect.c.
2682
2683         * tools/dbus-print-message.h (print_message): Add literal argument
2684         to print_message which is intended to allow printing arguments without
2685         metadata like "string=".
2686
2687         * tools/dbus-print-message.c (print_iter): Add literal argument.
2688         (print_message): Allow printing string messages literally.
2689
2690 2005-07-05  Colin Walters  <walters@verbum.org>
2691
2692         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2693         Remove value refcount leak, original patch from Jorn Baayen
2694         <jorn@openedhand.com>.  Also remove useless extra value in favor
2695         of prepending to value array directly.
2696
2697 2005-07-02  Colin Walters  <walters@verbum.org>
2698
2699         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2700
2701 2005-07-01  Colin Walters  <walters@verbum.org>
2702
2703         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2704         
2705         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2706         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2707         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2708         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2709
2710 2005-06-30  Colin Walters  <walters@verbum.org>
2711
2712         * test/glib/test-dbus-glib.c:
2713         * test/glib/test-service-glib.c:
2714         * test/glib/test-service-glib.xml: Update tests for new error
2715         setting bits, also add async tests (patch from Ross Burton).
2716
2717         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2718         DBUS_GLIB_THREADS_LIBS.
2719
2720         * glib/dbus-gproxy.c (get_name_owner)
2721         (dbus_g_pending_call_end_valist): Ditto.
2722
2723         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2724         domain (GQuark) to DBusGErrorInfo.  
2725         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2726         quark in error_metadata.  Take message interface as default
2727         error message interface.
2728         (gerror_to_dbus_error_message): Pass message interface.
2729         (dbus_set_g_error): Resurrected.
2730         (dbus_g_error_info_free): New function.
2731         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2732         of _peek to actually create the object class if it hasn't been
2733         created yet.
2734         (dbus_g_error_domain_register): New function.
2735
2736         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2737
2738         * glib/dbus-gparser.c (validate_signature): Ditto.
2739
2740         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2741         (dbus_g_error_domain_register): Prototype.
2742
2743         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2744         Update tests.
2745
2746 2005-06-29  Colin Walters  <walters@verbum.org>
2747
2748         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2749         DBUS_TYPE_G_OBJECT_PATH.
2750
2751         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2752         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2753         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2754         (dbus_g_object_path_get_g_type): New function.
2755         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2756         to DBUS_TYPE_G_OBJECT_PATH by default.
2757         (demarshal_proxy): Remove unused name variable.
2758         (demarshal_object_path, marshal_object_path): New functions.
2759         (demarshal_proxy_array, marshal_proxy_array): Delete.
2760         
2761         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2762         DBUS_TYPE_G_OBJECT_PATH to char *.
2763         (dbus_g_type_get_lookup_function): Map builtin
2764         DBUS_TYPE_G_OBJECT_PATH.
2765
2766         * test/glib/test-dbus-glib.c
2767         * test/glib/test-service-glib.c (my_object_objpath): 
2768         Adapt tests to new object path marshalling.
2769
2770 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2771
2772         * configure.in: force check for Python >= 2.4
2773
2774 2005-06-29  Colin Walters  <walters@verbum.org>
2775         
2776         Patch from Ross Burton <ross@openedhand.com>
2777         
2778         * glib/dbus-gobject.c (invoke_object_method): Unset object
2779         value in all cases, not only in async case.
2780
2781 2005-06-29  Colin Walters  <walters@verbum.org>
2782
2783         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2784         name_call for keeping track of any outgoing GetNameOwner call.
2785         Also add for_owner and associated.
2786         (struct _DBusGProxyManager): Add owner_names, which is hash table
2787         that maps a base name to a list of names it owns (that we're
2788         interested in).  Add pending_nameowner_calls which is a list of
2789         all outstanding GetNameOwner; avoids us having to iterate over
2790         every proxy.  Add unassociated_proxies which keeps track of name
2791         proxies with no associated name owner.
2792         (dbus_g_proxy_manager_unref): Destroy owner_names.
2793         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2794         name refcounts.
2795         (find_name_in_info, name_owner_foreach)
2796         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2797         (dbus_g_proxy_manager_monitor_name_owner)
2798         (dbus_g_proxy_manager_unmonitor_name_owner)
2799         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2800         New functions; they manipulate the owner_names mapping.
2801         (got_name_owner_cb): New function.
2802         (get_name_owner): New function, extracted from
2803         dbus_g_proxy_new_for_name_owner.
2804         (dbus_g_proxy_manager_register): For now we need to keep track of
2805         all NameOwnerChanged.  Also if the proxy is for a name, if we
2806         don't already know the name owner, queue a new GetNameOwner
2807         request and add it to our list of unassociated proxies.  Otherwise
2808         inc the refcount.
2809         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2810         cancel any pending GetNameOwner call, etc.
2811         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2812         the owner_names mapping to look up the current names for the
2813         signal source, and dispatch to any proxies for that name.
2814         (dbus_g_proxy_new): Initialize new members.
2815         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2816         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2817         (dbus_g_pending_call_end_valist): New function, extracted from
2818         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2819         but want to use the GLib infrastructure.  Also note how many
2820         arguments in reply were over.
2821         (dbus_g_pending_call_end): New function, just call
2822         dbus_g_pending_call_end_valist.
2823         (dbus_g_proxy_end_call_internal): Just call
2824         dbus_g_pending_call_end_valist.
2825
2826         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2827         of builtin marshaller for STRING_STRING_STRING.
2828
2829         * test/glib/test-dbus-glib.c: 
2830         * test/glib/test-service-glib.c:
2831         * test/glib/test-service-glib.xml:
2832         Extend tests to cover name proxies, destruction of owner proxies,
2833         etc.
2834         
2835         * glib/examples/example-signal-recipient.c
2836         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2837         
2838         * tools/dbus-send.c (main): Print D-BUS error name in addition
2839         to message.
2840
2841 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2842
2843         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2844         cmessage_function_handler): Patch from 
2845         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2846         by using the Py_GILState_Ensure/Release to synchronize with the
2847         python runtime.
2848         
2849 2005-06-28  Ray Strode  <rstrode@redhat.com>
2850
2851         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2852         babysitter helper process on last unref, bug #2813.
2853
2854 2005-06-27  Colin Walters  <walters@verbum.org>
2855
2856         * test/glib/test-dbus-glib.c: 
2857         * test/glib/test-service-glib.c:
2858         * test/glib/test-service-glib.xml:
2859         Test hash table signal emitting.
2860
2861         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2862         types to their fundamental basis types, since this is what
2863         marshallers operate on.  Also add an entry for VOID__BOXED.
2864         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2865
2866 2005-06-26  Havoc Pennington  <hp@redhat.com>
2867
2868         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2869         from Don Park
2870
2871 2005-06-26  Colin Walters  <walters@verbum.org>
2872
2873         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2874         (dbus_g_error_set): New public function from its ashes; used by
2875         both service-side method implementation and GLib bindings
2876         internals.
2877         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2878         (_dbus_glib_test): Add some tests.
2879
2880         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2881
2882         * test/glib/test-service-glib.c (my_object_throw_error): Use
2883         dbus_g_error_set.
2884
2885         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2886         errors thrown by dbus_g_error_set.
2887
2888         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2889
2890         * glib/dbus-gparser.c (validate_signature): Ditto.
2891
2892         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2893         (dbus_g_proxy_end_call_internal): Ditto.
2894
2895         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2896         converts DBUS_ERROR_x to DBUS_GERROR_x.
2897         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2898
2899         * doc/TODO: Remove error TODO.
2900
2901         * doc/dbus-tutorial.xml: Update with documentation about error
2902         handling.
2903
2904         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2905         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2906         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2907
2908 2005-06-22  Colin Walters  <walters@verbum.org>
2909         
2910         Patch from Ross Burton <ross@openedhand.com>
2911
2912         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2913
2914 2005-06-20  Colin Walters  <walters@verbum.org>
2915
2916         * configure.in: Add glib/examples.
2917
2918         * glib/Makefile.am: Add examples/
2919
2920         * glib/examples/.cvsignore
2921         * glib/examples/Makefile.am
2922         * glib/examples/example-client.c
2923         * glib/examples/example-service.c
2924         * glib/examples/example-service.xml
2925         * glib/examples/example-signal-emitter.c
2926         * glib/examples/example-signal-emitter.xml
2927         * glib/examples/example-signal-recipient.c:
2928         New files; GLib binding examples, ported from
2929         python/examples.
2930
2931 2005-06-20  Colin Walters  <walters@verbum.org>
2932
2933         * dbus/dbus-glib.h: 
2934         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2935         dbus_g_proxy_call.
2936
2937         * glib/dbus-binding-tool-glib.c: 
2938         * doc/dbus-tutorial.xml: 
2939         * test/glib/test-dbus-glib.c: Update for rename.
2940         
2941 2005-06-20  Colin Walters  <walters@verbum.org>
2942
2943         Patch suggested by Ross Burton <ross@openedhand.com>
2944
2945         * glib/dbus-gobject.c (export_signals): Free signal name.
2946         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2947         memory leak.  Add a bit of documentation.
2948         (dbus_g_method_return_error): Free context, and note we do
2949         so.
2950
2951 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2952
2953         * dbus/dbus-glib.h:
2954         * glib/dbus-gobject.c:
2955         * glib/dbus-gproxy.c:
2956         * glib/dbus-gvalue.c: Predeclare structs as 
2957         typedef struct _Something Something instead of 
2958         typedef struct Something Something, so we can 
2959         redeclare the prototypes. Other GNOME libraries 
2960         do this already.
2961
2962 2005-06-17  Colin Walters  <walters@verbum.org>
2963
2964         * tools/dbus-names-model.c (have_names_notify): Fix call
2965         to dbus_g_proxy_end_call.
2966         
2967 2005-06-17  Colin Walters  <walters@verbum.org>
2968
2969         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2970         spew warnings if we get malformed remote signals.
2971
2972         * glib/dbus-gobject.c (propsig_iterate): New function.
2973         (lookup_object_info): New function, extracted from
2974         lookup_object_and_method.
2975         (introspect_properties, introspect_signals): Delete; these
2976         are merged into write_interface.
2977         (write_interface): Write out signals and properties here;
2978         dump the org.gtk.object stuff and use the interface given
2979         in the introspection data blob.  Also fix up property XML.
2980         (lookup_values): New function.
2981         (introspect_interfaces): Gather a mapping from interface to a
2982         list of its methods, signals, and properties, then write out
2983         each interface.
2984         (lookup_object_and_method): Use lookup_object_info.
2985         (struct DBusGSignalClosure): Add interface.
2986         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2987         we can just use the constant data.
2988         (dbus_g_signal_closure_finalize): Don't free signal name.
2989         (signal_emitter_marshaller): Use interface from signal closure.
2990         (export_signals): Only export signals mentioned in introspection
2991         blob.
2992         (dbus_g_connection_register_g_object): Warn if we have no
2993         introspection data for an object.
2994         (funcsig_equal): Remove unused variable.
2995         (dbus_g_object_register_marshaller): Take varargs instead of
2996         list.
2997         (dbus_g_object_register_marshaller_array): New function,
2998         extracted from old dbus_g_object_register_marshaller.
2999
3000         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3001         signals and property data.
3002         (write_quoted_string): New function, extracted from generate_glue.
3003         (generate_glue): Write signals and properties to introspection
3004         blob.
3005
3006         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3007         exported_signals and exported_properties.
3008         (dbus_g_object_register_marshaller): Update prototype.
3009         (dbus_g_object_register_marshaller_array): Prototype.
3010         
3011         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3012
3013         * test/glib/test-service-glib.c: Add new test signals and method
3014         to emit them.
3015
3016         * test/glib/test-service-glib.xml: Add some test signals.
3017
3018         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3019         and my-object-marshal.h
3020         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3021         my-object-marshal.c.
3022         (my-object-marshal.c, my-object-marshal.h): Implement.
3023
3024         * test/glib/.cvsignore: Update.
3025
3026         * doc/TODO: Remove two GLib TODO items fixed by this
3027         patch.
3028
3029 2005-06-16  Colin Walters  <walters@verbum.org>
3030
3031         * doc/TODO: Update for GLib bindings.
3032         
3033 2005-06-16  Colin Walters  <walters@verbum.org>
3034
3035         * glib/dbus-binding-tool-glib.c:
3036         * glib/dbus-gobject.c:
3037         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3038         from Ross Burton, for his GLib bindings work.
3039
3040 2005-06-16  Colin Walters  <walters@verbum.org>
3041
3042         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3043         to iterate instead of walking to G_TYPE_INVALID.
3044
3045         Patch based on a patch from Ryan Gammon.
3046
3047 2005-06-16  Colin Walters  <walters@verbum.org>
3048
3049         * bus/bus.c (bus_context_new): Set parser to NULL
3050         after we unref it (Patch from Chris Boscolo, #2174).
3051         
3052 2005-06-16  Colin Walters  <walters@verbum.org>
3053
3054         * python/dbus_bindings.pyx.in: Import size_t,
3055         __int64_t, __uint64_t, and __signed.
3056
3057         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3058         Define cmsg struct, output it.
3059         (_dbus_read_credentials_unix_socket):
3060         Use cmsg struct.
3061         
3062         Patch from Joe Markus Clarke for FreeBSD support.
3063         
3064 2005-06-16  Colin Walters  <walters@verbum.org>
3065
3066         * tools/dbus-send.c (append_array): Use strtok.
3067         (append_dict): New function.
3068         (type_from_name): New function, extracted from main.
3069         (main): Handle sending dicts.
3070
3071         * tools/dbus-print-message.c (print_iter): Print dict
3072         entries.
3073         
3074 2005-06-16  Colin Walters  <walters@verbum.org>
3075
3076         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3077         values as the empty string (#2948).
3078         
3079 2005-06-16  Colin Walters  <walters@verbum.org>
3080
3081         * dbus/Makefile.am:
3082         * mono/doc/Makefile.am:
3083         * test/glib/Makefile.am:
3084
3085         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3086
3087 2005-06-16  Colin Walters  <walters@verbum.org>
3088
3089         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3090         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3091
3092         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3093         Increment pointer after swapping fixed array.  Add assertion
3094         for array length.
3095                 
3096 2005-06-15  Colin Walters  <walters@verbum.org>
3097
3098         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3099         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3100         
3101 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3102
3103         * NEWS: Update to 0.34
3104
3105 2005-06-15  David Zeuthen  <davidz@redhat.com>
3106
3107         * configure.in (LT_CURRENT): Revert back to 1 as the library
3108         hasn't changed and we've certainly not committed to protocol
3109         stability yet.  All this does is to break ABI. See commit note
3110         from hp@redhat.com 2005-05-05 for details.
3111         
3112 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3113
3114         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3115         (_dbus_connection_run_builtin_filters): New method
3116         (dbus_connection_dispatch): Run the builtin filters which in turn
3117         runs the peer filter which handles Ping messages.
3118
3119         * doc/TODO: 
3120          - Ping isn't handled: This patch fixes it
3121          
3122          - Add a test case for the Ping message: added TODO item
3123
3124 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3125
3126         * dbus/dbus-message.c:
3127         (dbus_message_has_path): New method
3128         (dbus_message_has_interface): New method
3129         (dbus_message_has_member): New method
3130
3131         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3132         New method
3133
3134         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3135         the keyring directory is private to the user
3136
3137         * doc/TODO:
3138          - The convenience functions in dbus-bus.h should perhaps have
3139          the signatures that they would have if they were autogenerated
3140          stubs. e.g. the acquire service function. We should also evaluate
3141          which of these functions to include, in light of the fact that
3142          GLib/Qt native stubs will probably also exist.: Punted
3143
3144          - add dbus_message_has_path(), maybe has_member/interface:
3145          fixed in this patch
3146
3147          - in dbus-keyring.c, enforce that the keyring dir is not
3148          world readable/writable: Fixed in this patch
3149
3150 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3151
3152         * dbus/dbus-marshal-validate.h: Added a new validation
3153         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3154         out of memory errors when validating signitures
3155
3156         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3157         in places where we previously used DBUS_VALID and a FALSE return 
3158         value to indicate OOM
3159         
3160         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3161         Use a stack to track the number of elements inside containers.  The 
3162         stack values are then used to validate that dict entries have only two
3163         elements within them.
3164         (validate_body_helper): check the reason for failure when validating
3165         varients
3166         
3167         * dbus/dbus-message.c (load_message): use 
3168         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3169         DBUS_VALID and a FALSE return value to indicate OOM
3170
3171         * doc/TODO: remove "- validate dict entry number of fields" as this
3172         patch fixes it
3173
3174 2005-06-14  David Zeuthen  <davidz@redhat.com>
3175
3176         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3177         watches (if applicable) and add new watches
3178
3179         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3180         (main): Setup SIGIO signal handler if using D_NOTIFY
3181
3182         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3183
3184         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3185         (merge_included): Also merge conf_dirs list
3186         (bus_config_parser_unref): Clear conf_dirs list
3187         (include_dir): Add directory to conf_dirs list
3188         (bus_config_parser_get_conf_dirs): New function
3189
3190         * bus/dir-watch.[ch]: New files
3191
3192         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3193
3194         * configure.in: Add checks for D_NOTIFY on Linux
3195
3196 2005-06-14  Colin Walters  <walters@verbum.org>
3197
3198         * glib/dbus-binding-tool-glib.c:
3199         * glib/dbus-gobject.c:
3200         * glib/dbus-gvalue.c: Fix indentation and brace style.
3201         
3202 2005-06-14  Ross Burton <ross@openedhand.com>.
3203
3204         * glib/dbus-glib.h: Make DBusGMethodInvocation
3205         a private structure.  Rearrange prototypes a bit.
3206         
3207         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3208         documentation for first_arg_type.
3209         
3210         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3211         here, add documentation.  Move dbus_g_method_return
3212         and dbus_g_method_return_error into public API
3213         section.
3214
3215 2005-06-14  Colin Walters  <walters@verbum.org>
3216
3217         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3218         Add missing return statements, noticed by Ross Burton.
3219         
3220 2005-06-13  Ross Burton <ross@openedhand.com>.
3221
3222         * glib/dbus-gobject.c: Handle errors on message
3223         demarshalling by sending error message back.
3224         * glib/dbus-gvalue.c: Initialize return variables.
3225
3226 2005-06-13  Colin Walters  <walters@verbum.org>
3227
3228         * glib/Makefile.am: Fix thinko in last patch.
3229
3230 2005-06-13  Colin Walters  <walters@verbum.org>
3231
3232         * glib/Makefile.am: Move dbus-gtype-specialized.c
3233         and dbus-gtype-specialized.h into a _HEADERS variable,
3234         install them.
3235
3236 2005-06-12  Colin Walters  <walters@verbum.org>
3237
3238         Async signals and various bugfixes and testing by
3239         Ross Burton <ross@openedhand.com>.
3240
3241         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3242         (dbus_gvalue_genmarshal_name_from_type)
3243         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3244         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3245         (dbus_g_value_types_init, dbus_gtype_from_signature)
3246         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3247         (dbus_gtypes_from_arg_signature): New function prototypes.
3248         (dbus_gvalue_demarshal): Take context and error arguments.
3249         (dbus_gvalue_demarshal_variant): New function.
3250         (dbus_gvalue_demarshal_message): New function.
3251         (dbus_gvalue_store): Delete.
3252
3253         * glib/dbus-gvalue.c:
3254
3255         File has been almost entirely rewritten; now we special-case
3256         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3257         hash tables correctly, etc.  Full support for recursive values
3258         is not yet complete.
3259
3260         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3261         argument of signal to G_TYPE_POINTER since we now pass a
3262         structure.
3263         (lookup_g_marshaller): Delete in favor of
3264         _dbus_gobject_lookup_marshaller.
3265         (marshal_dbus_message_to_g_marshaller): Use
3266         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3267         to handle remote signal callbacks.
3268         (dbus_g_proxy_new_from_proxy): New function; creates a new
3269         DBusGProxy by copying an existing one.
3270         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3271         (dbus_g_proxy_get_path): New functions.
3272         (dbus_g_proxy_marshal_args_to_message): New function;
3273         factored out of existing code.
3274         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3275         from a varargs array.
3276         (dbus_g_proxy_begin_call_internal): New function.
3277         (dbus_g_proxy_end_call_internal): New function.
3278         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3279         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3280         after collecting args into value array.
3281         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3282         invoke dbus_g_proxy_end_call_internal.
3283         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3284         end_call_internal.
3285         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3286         types.
3287         (array_free_all): New function.
3288         (dbus_g_proxy_add_signal): Take GTypes.
3289
3290         * glib/dbus-gobject.h:
3291         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3292         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3293         Prototype.
3294
3295         * glib/dbus-gobject.c: Add a global marshal_table hash which
3296         stores mappings from type signatures to marshallers.  Change lots
3297         of invocations of dbus_gtype_to_dbus_type to
3298         dbus_gtype_to_signature.
3299         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3300         (introspect_signals): Fix test for query.return_type.
3301         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3302         (invoke_object_method): Many changes.  Handle asynchronous
3303         invocations.  Convert arguments with
3304         dbus_gvalue_demarshal_message.  Handle errors.  Use
3305         DBusSignatureIter instead of strlen on args. Handle all arguments
3306         generically.  Special-case variants.
3307         (dbus_g_method_return, dbus_g_method_return_error): New function.
3308         (DBusGSignalClosure): New structure, closes over signal
3309         information.
3310         (dbus_g_signal_closure_new): New function.
3311         (dbus_g_signal_closure_finalize): New function.
3312         (signal_emitter_marshaller): New function; is special marshaller
3313         which emits signals on bus.
3314         (export_signals): New function; introspects object signals and
3315         connects to them.
3316         (dbus_g_object_type_install_info): Take GType instead of
3317         GObjectClass.
3318         (dbus_g_connection_register_g_object): Invoke export_signals.
3319         (dbus_g_connection_lookup_g_object): New function.
3320         (DBusGFuncSignature) New structure; used for mapping type
3321         signatures to marshallers.
3322         (funcsig_hash): New function; hashes DBusGFuncSignature.
3323         (funcsig_equal): New function; compares DBusGFuncSignature.
3324         (_dbus_gobject_lookup_marshaller): New function.
3325         (dbus_g_object_register_marshaller): New function; used to
3326         register a marshaller at runtime for a particular signature.
3327
3328         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3329
3330         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3331         which notes a server method implementation should be
3332         asynchronous.
3333
3334         * glib/dbus-binding-tool-glib.c
3335         (dbus_binding_tool_output_glib_server): Call
3336         dbus_g_value_types_init.
3337         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3338         variants specially.
3339         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3340         of a lookup function.
3341         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3342         (write_untyped_out_args): New method; write output arguments.
3343         (write_formal_declarations_for_direction): Function for
3344         writing prototypes.
3345         (write_formal_parameters_for_direction): Function for
3346         writing implementations.
3347         (write_typed_args_for_direction): Function for writing
3348         arguments prefixed with GTypes.
3349         (write_async_method_client): Write out async version
3350         of method.
3351
3352         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3353         (dbus_g_type_get_marshal_name): Move mapping from GType
3354         to marshal name into here.
3355         (dbus_g_type_get_c_name): Move into here.
3356         (compute_marshaller): Convert signature to type with
3357         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3358         (compute_marshaller_name): Ditto.
3359         (compute_marshaller): Handle async signal annotations.
3360         (gather_marshallers): Return if we don't have a known
3361         prefix.
3362         (generate_glue): Collect introspection blob here, and
3363         write all of the blob at the end.  This allows an object
3364         with multiple interfaces to work.
3365         Mark async methods in introspection blob.
3366
3367         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3368         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3369         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3370
3371         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3372         avoids people accidentally using DBUS_TYPE_* which should
3373         not be necessary anymore.
3374         Do include dbus-gtype-specialized.h, which are utilities
3375         for GLib container types.
3376         Add various #defines for types such as
3377         DBUS_TYPE_G_BOOLEAN_ARRAY.
3378         (DBusGValueIterator, DBusGValue): Define, not fully used
3379         yet.
3380         (dbus_g_value_get_g_type): Type for recursive value.
3381         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3382         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3383         (dbus_g_value_free): Prototypes.
3384         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3385         (dbus_g_proxy_set_interface): Prototype.
3386         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3387         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3388         types.
3389         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3390         Accessors.
3391         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3392         doing async invocations.
3393         (dbus_g_method_return, dbus_g_method_return_error):
3394         Prototypes.
3395         * doc/dbus-tutorial.xml: Update GLib section.
3396         
3397         * tools/dbus-viewer.c (load_child_nodes): Update
3398         for new invocation type of dbus_g_proxy_end_call.
3399         (load_from_service_thread_func): Ditto.
3400
3401         * tools/print-introspect.c (main): Ditto.
3402
3403         * tools/dbus-names-model.c (have_names_notify)
3404         (names_model_reload, names_model_set_connection)
3405         Use GTypes.
3406
3407         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3408         needed since Python bindings use GLib bindings.
3409
3410         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3411         Add --prefix argument.
3412
3413         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3414         unneeded --ignore-unsupported arg.
3415         
3416         * test/glib/test-service-glib.c: 
3417         * test/glib/test-service-glib.xml:
3418         * test/glib/test-dbus-glib.c: Add many more tests.
3419
3420 2005-06-06  David Zeuthen  <davidz@redhat.com>
3421
3422         * doc/TODO: Add item about need to remove deprecated functions.
3423
3424         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3425
3426         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3427         to repair the ABI which was broken with the last commit.
3428
3429 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3430
3431         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3432         (dbus_connection_disconnect): renamed to dbus_connection_close 
3433         for API symmetry with dbus_connection_open
3434         (_dbus_connection_open_internal): 
3435         s/dbus_connection_disconnect/dbus_connection_close
3436
3437         * dbus/dbus-bus.c (dbus_bus_get):
3438         s/dbus_connection_disconnect/dbus_connection_close
3439
3440         * bus/connection.c (bus_connections_unref, 
3441         bus_connections_setup_connection, bus_connections_expire_incomplete):
3442         s/dbus_connection_disconnect/dbus_connection_close
3443
3444         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3445         kill_client_connection_unchecked, check_hello_connection):
3446         s/dbus_connection_disconnect/dbus_connection_close
3447
3448         * bus/bus.c (new_connection_callback):
3449         s/dbus_connection_disconnect/dbus_connection_close
3450
3451         * tools/dbus-send.c (main):
3452         s/dbus_connection_disconnect/dbus_connection_close
3453
3454         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3455         s/dbus_connection_disconnect/dbus_connection_close
3456         
3457         * test/test-service.c (path_message_func, filter_func):
3458         s/dbus_connection_disconnect/dbus_connection_close
3459         
3460         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3461         
3462 2005-05-25  Colin Walters  <walters@verbum.org>
3463
3464         * dbus/dbus-protocol.h: Move various bus service #defines such
3465           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3466           dbus/dbus-shared.h.
3467         * dbus/dbus-shared.h: Various defines moved here.
3468         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3469
3470 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3471
3472         * python/__init__.py: Python bindings deserve a minor version
3473         update.  Upped to (0, 40, 2)
3474
3475 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3476
3477         * python/decorators.py: add explicitly_pass_message decorator
3478         for passing in the dbus message as keyword for edge case signal
3479         handling
3480
3481         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3482         to conform with what dbus expects for match rules
3483         (SignalMatchRule.execute): add the dbus message as a keyword
3484         if the signal handler has requested it
3485
3486         * python/examples/example/signal-recipient.py: added some more
3487         examples on how to hook up to signals
3488
3489 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3490
3491         * python/decorators.py: import dbus_bindings
3492
3493         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3494         SignalMatchNode): new classes that implement wildcard signal
3495         callback matching using a tree lookup. Heavily modified from a
3496         patch sent by Celso Pinto (fd.o bug #3241)
3497
3498         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3499         use new match classes to handle signals.
3500
3501 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3502         
3503         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3504
3505 2005-05-18  Havoc Pennington  <hp@redhat.com>
3506
3507         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3508         gettext. Not really worth requiring yet perhaps, but any
3509         production quality 1.0 would require it so we should go ahead and
3510         get things set up. We do have a couple token calls to
3511         bindtextdomain in the code already.
3512
3513 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3514
3515         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3516         when using recursive g_main_loops
3517
3518         * python/_dbus.py (class Bus): add the ProxyObjectClass
3519         alias for ProxyObject to make it easier for the Twisted 
3520         networking framework to integrate dbus.
3521
3522         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3523         alias for ProxyMethod to make it easier for the Twisted 
3524         networking framework to integrate dbus. 
3525
3526 2005-05-11  Ross Burton  <ross@openedhand.com>
3527
3528         * glib/dbus-glib-tool.c: Add --prefix argument.
3529         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3530         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3531         Add prefix argument.
3532         (generate_glue): Pass prefix argument down.
3533         (dbus_binding_tool_output_glib_server): Pass prefix to
3534         glib-genmarshal.
3535         
3536 2005-05-11  Colin Walters  <walters@verbum.org>
3537
3538         * tools/dbus-send.c (append_array): New function.
3539         (append_arg): Broken out from main.
3540         (main): Add cheesy hack to send arrays and variants.
3541         (usage): Update.
3542         * tools/dbus-print-message.c (print_iter): Broken out
3543         from main.
3544
3545 2005-05-11  Colin Walters  <walters@verbum.org>
3546
3547         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3548         New function, returns signature string for signature iter.
3549         * dbus/dbus-signature.h: Prototype it.
3550         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3551         New function, returns signature string for message iter.
3552         (dbus_message_iter_get_array_len): New function, returns
3553         length of array.
3554         (dbus_message_iter_get_fixed_array): Fix assertion; this
3555         function should be used when the iter is pointing to the
3556         contents of an array
3557         * dbus/dbus-message.h: Prototypes.
3558         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3559         New function; returns length of an array.
3560         * dbus/dbus-marshal-recursive.h: Prototype it.
3561         
3562 2005-05-11  Colin Walters  <walters@verbum.org>
3563
3564         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3565         compilation error.
3566         
3567 2005-05-08  Havoc Pennington  <hp@redhat.com>
3568
3569         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3570         daemon's pid, not the parent's pid, to the file descriptor.
3571         Reported by Taj Morton.
3572
3573 2005-05-05  Havoc Pennington  <hp@redhat.com>
3574
3575         * configure.in (LT_*): add notes on how the libtool versioning
3576         works to save thinking. Increment soname to indicate protocol
3577         breakage (though really the library interface hasn't changed I
3578         guess)
3579
3580         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3581         verify the GUID received from server matches what we were
3582         expecting, if we had an expectation
3583
3584         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3585         (_dbus_auth_get_guid_from_server): new function
3586         (send_begin): parse the OK args
3587
3588         * doc/dbus-specification.xml: add GUID to the auth protocol
3589
3590 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3591
3592         * Fix my name in previous changelog ;)
3593
3594         * python/proxies.py (ProxyObject.__getattr__): add further patch
3595         from Anthony Baxter to throw an AttributeError when python 
3596         __special__ functions are called instead of marshling them over 
3597         the bus (Bug#1685 comment 3).
3598
3599 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3600
3601         * python/Makefile.am: changed to use pyexecdir for the binding
3602         shared libraries (Bug#2494)
3603
3604         * python/exceptions.py: bring exceptions over from the bindings
3605         so they can be used in applications (Bug#2036)
3606         Make all exceptions derive from DBusException
3607
3608         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3609         of classes so that print obj doesn't throw an exception (Bug #1685)
3610
3611 2005-05-03  Ross Burton  <ross@openedhand.com>
3612
3613         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3614         Return if we get an error during registration.  Set up a
3615         weak reference on object to unregister if object is destroyed.
3616         (unregister_gobject): New function.
3617         
3618 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3619
3620         * python/dbus_bindings.pyx.in: 
3621         - added new type classes for hinting to the marashaler what type 
3622         to send over the wire
3623         - added int16 and uint16 marshalers
3624         - Fixed a bug in the type constants that caused int32 to go out
3625         as uint16 over the wire
3626         * python/dbus.py: split up into different files and renamed _dbus.py
3627         * python/__init__.py, python/_util.py, python/decorators.py, 
3628         python/exceptions.py, python/proxies.py, python/services.py,
3629         python/types.py: new files split off from dbus.py
3630         * python/Makefile.am: Add new files, remove dbus.py and 
3631         install all python files to <python module dir>/dbus
3632         * python/examples/*: Added #!/usr/bin/env python to the top of
3633         every example.  Patch provided by Tatavarty Kalyan
3634
3635 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3636
3637         * NEWS: Update to 0.33
3638
3639 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3640
3641         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3642         method for doing async calls
3643         (_pending_call_notification): New C function for handling pendning call
3644         callbacks
3645         (set_notify): New method for setting pending call notification
3646         
3647         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3648         Async capabilities added to remote method calls
3649         (Sender): class removed
3650         (RemoteService): class removed
3651         (ObjectTree): class removed for now
3652         (RemoteObject): Renamed to ProxyObject
3653         (RemoteMethod): Renamed to ProxyMethod
3654         (method): Decorator added for decorating python methods as dbus methods
3655         (signal): Decorator added for decorating python methods as signal emitters
3656         (ObjectType): Metaclass added for generating introspection data and the
3657         method callback vtable
3658         (Interface): Wrapper class added to wrap objects in a dbus interface
3659         (Object): Uses ObjectType as its metaclass and exports Introspect
3660         of the org.freedesktop.DBus.Introspectable interface
3661         (ValidationException, UnknownMethodException): new exceptions
3662
3663         * python/examples/*: Modified to fit with the new bindings
3664
3665 2005-04-23  Havoc Pennington  <hp@redhat.com>
3666
3667         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3668         reported by Tony Houghton
3669
3670         * test/test-service.c (main): test
3671         dbus_connection_get_object_path_data()
3672
3673         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3674         the exact_match
3675         (_dbus_object_tree_get_user_data_unlocked): new function used by
3676         dbus_connection_get_object_path_data()
3677         (do_register): add assertion test for get_user_data_unlocked
3678         (object_tree_test_iteration): more tests
3679
3680         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3681         new function from Dan Reed to let you get the user data from 
3682         dbus_connection_register_object_path()
3683
3684 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3685
3686         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3687         in numerous places that did not account for the NULL terminator
3688         (signature_from_seed): changed the manual string copy loop to 
3689         just use strcpy instead
3690         make check should now pass
3691
3692 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3693
3694         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3695         so that it allows messages that are not signals to pass in 
3696         NULL as the interface.
3697
3698 2005-04-18  David Zeuthen  <davidz@redhat.com>
3699
3700         * glib/dbus-gmain.c (io_handler_destroy_source): 
3701         (timeout_handler_destroy_source, connection_setup_free): 
3702         Also unref the source to avoid memory leaks.
3703
3704 2005-04-13  David Zeuthen  <davidz@redhat.com>
3705
3706         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3707         more reasonable, yet still totally arbitrary, value :-). 
3708
3709 2005-04-13  David Zeuthen  <davidz@redhat.com>
3710
3711         * doc/TODO: Added an "important for 1.0" item about selinux
3712         allow/deny messages
3713
3714 2005-04-13  David Zeuthen  <davidz@redhat.com>
3715
3716         * bus/selinux.c: Add c-file-style to top of file
3717         (log_audit_callback): Don't free the data here anymore
3718         (bus_selinux_check): Don't take spid and tpid since appending
3719         that to auxdata may OOM.
3720         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3721         to the caller if we are OOM by taking an error object.
3722         (bus_selinux_allows_send): -do-
3723
3724         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3725         and bus_selinux_allows_send
3726
3727         * bus/bus.c (bus_context_check_security_policy): Pass error and
3728         pass on OOM thrown by bus_selinux_allows_send()
3729
3730         * bus/services.c (bus_registry_acquire_service): Pass error and
3731         pass on OOM thrown by bus_selinux_allows_acquire_service()
3732
3733 2005-04-13  Havoc Pennington  <hp@redhat.com>
3734
3735         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3736         message at a time to avoid monopolizing the main loop, bug 
3737         #2953 from Benjamin Otte
3738
3739 2005-04-09  Havoc Pennington  <hp@redhat.com>
3740
3741         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3742         possible overlap, fix from Daniel Reed
3743         (fixup_alignment): fix signedness warnings
3744         (_dbus_string_append_unichar): ditto
3745
3746 2005-04-09  Havoc Pennington  <hp@redhat.com>
3747
3748         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3749
3750         * glib/dbus-glib-tool.c (main): fix warning
3751
3752         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3753
3754         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3755         add a new function that can be used in simple applications that
3756         don't have a main loop and are willing to block
3757
3758 2005-04-05  David Zeuthen  <davidz@redhat.com>
3759
3760         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3761
3762         * glib/dbus-gmain.c:
3763         (io_handler_destroy_source): Remove from list of IO handlers
3764         of the ConnectionSetup object
3765         (timeout_handler_destroy_source): -do- for timeout handlers
3766         (io_handler_source_finalized): Don't remove from list since
3767         we now do that in io_handler_destroy_source(). Renamed from
3768         io_handler_source_destroyed
3769         (timeout_handler_source_destroyed): -do- for timeout handlers
3770         (connection_setup_free): It is now safe to iterate over all
3771         IO and timeout handlers as the _destroy_source removes them
3772         from the list synchronously
3773
3774 2005-03-30  Havoc Pennington  <hp@redhat.com>
3775
3776         * configure.in: change check to gtk 2.4
3777
3778         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3779         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3780         to 2.4
3781
3782 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3783
3784         * News: Update 0.32
3785
3786         * HACKING: Fixed realease instructions.  configure.in should be updated to
3787           the next release by the person who made the last release.
3788
3789 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3790
3791         * python/lvalue_cast_post_process.py - removed.  Patch has been
3792           submitted to Pyrex maintainers that fixes gcc4.0 errors
3793
3794         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3795
3796 2005-03-24  Daniel Reed  <n@ml.org>
3797
3798         * tools/Makefile.am: Make print-introspect and
3799         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3800
3801 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3802
3803         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3804
3805         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3806           had in Red Hat packages for a while but for some reason never 
3807           got merged upstream
3808           (_dbus_is_a_number): New checks if a string
3809           can be converted to a number and does the conversion if it can
3810           (_dbus_user_database_lookup): Add check to see if the given username
3811           is a udi.  This allows udi's to be used instead of usernames in the
3812           config file.
3813           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3814           is a gdi.  This allows gdi's to be used instead of groupnames in the
3815           config file.
3816
3817 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3818
3819         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3820           code so that it compiles with gcc4.0
3821
3822         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3823           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3824           results back to dbus_binding.c
3825
3826 2005-03-20  Colin Walters  <walters@verbum.org>
3827
3828         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3829
3830         * configure.in: Require GTK+ 2.6.
3831         
3832 2005-03-20  Colin Walters  <walters@verbum.org>
3833
3834         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3835
3836 2005-03-17  Tom Parker  <palfrey@tevp.net>
3837
3838         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3839         print DBUS_UID_UNSET; instead print passed username.  Also
3840         be sure to actually use gid looked up in cache.
3841         
3842         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3843         for DBUS_GID_UNSET and groupname.
3844
3845 2005-03-17  Colin Walters  <walters@verbum.org>
3846
3847         * bus/print-introspect.c: Move to tools/.
3848         * bus/run-with-tmp-session-bus.sh: Ditto.
3849         
3850         * glib/Makefile.am (dbus-glib-bindings.h): Move
3851         generation to tools/Makefile.am.
3852
3853         * test/glib/run-test.sh: Update to handle move
3854         of run-with-tmp-session-bus.sh.
3855
3856         * test/glib/test-service-glib.c: Update to handle
3857         move of dbus-glib-bindings.h.
3858
3859         * tools/print-introspect.c: Moved here
3860         from bus/, and ported to GLib bindings.
3861
3862         * tools/run-with-tmp-session-bus.sh: Moved here
3863         from bus/.
3864
3865         * tools/Makefile.am: Generate dbus-glib-bindings.h
3866         and dbus-bus-introspect.xml here.
3867
3868         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3869         Update.
3870
3871 2005-03-17  Colin Walters  <walters@verbum.org>
3872
3873         * bus/driver.c (write_args_for_direction): Use
3874         _dbus_string_get_const_data to retrieve string;
3875         _dbus_string_get_const_data_len doesn't actually return
3876         a NULL-terminated substring.
3877
3878         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3879         (main): Change to use org_freedesktop_DBus_request_name
3880         instead of using g_proxy_begin_call/end_call.
3881
3882 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3883
3884         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3885         generating the finalizer.  Fixes from Ben Maurer.
3886
3887 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3888
3889         * mono/BusDriver.cs: Update method names: ListServices
3890         becomes ListNames; GetOwner becomes GetNameOwner.
3891
3892         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3893         onto the eval stack when removing the delegate.
3894
3895 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3896
3897         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3898         LT_CURRENT.  Set it to the autoconf variable.
3899                                                                                 
3900         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3901         classes that disconnects the signal handler delegate from the
3902         service object.  Fixes a big leak of proxy objects on the
3903         client side of things.  Patch from Ben Maurer
3904         <bmaurer@ximian.com>
3905
3906 2005-03-12  Colin Walters  <walters@verbum.org>
3907
3908         * bus/driver.c (write_args_for_direction): New function,
3909         parses a type signature into arguments and outputs to
3910         XML.
3911         (bus_driver_handle_introspect): Use it instead of
3912         hardcoding XML for certain signatures.
3913         
3914         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3915         dependency on dbus-daemon.
3916
3917         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3918         argument, pass it to dbus_binding_tool_output_glib_client.
3919
3920         * glib/dbus-binding-tool-glib.c
3921         (generate_client_glue): Protect against multiple inclusion.
3922         (dbus_binding_tool_output_glib_client): Add
3923         G_BEGIN_DECLS/G_END_DECLS.
3924
3925         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3926         Change to just take iface prefix directly.
3927         (write_formal_parameters): Clarify error message.
3928         (check_supported_parameters): New function; checks to see type
3929         signatures of method parameters are supported.
3930         (generate_client_glue): Handle ignore_unsupported flag.
3931         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3932         parameter.
3933
3934         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3935         --ignore-unsupported by default until glib bindings
3936         support arrays.
3937
3938 2005-03-11  Colin Walters  <walters@verbum.org>
3939
3940         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3941         install it.
3942
3943         * bus/print-introspect.c: New file; prints introspection
3944         data for a given name and object path.
3945
3946         * bus/run-with-tmp-session-bus.sh: New file, refactored
3947         from test/glib/run-test.sh.  Creates a temporary session
3948         bus and runs another program.
3949
3950         * test/glib/run-test.sh: Refactor to invoke
3951         run-with-tmp-session-bus.sh.
3952
3953         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3954         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
3955         macros instead of hardcoding.
3956
3957         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3958
3959 2005-03-11  Joe Shaw  <joeshaw@novell.com>
3960
3961         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3962         this unref; it doesn't match up evenly in some codepaths.
3963         (_dbus_connection_block_pending_call): Unref at every exitpoint;
3964         this evenly matches with the ref near the top of this function.
3965
3966 2005-03-09  Joe Shaw  <joeshaw@novell.com>
3967
3968         * dbus/dbus-object-tree.c
3969         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3970         and we try to unregister a path that's not registered, still go
3971         through the process of unlocking and don't just return.
3972
3973 2005-03-09  Colin Walters  <walters@verbum.org>
3974
3975         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3976         to this are generated for client-side wrappers.  Invokes a
3977         D-BUS method and returns reply values.  
3978
3979         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3980         function; writes signature string for argument direction.
3981         (write_args_for_direction): Change to pass input values directly
3982         instead of via address, and fix indentation.
3983         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
3984         make generated wrappers inlineable.
3985
3986         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3987         note about using dbus_type_is_fixed.
3988
3989         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3990         dbus/dbus-signature.c as dbus_type_is_fixed.
3991
3992         All callers updated.
3993
3994         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3995         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3996
3997         * dbus/dbus-signature.h: Prototype.
3998
3999         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4000         error printf code.
4001
4002         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4003         appropriate instead of just freeing it.
4004         (main): Free returned strings using g_free.
4005
4006         * test/glib/Makefile.am (test-service-glib-glue.h)
4007         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4008
4009         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4010         simply maps a simple D-BUS type to GType.
4011         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4012         GType.
4013         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4014         initialize the value with it.
4015         (dbus_gvalue_binding_type_from_type): Unused, delete.
4016         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4017         various types instead of unmarshalling to value data directly.
4018         Remove can_convert boolean.
4019         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4020         returning directly instead of using can_convert boolean.
4021         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4022         Stores a GValue in a pointer to a value of its corresponding C
4023         type.
4024
4025         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4026         add dbus_gvalue_store.
4027
4028 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4029
4030         Fix a bunch of lifecycle and memory management problems
4031         in the mono bindings.
4032
4033         * mono/Arguments.cs (Arguments): Implement IDisposable
4034
4035         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4036         strictly a static class.
4037
4038         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4039         delegates into this file.
4040         (Connection): Implement IDisposable.
4041         (Dispose): Disconnect the connection and set the raw connection
4042         pointer to IntPtr.Zero.
4043         (~Connection): Call Dispose().
4044         (RegisterObjectPath): Added.  Manages the registration of object
4045         paths so we can cleanly disconnect them at dispose/finalize time.
4046         (UnregisterObjectPath): Ditto.
4047         (set_RawConnection): Unregister all of the object paths when
4048         changing the underlying DBusConnection.  Add them back onto the
4049         new connection, if any.
4050
4051         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4052         more unmanaged resources anymore, so it's not necessary.  Move all
4053         the DBusObjectPathVTable stuff out of here.
4054         (Handler): Save references to our delegates so that they don't get
4055         finalized.  Call Connection.RegisterObjectPath() instead of
4056         dbus_connection_register_object_path() directly.
4057         (Message_Called): Dispose the message after we're finished with
4058         it.
4059
4060         * mono/Message.cs (Message): Implement IDisposable.
4061         (Dispose): Dispose the Arguments, and set the RawMessage to
4062         IntPtr.Zero.
4063         (SendWithReplyAndBlock): We own the ref to the reply that comes
4064         back from dbus_connection_send_with_reply_and_block() so add a
4065         comment about that and unref it after we've constructed a managed
4066         MethodReturn class around it.  Fixes a big, big leak.
4067
4068         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4069         method.
4070         (BuildSignalHandler): After we've sent the Signal message, dispose
4071         of it.
4072         (BuildMethod): Dispose of the method call and reply messages after
4073         we've sent the message and extracted the data we want from the
4074         reply.
4075
4076         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4077         anymore.
4078         (Service_FilterCalled): Dispose of the message after we're
4079         finished with it.
4080
4081 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4082
4083         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4084         After we attach our pending call to the connection, unref
4085         it.  Fixes a leak.
4086  
4087         * mono/Connection.cs (set_RawConnection): Disconnect our
4088         filter and match callbacks from the old connection and
4089         reconnect them to the new connection, if any.
4090
4091         * mono/DBusType/Array.cs: "Code" is a static member, so
4092         don't use "this" to refer to it.  Fix for stricter checking
4093         in Mono 1.1.4.
4094  
4095         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4096         object path that we pass into unmanaged code.
4097  
4098         * mono/DBusType/String.cs (Append): Don't leak the string
4099         that we pass into unmanged code.
4100
4101 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4102         * NEWS: Update for 0.31
4103
4104         * configure.in: Release 0.31
4105         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4106
4107         * qt/Makefile.am: fixed build
4108
4109         * dbus/Makefile.am: soname bump for libdbus
4110
4111         * glib/Makefile.am: soname bump for libdbus-glib
4112
4113 2005-03-05  Havoc Pennington  <hp@redhat.com>
4114
4115         * dbus/dbus-sysdeps.c:
4116         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4117         value
4118         (_dbus_generate_random_bytes_buffer): fix return value
4119
4120         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4121         checks actually work, from Tom Parker <fdo@tevp.net>
4122
4123 2005-03-01  Colin Walters  <walters@verbum.org>
4124
4125         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4126         functions copied from dbus-glib-tool.c.
4127         (main): Convert lots of error code to use them.
4128         Also add some testing for introspection bits.
4129
4130 2005-03-01  Colin Walters  <walters@verbum.org>
4131         
4132         * doc/TODO: Remove introspection signature TODO.
4133
4134 2005-02-27  Colin Walters  <walters@verbum.org>
4135
4136         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4137         Change return value to const char * instead of int so we can do
4138         full signatures.
4139         (struct PropertyInfo, struct ArgInfo): Store char *.
4140         (property_info_new, arg_info_new): Update parameters, strdup.
4141         (property_info_unref, arg_info_unref): Free.
4142
4143         * glib/dbus-gidl.h: Update prototypes.
4144
4145         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4146         (validate_signature): New function, just validates signature and
4147         sets GError.
4148         (parse_property, parse_arg): Invoke validate_signature.  Store
4149         signature instead of just type code.
4150
4151         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4152         function to return a primary type for a signature, dropping
4153         information about types in container types.
4154         (dbus_gvalue_genmarshal_name_from_type)
4155         (dbus_gvalue_binding_type_from_type)
4156         (dbus_gvalue_ctype_from_type): Update to take full signature
4157          instead of type code.
4158         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4159
4160         * glib/dbus-gvalue.h: Update prototypes for above.
4161
4162         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4163         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4164         (introspect_properties, introspect_signals, write_interface):
4165         Update to handle signatures, and remove usage of
4166         _dbus_gutils_type_to_string.
4167         (handle_introspect): Print out type codes instead of e.g. "string"
4168         in hardcoded introspection XML; also use x_AS_STRING constants
4169         instead of hardcoding in string.
4170
4171         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4172         to string.  Remove usage of _dbus_gutils_type_to_string.
4173
4174         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4175
4176         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4177         deletion.
4178         
4179         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4180         (compute_marshaller_name, generate_glue): Handle signature change
4181         to string.
4182         (write_formal_parameters, write_args_for_direction): Ditto, and
4183         remove FIXME.
4184
4185         * tools/dbus-tree-view.c (type_to_string): Delete.
4186         (info_set_func_text): Update to print full signatures.
4187
4188         * test/glib/test-service-glib.xml: Change types to new
4189         introspection format.
4190
4191 2005-02-26  Havoc Pennington  <hp@redhat.com>
4192
4193         * doc/TODO: remove the "guid" item
4194
4195         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4196         (with_bus_thread_func): use open_private
4197
4198         * dbus/dbus-connection.c (dbus_connection_open_private): new
4199         function that works like the old dbus_connection_open()
4200         (dbus_connection_open): now returns an existing connection if
4201         possible
4202
4203         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4204         through the GUID to the transport
4205
4206         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4207         GUID in hex-encoded form.
4208
4209         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4210         pass GUID argument in to the transport
4211
4212         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4213         guid argument
4214
4215         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4216
4217         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4218
4219 2005-02-25  Havoc Pennington  <hp@redhat.com>
4220
4221         * doc/dbus-specification.xml: document the GUID thing
4222
4223         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4224         globally unique ID for the server, and put a "guid=hexencoded"
4225         field in the address
4226
4227         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4228
4229         * dbus/dbus-message.c: ditto
4230
4231         * dbus/dbus-dataslot.c: ditto
4232
4233         * dbus/dbus-list.c: ditto
4234
4235         * dbus/dbus-internals.h: wait, just include
4236         dbus-threads-internal.h here
4237         
4238         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4239         use in main library
4240
4241         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4242
4243 2005-02-24  Colin Walters  <walters@verbum.org>
4244
4245         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4246
4247 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4248
4249         * glib/Makefile.am: added dbus-gobject.h to sources list
4250         so distcheck doesn't fail
4251         
4252 2005-02-24  Havoc Pennington  <hp@redhat.com>
4253
4254         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4255         you must disconnect before unref, since locking and other things
4256         are screwed up otherwise. Fix assorted other locking stuff.
4257
4258         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4259         fix compilation
4260
4261         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4262         into a private header and don't export from the library
4263
4264         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4265
4266 2005-02-24  Colin Walters  <walters@verbum.org>
4267         
4268         * dbus/dbus-signature.c: New file; implements various functions
4269         related to type signatures.  Includes an interator for parsing,
4270         validation functions.
4271         (dbus_type_is_basic): Moved here from
4272         dbus-marshal-basic.c:_dbus_type_is_basic.
4273         (dbus_type_is_container): Moved here from
4274         dbus-marshal-basic.c:_dbus_type_is_container.
4275
4276         All callers of _dbus_type_is_container and _dbus_type_is_basic
4277         updated, and include dbus-signature.h.
4278
4279         * dbus/dbus-signature.h: New file; prototypes for the above.
4280
4281         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4282         dbus-signature.h.
4283
4284         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4285         function factored out of _dbus_first_type_in_signature.
4286         (_dbus_first_type_in_signature_c_str): New function; returns first
4287         type code for a type signature character.
4288
4289         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4290         handle function moves.
4291
4292         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4293
4294         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4295         function; skips to next complete type in type signature.
4296         Implemented using previous skip_one_complete_type.  Now
4297         skip_one_complete_type just delegates to
4298         _dbus_type_signature_next.
4299
4300         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4301         to dbus-signature.c
4302         (_dbus_type_is_container): Ditto.
4303
4304         * doc/dbus-specification.xml: Update introspection sample to
4305         use real type signatures.
4306
4307         * dbus/dbus-test.h: Prototype signature test.
4308
4309         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4310         signature tests.
4311
4312         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4313
4314 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4315
4316         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4317         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4318
4319 2005-02-21  Colin Walters  <walters@verbum.org>
4320
4321         * dbus/dbus-test-main.c (main): Take optional specific test
4322         argument.
4323
4324         * dbus/dbus-test.c (run_test): New function, runs a test function
4325         with no data directory.
4326         (run_data_test): Like above, but takes data directory.
4327         (dbus_internal_do_not_use_run_tests): Take
4328         specific test argument.  Replace lots of cut n' paste code
4329         with run_test and run_data_test.
4330
4331         * dbus/dbus-test.h: Update prototype for
4332         dbus_internal_do_not_use_run_tests.
4333
4334 2005-02-20  Havoc Pennington  <hp@redhat.com>
4335
4336         Fix bugs reported by Daniel P. Berrange
4337         
4338         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4339         (protected_change_watch): new function
4340         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4341         (_dbus_server_add_watch): change to work like the
4342         dbus-connection.c equivalents; like those, probably kind of
4343         busted, but should at least mostly work for now
4344         (dbus_server_disconnect): drop the lock if we were already
4345         disconnected, patch from Daniel P. Berrange
4346
4347         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4348         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4349         same stuff
4350
4351         * doc/TODO: todo about unscrewing this mess
4352
4353 2005-02-19  Colin Walters  <walters@verbum.org>
4354
4355         * glib/dbus-binding-tool-glib.c
4356         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4357
4358         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4359         as errno.h and sys/stat.h.
4360         (lose): New function, prints error with
4361         newline and exits.
4362         (lose_gerror): Similar, but takes GError for message.
4363         (main): Add --output argument to specify output file to write to,
4364         instead of always printing to stdout.  In this mode, determine
4365         timestamps on source files to see whether any are newer than the
4366         target file.  If not, exit.  Also convert a number of error
4367         messages to use lose (since it's shorter), and switch to using
4368         g_io_channel_shutdown.
4369
4370 2005-02-19  Havoc Pennington  <hp@redhat.com>
4371
4372         * glib/dbus-gobject.c
4373         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4374
4375         * glib/dbus-glib.c: fix doxygen warnings
4376
4377         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4378         is found on an <arg>
4379
4380 2005-02-17  Colin Walters  <walters@verbum.org>
4381
4382         * glib/dbus-gobject.h: Don't export
4383         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4384         
4385         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4386         (invoke_object_method): Handle it.
4387
4388         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4389         Handle rename.
4390         
4391 2005-02-17  Colin Walters  <walters@verbum.org>
4392
4393         * bus/.cvsignore, doc/.cvsignore
4394         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4395         Update.
4396
4397 2005-02-17  Colin Walters  <walters@verbum.org>
4398         
4399         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4400         Rename to DBUS_SERVICE_DBUS.
4401         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4402         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4403         Change the value from "org.freedesktop.Local"
4404         to "org.freedesktop.DBus.Local".
4405         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4406         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4407         DBUS_INTERFACE_INTROSPECTABLE.
4408         Change the value from "org.freedesktop.Introspectable"
4409         to "org.freedesktop.DBus.Introspectable".
4410         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4411         DBUS_INTERFACE_PROPERTIES.
4412         Change the value from "org.freedesktop.Properties"
4413         to "org.freedesktop.DBus.Properties".
4414         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4415         DBUS_INTERFACE_PEER.
4416         Change the value from "org.freedesktop.Peer"
4417         to "org.freedesktop.DBus.Peer".
4418         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4419         DBUS_INTERFACE_LOCAL.
4420         Change the value from "org.freedesktop.Local"
4421         to "org.freedesktop.DBus.Local".
4422
4423         All other users of those constants have been changed.
4424
4425         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4426
4427         * glib/dbus-gobject.c (handle_introspect): Use constants.
4428
4429         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4430
4431 2005-02-17  Colin Walters  <walters@verbum.org>
4432
4433         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4434         (parse_node, parse_interface, parse_method, parse_signal)
4435         (parse_property, parse_annotation): Lose if we're currently in an
4436         annotation.
4437         (parse_annotation): New function.
4438         (parser_start_element, parser_end_element): Handle annotation.
4439         (parse_method, parse_interface): Remove support for c_name attribute,
4440         switch to annotations.
4441
4442         * glib/dbus-gidl.h (interface_info_get_binding_names)
4443         (method_info_get_binding_names)
4444         (interface_info_get_binding_name, method_info_get_binding_name)
4445         (interface_info_set_binding_name, method_info_set_binding_name):
4446         Remove.
4447         (interface_info_get_annotations, method_info_get_annotations)
4448         (interface_info_get_annotation, method_info_get_annotation)
4449         (interface_info_add_annotation, method_info_add_annotation):
4450         Prototype.
4451
4452         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4453         for "bindings".
4454         (struct MethodInfo): Ditto.
4455         Straightfoward conversion of binding methods into annotation methods
4456         as prototyped.
4457
4458         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4459
4460         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4461
4462         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4463         Use new annotation API.
4464
4465         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4466         annotation element.
4467         
4468         * doc/dbus-specification.xml: Discuss introspection annotations,
4469         include list of well-known annotations.
4470
4471         * test/glib/test-service-glib.xml: Make validate against new DTD.
4472
4473 2005-02-17  Colin Walters  <walters@verbum.org>
4474
4475         This patch is based on initial work from
4476         Paul Kuliniewicz <kuliniew@purdue.edu>.
4477
4478         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4479         initialization of GValue from dbus type to here.
4480         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4481         for the "glib-genmarshal" program from a DBus type.
4482         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4483         into the C name for it we use in the glib bindings.
4484         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4485         glib C type (not GValue).
4486         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4487
4488         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4489         from dbus-gobject.c.
4490
4491         * glib/dbus-gutils.h: Prototype it.
4492
4493         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4494         (marshal_dbus_message_to_g_marshaller): Use new shared function
4495         dbus_glib_marshal_dbus_message_to_gvalue_array.
4496
4497         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4498         Will be changed once we have annotations.
4499
4500         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4501         GStaticRWLock.  Callers updated.
4502         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4503         (string_table_next): New function for iterating over zero-terminated
4504         string value array.
4505         (string_table_lookup): New function; retrieves specific entry in
4506         array.
4507         (get_method_data): New function; look up method data in object data chunk.
4508         (object_error_domain_prefix_from_object_info)
4509         (object_error_code_from_object_info): New functions, but not implemented yet.
4510         (method_interface_from_object_info): New function; retrieve interface name.
4511         (method_name_from_object_info): New function; retrieve method name.
4512         (method_arg_info_from_object_info): New function; retrieve argument data.
4513         (arg_iterate): New function; iterates over serialized argument data.
4514         (method_dir_signature_from_object_info): New function; returns a
4515         GString holding type signature for arguments for just one
4516         direction (input or output).
4517         (method_input_signature_from_object_info)
4518         (method_output_signature_from_object_info): New functions.
4519         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4520         converts dbus message arguments into a GValue array.  Used for both
4521         signal handling and method invocation.
4522         (struct DBusGlibWriteIterfaceData): New utility structure.
4523         (write_interface): New function; generate introspection XML for
4524         an interface.
4525         (introspect_interfaces): New function; gathers all interface->methods,
4526         generates introspection XML for them.
4527         (handle_introspect): Invoke introspect_interfaces.
4528         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4529         (lookup_object_and_method): New function; examines an incoming message
4530         and attempts to match it up (via interface, method name, and argument
4531         signature) with a known object and method.
4532         (gerror_domaincode_to_dbus_error_name): New function; converts a
4533         GError domain and code into a DBus error name.  Needs GError data
4534         added to object introspection to work well.
4535         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4536         GError.
4537         (invoke_object_method): New function to invoke an object method
4538         looked up via lookup_object_and_method.  Parses the incoming
4539         message, turns it into a GValue array, then invokes the marshaller
4540         specified in the DBusGMethodInfo.  Creates a new message with
4541         either return values or error message as appropriate.
4542         (gobject_message_function): Invoke lookup_object_and_method and
4543         invoke_object_method.
4544
4545         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4546         (enum DBusBindingOutputMode): New enum for binding output modes.
4547         (pretty_print): Print binding names.
4548         (dbus_binding_tool_error_quark): GError bits.
4549         (version): Fix typo.
4550         (main): Create GIOChannel for output.  Parse new --mode argument,
4551         possible values are "pretty-print", "glib-server", "glib-client".
4552         Use mode to invoke appropriate function.
4553         
4554         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4555
4556         * glib/dbus-glib-tool.h: New header, just includes GError bits
4557         for now.
4558
4559         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4560         maps binding style to name.
4561         (struct MethodInfo): Ditto.
4562         (get_hash_keys, get_hash_key): Utility function, returns keys for
4563         a GHashTable.
4564         (interface_info_new, method_info_new): Initialize bindings.
4565         (interface_info_unref, method_info_unref): Destroy bindings.
4566         (method_info_get_binding_names, method_info_get_binding_name)
4567         (interface_info_get_binding_names, interface_info_get_binding_name):
4568         Functions for retrieving binding names.
4569         (method_info_set_binding_name, interface_info_set_binding_name):
4570         Functions for setting binding names.
4571
4572         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4573         for glib binding generation.
4574
4575         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4576         and client-side glib glue generation.
4577
4578         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4579         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4580         dbus-glib-tool.h.
4581
4582         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4583         of using GClosureMarshal directly.
4584         (struct DBusGObjectInfo): Add n_infos member.
4585
4586         * test/glib/test-service-glib.xml: New file; contains introspection data
4587         for MyTestObject used in test-service-glib.c.
4588
4589         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4590         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4591         (my_object_uppercase, my_object_many_args): New test methods.
4592         (main): Use dbus_g_object_class_install_info to include generated object
4593         info.
4594
4595         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4596         as well as client-side bindings.
4597
4598         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4599         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4600         using both the dbus_gproxy stuff directly as well as the generated bindings.
4601
4602 2005-02-15  Havoc Pennington  <hp@redhat.com>
4603
4604         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4605         complete a pending call, don't run filters first.
4606
4607         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4608         dbus_pending_call_steal_reply
4609
4610         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4611         _dbus_connection_block_pending_call
4612         (dbus_pending_call_get_reply): change to steal_reply and return a
4613         ref
4614
4615         * dbus/dbus-connection.c
4616         (dbus_connection_send_with_reply_and_block): port to work in terms
4617         of DBusPendingCall
4618         (_dbus_connection_block_pending_call): replace block_for_reply
4619         with this
4620
4621 2005-02-14  Havoc Pennington  <hp@redhat.com>
4622
4623         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4624         properly handle looking up group information by name; fix 
4625         from j@bootlab.org
4626
4627 2005-02-13  Havoc Pennington  <hp@redhat.com>
4628
4629         * dbus/dbus-connection.c (dbus_connection_return_message) 
4630         (dbus_connection_borrow_message): hold dispatch lock while message
4631         is outstanding
4632         (_dbus_connection_block_for_reply): hold dispatch lock while we
4633         block for the reply, so nobody steals our reply
4634         (dbus_connection_pop_message): hold the dispatch lock while we
4635         pluck the message
4636
4637 2005-02-13  Havoc Pennington  <hp@redhat.com>
4638
4639         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4640         (_dbus_connection_release_dispatch)
4641         (_dbus_connection_acquire_io_path)
4642         (_dbus_connection_release_io_path): make the mutex and condvar
4643         control access to the "acquired" flag. Drop the connection lock
4644         while waiting on the condvar. Hopefully these are baby steps in
4645         roughly the right direction.
4646
4647 2005-02-13  Havoc Pennington  <hp@redhat.com>
4648
4649         * dbus/dbus-connection.c: use separate mutexes for the condition
4650         variables; this is some kind of baseline for sanity, but the
4651         condition variables still aren't used correctly afaict
4652
4653 2005-02-13  Havoc Pennington  <hp@redhat.com>
4654
4655         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4656         fix a double-unlock
4657
4658         * dbus/dbus-connection.c
4659         (_dbus_connection_detach_pending_call_unlocked): add this
4660
4661         Initial semi-correct pass through to fix thread locking; there are
4662         still some issues with the condition variable paths I'm pretty
4663         sure
4664         
4665         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4666         lock/unlock calls
4667
4668         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4669         rename to add _unlocked
4670         (struct DBusConnection): move "dispatch_acquired" and
4671         "io_path_acquired" to use only one bit each.
4672         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4673         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4674         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4675         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4676         (_dbus_connection_remove_timeout) 
4677         (_dbus_connection_toggle_timeout): drop lock when calling out to
4678         user functions; done in a hacky/bad way.
4679         (_dbus_connection_send_and_unlock): add a missing unlock
4680         (_dbus_connection_block_for_reply): add a missing unlock
4681
4682         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4683         drop lock in a hacky probably unsafe way to call out to user
4684         function
4685
4686 2005-02-12  Havoc Pennington  <hp@redhat.com>
4687
4688         * tools/dbus-tree-view.c (info_set_func_text): display more
4689         details on args
4690
4691         * bus/driver.c (bus_driver_handle_list_services): list the bus
4692         driver
4693
4694         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4695
4696         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4697         (method_info_get_n_args): new function
4698
4699 2005-02-12  Havoc Pennington  <hp@redhat.com>
4700
4701         * bus/driver.c (bus_driver_handle_introspect): add introspection
4702         for bus driver
4703
4704 2005-02-12  Havoc Pennington  <hp@redhat.com>
4705
4706         * bus/driver.c: put the signature of each bus driver method in the
4707         table of handlers and check it on incoming calls; this isn't
4708         really useful, but going to add introspect support in a minute.
4709
4710 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4711
4712         * mono/Connection.cs: The unpredictability of finalizers in mono
4713         prevents us from deterministically disconnecting the filters from
4714         the Service class's finalizer, so move tracking of filters and
4715         matches here.  Add API for that.
4716
4717         * mono/Service.cs: Remove the code, add code which calls the
4718         methods now on the Connection class.
4719
4720 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4721
4722         * python/dbus.py (class Sender): added to support dbus signals better
4723         (Bus::add_signal_receiver): added expand_args parameter which defaults
4724         to True.  When expand args is True the signal handler will pass the 
4725         message arguments as parameters to the signal handler.  If False
4726         revert to previous behavior where the signal handler must get the
4727         argument list from the message.  This is to help port applications
4728         like HAL that have a tendancy to send variable length argument lists.
4729         self._match_rule_to_receivers is now a dict of dicts.
4730         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4731         removing it from a list
4732         (Bus::_signal_func): change signal handlers so that interface,
4733         signal_name, service, path and message are packed into a Sender
4734         object and that is passed to the handler.  If expand_args is True
4735         extract the args list from the message and append it to the parameter
4736         list
4737         
4738         * python/dbus_bindings.pyx.in (class Signature): added to support 
4739         signiature types
4740         (MessageIter::__init__): changed iteration limit to match D-BUS
4741         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4742         STRUCT and VARIENT type support
4743         (MessageIter::python_value_to_dbus_sig): made recursive to support
4744         recursive types
4745         (MessageIter::append*): added Signature, dict, tuple 
4746         support
4747
4748         * python/examples/example-client.py: added examples of getting tuples
4749         and dicts
4750
4751         * python/examples/example-service.py: added examples of sending tuples
4752         and dicts
4753
4754         * python/examples/example-signal-recipient.py: Fixed to handle new
4755         signal callback format
4756
4757 2005-02-10  Havoc Pennington  <hp@redhat.com>
4758
4759         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4760         (call dbus_g_proxy_add_signal)
4761
4762         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4763         escape the hostname
4764         (_dbus_server_new_for_domain_socket): escape the path
4765
4766         * dbus/dbus-address.c (dbus_address_escape_value): new
4767         (dbus_address_unescape_value): new
4768         (dbus_parse_address): unescape values
4769
4770         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4771
4772         * doc/dbus-specification.xml: explain how to escape values in
4773         addresses
4774
4775 2005-02-10  Havoc Pennington  <hp@redhat.com>
4776
4777         * dbus/dbus-message-factory.c (generate_special): modify test to
4778         avoid using a non-basic dict key
4779
4780         * dbus/dbus-marshal-validate-util.c: add test for the below
4781
4782         * doc/dbus-specification.xml: require that dict keys are a basic
4783         type
4784
4785         * dbus/dbus-marshal-validate.c
4786         (_dbus_validate_signature_with_reason): require that dict key is a
4787         basic type
4788
4789 2005-02-10  Havoc Pennington  <hp@redhat.com>
4790
4791         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4792         change to be _and_unlock instead of _unlocked
4793
4794         * dbus/dbus-connection.c
4795         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4796         have no_update so we can find this bug quickly in future
4797
4798 2005-02-10  Havoc Pennington  <hp@redhat.com>
4799
4800         * dbus/dbus-message-util.c (verify_test_message): tests for string
4801         array
4802
4803         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4804         support for arrays of string/signature/path
4805
4806 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4807
4808         * dbus/dbus-connection.c
4809         (_dbus_connection_queue_received_message_link,
4810         _dbus_connection_message_sent): Add the path to
4811         the verbose output.
4812         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4813         _dbus_connection_send_preallocated_unlocked(), updated the
4814         dispatch status, and unlocks.  Fixes a bug where certain
4815         situations (like a broken pipe) could cause a Disconnect message
4816         to not be sent, tricking the bus into thinking a service was still
4817         there when the process had quit.
4818         (_dbus_connection_send_preallocated): Call
4819         _dbus_connection_send_preallocated_and_unlock().
4820         (_dbus_connection_send_and_unlock): Added.  Calls
4821         _dbus_connection_send_preallocated_and_unlock().
4822         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4823         (dbus_connection_send_with_reply): Update the dispatch status and
4824         unlock.
4825
4826         * mono/Service.cs (~Service): Added.  Removes the filter so that
4827         we don't get unmanaged code calling back into a GCed delegate.
4828         (RemoveFilter); Added.
4829
4830 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4831
4832         * dbus/dbus-message.c (dbus_message_iter_open_container):
4833         - Removed check for iterator type being an array because
4834         get_arg_type does not work with writer iterators
4835         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4836
4837 2005-02-07  Havoc Pennington  <hp@redhat.com>
4838
4839         * doc/dbus-specification.xml: some more language cleanups; add
4840         stuff about how to deal with invalid protocol and extension
4841         points; add _ to allowed chars in auth commands; add EXTENSION_
4842         auth command prefix
4843
4844 2005-02-06  Havoc Pennington  <hp@redhat.com>
4845
4846         * s/expected/required/ in a couple places for clarity
4847
4848 2005-02-07  Colin Walters  <walters@verbum.org>
4849
4850         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4851         sender or proposed_recipient.
4852
4853 2005-02-06  Havoc Pennington  <hp@redhat.com>
4854
4855         * dbus/dbus-message-factory.c (generate_special): more tests
4856
4857         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4858         array length that exceeds the maximum
4859
4860 2005-02-05  Havoc Pennington  <hp@redhat.com>
4861
4862         * dbus/dbus-message-factory.c (generate_special): more test cases,
4863         increasing coverage
4864
4865         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4866         reason why a signature was invalid
4867
4868         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4869         skip the length of the string before we look at it in validation
4870
4871         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4872         equal_substring
4873
4874         * dbus/dbus-message.c (_dbus_message_loader_new): default
4875         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4876
4877 2005-02-05  Havoc Pennington  <hp@redhat.com>
4878
4879         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4880         if the signature of a variant was empty
4881         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4882         struct with no element type)
4883
4884         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4885         mangled messages to break things
4886
4887 2005-02-04  Havoc Pennington  <hp@redhat.com>
4888
4889         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4890         g_quark_try_string() so it actually can return 0
4891         (dbus_g_proxy_connect_signal): ditto
4892
4893 2005-02-04  Havoc Pennington  <hp@redhat.com>
4894
4895         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4896         bogus warning
4897         (tristring_from_message): assert cleanly on null path/interface
4898         (should not be possible though I decided later)
4899         (dbus_g_proxy_dispose): move proxy manager unregistration here
4900         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4901         g_return_if_fail() checks
4902
4903 2005-02-04  Havoc Pennington  <hp@redhat.com>
4904
4905         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4906
4907         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4908         (with some minor changes)
4909
4910         * doc/dbus-specification.xml: add deprecated attribute to
4911         introspection format
4912
4913 2005-01-31  Havoc Pennington  <hp@redhat.com>
4914
4915         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4916         think it's sort of right
4917
4918 2005-01-30  Havoc Pennington  <hp@redhat.com>
4919
4920         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4921
4922 2005-01-30  Havoc Pennington  <hp@redhat.com>
4923
4924         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4925
4926         * autogen.sh: change to autotools 1.9
4927
4928         * glib/dbus-gproxy.c: completely change how signals work
4929         (dbus_g_proxy_add_signal): new function to specify signature of a
4930         signal
4931         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4932         and g_warning if the incoming message has the wrong signature.
4933
4934 2005-01-30  Havoc Pennington  <hp@redhat.com>
4935
4936         * tools/dbus-names-model.c (have_names_notify): fix this
4937
4938         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4939         up the string array handling a bit 
4940
4941 2005-01-30  Havoc Pennington  <hp@redhat.com>
4942
4943         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4944         (dbus_g_pending_call_cancel): new function
4945
4946         * dbus/dbus-glib.h: move GType decls for connection/message here;
4947         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4948         here, just kind of rationalizing how we handle all that
4949
4950         * tools/dbus-names-model.c: new file for a tree model listing the
4951         services on a bus
4952
4953         * tools/dbus-tree-view.c (model_new): use proper typing on the
4954         model rows
4955
4956 2005-01-30  Havoc Pennington  <hp@redhat.com>
4957
4958         * glib/dbus-gmain.c: add a custom GSource back that just checks
4959         whether the message queue has anything in it; otherwise, there are 
4960         cases where we won't see messages in the queue since there was no 
4961         IO visible to the glib main loop
4962
4963         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4964         increase default message timeout to 25 seconds
4965
4966 2005-01-30  Havoc Pennington  <hp@redhat.com>
4967
4968         * test/glib/test-profile.c (no_bus_stop_server): remove the
4969         warning about the g_warning that I just fixed
4970
4971         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4972         custom source, seems to be a lot easier to understand and work
4973         better.
4974
4975 2005-01-30  Havoc Pennington  <hp@redhat.com>
4976
4977         I think this main loop thing is conceptually broken, but here are 
4978         some band aids. I'll maybe rewrite it in a minute.
4979         
4980         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4981         custom GSource, so don't pass it in; confusing
4982         (gsource_server_finalize, gsource_connection_finalize): add
4983         finalize handlers that remove all the watches.  
4984
4985 2005-01-30  Havoc Pennington  <hp@redhat.com>
4986
4987         * glib/dbus-gobject.c (introspect_properties): fix the XML
4988         generated
4989
4990         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4991         which effectively detects the use of freed messages
4992
4993         * glib/dbus-gobject.c (handle_introspect): modify and return the
4994         reply message instead of the incoming message
4995
4996         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4997         gee, maybe it should SEND THE XML instead of just making a string
4998         and freeing it again ;-)
4999
5000         * tools/dbus-print-message.c (print_message): improve printing of
5001         messages
5002
5003         * configure.in: add debug-glib.service to the output
5004
5005 2005-01-30  Havoc Pennington  <hp@redhat.com>
5006
5007         dbus-viewer introspected and displayed the bus driver
5008         
5009         * dbus/dbus-object-tree.c 
5010         (object_tree_test_iteration): add tests for a handler registered on "/"
5011
5012         * dbus/dbus-object-tree.c
5013         (_dbus_decompose_path): fix to handle path "/" properly
5014         (run_decompose_tests): add tests for path decomposition
5015         
5016         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5017         properly
5018
5019         * glib/dbus-gobject.c (handle_introspect): fix quotes
5020
5021         * test/glib/run-test.sh: support launching the bus, then running
5022         dbus-viewer
5023
5024         * test/glib/test-service-glib.c (main): put in a trivial gobject
5025         subclass and register it on the connection
5026
5027         * bus/driver.c (bus_driver_handle_introspect): implement
5028         introspection of the bus driver service
5029
5030         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5031         identifiers, doctype decl
5032
5033         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5034         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5035         returning the service unchanged.
5036         (bus_driver_handle_message): remove old check for reply_serial in
5037         method calls, now the message type deals with that
5038         (bus_driver_handle_message): handle NULL interface
5039
5040         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5041
5042         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5043         -1 for len
5044
5045         * tools/dbus-viewer.c: add support for introspecting a service on
5046         a bus
5047
5048         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5049         (dbus_g_pending_call_unref): add
5050
5051 2005-01-29  Havoc Pennington  <hp@redhat.com>
5052
5053         * tools/dbus-tree-view.c: add support for displaying properties.
5054         (run dbus-viewer with an introspect xml file as arg, then resize
5055         the window so the tree elements show up, not sure what that is)
5056
5057         * glib/dbus-gobject.c (handle_introspect): return
5058         org.freedesktop.Properties and org.freedesktop.Introspectable
5059         interfaces when we are introspected.
5060
5061         * doc/dbus-specification.xml: allow empty interface name when 
5062         Get/Set a property
5063
5064 2005-01-29  Havoc Pennington  <hp@redhat.com>
5065
5066         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5067         though it uses glib, it could be extended for any binding in
5068         principle
5069
5070         * glib/dbus-gobject.c (gobject_message_function): change to the
5071         new way properties work
5072
5073         * dbus/dbus-protocol.h: add the new interfaces
5074
5075         * doc/dbus-specification.xml: document the introspection format,
5076         Introspectable interface, and add an org.freedesktop.Properties
5077         interface.
5078
5079         * glib/dbus-gparser.c: add support for a <property> element
5080
5081         * glib/dbus-gidl.c: add PropertyInfo
5082
5083         * glib/dbus-gobject.c (handle_introspect): put the outermost
5084         <node> outside the signal and property descriptions.
5085         (introspect_properties): export properties as <property> rather
5086         than as method calls
5087
5088 2005-01-28  Havoc Pennington  <hp@redhat.com>
5089
5090         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5091         related to authentication protocol
5092
5093 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5094
5095         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5096                 - BUS_ACTIVATION -> BUS_STARTER
5097                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5098                 - class MessageIter (__init__): Added recursion checking 
5099                 so we throw a nice error instead of just disconnecting from the
5100                 bus.
5101                 (get): Added arg_type parameter for recursion.
5102                 Removed the nil type
5103                 Added signiture type placeholder (not implemented)
5104                 Added struct type placeholder (not implemented)
5105                 Added varient type placeholder (not implemented)
5106                 Commented out dict type for now     
5107                 (get_element_type): renamed from get_array_type
5108                 (get_*): changed to use the dbus_message_iter_get_basic API
5109                 (get_*_array): removed in favor of recursive get_array method
5110                 (get_array): new recursive method which calls get to marshal
5111                 the elements of the array
5112                 (value_to_dbus_sig): New method returns the corrasponding
5113                 dbus signiture to a python value
5114                 (append): Comment out dict handling for now
5115                 Handle lists with the new recursive API
5116                 Comment out None handling for now
5117                 (append_nil): removed
5118                 (append_*): changed to use dbus_message_iter_append_basic API
5119                 (append_*_array): removed in favor of recursive append_array 
5120                 method
5121                 (__str__): Make it easier to print out recursive iterators
5122                 for debugging
5123                 - class Message (__str__): moved type inspection to the
5124                 MessageIter class' __str__ method
5125                 (get_iter): Added an append parameter wich defaults to False
5126                 If True use the new API's to create an append iterator
5127
5128         * python/dbus.py: Update to use new bindings API
5129                 - TYPE_ACTIVATION -> TYPE_STARTER
5130                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5131                 - class ActivationBus -> class StarterBus
5132                 - class RemoteObject (__call__): get an append iterator
5133                 - (_dispatch_dbus_method_call): get an append iterator
5134                 - class Object (emit_signal): get an append iterator
5135
5136         * python/examples/: Fixed up the examples to work with the new API
5137                 
5138 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5139
5140         * configure.in: Bump version up to 0.30.
5141
5142         * HACKING: Add a release item to bump the version number up after 
5143         a release.
5144
5145 2005-01-28  Havoc Pennington  <hp@redhat.com>
5146
5147         * doc/dbus-specification.xml: update to describe 16-bit types and
5148         dict entries
5149
5150         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5151         assertion
5152
5153         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5154         type
5155
5156         * dbus/dbus-marshal-recursive.c: implement
5157
5158 2005-01-27  Havoc Pennington  <hp@redhat.com>
5159
5160         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5161
5162         * configure.in: find the right type for 16 and 32 bit ints as well
5163         as 64
5164
5165         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5166         the 16-bit types so people don't have to stuff them in 32-bit or
5167         byte arrays.
5168
5169 2005-01-27  Havoc Pennington  <hp@redhat.com>
5170
5171         * dbus/dbus-message.c: byteswap the message if you init an
5172         iterator to read/write from it
5173         
5174         * dbus/dbus-marshal-byteswap.c: new file implementing 
5175         _dbus_marshal_byteswap()
5176
5177         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5178
5179 2005-01-26  Havoc Pennington  <hp@redhat.com>
5180         
5181         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5182         build, apparently - nobody noticed?)
5183         
5184 2005-01-26  Havoc Pennington  <hp@redhat.com>
5185
5186         * dbus/dbus-marshal-recursive.h: remove todo comment
5187
5188 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5189
5190         * Land the mono binding changes to conform to the new APIs.
5191
5192         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5193         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5194
5195         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5196         type code as a string.
5197         (InitAppending): Rename dbus_message_append_iter_init() to
5198         dbus_message_iter_init_append().
5199
5200         * mono/BusDriver.cs: Rename ServiceEventHandler to
5201         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5202         Rename ServiceOwnerChanged to NameOwnerChanged.
5203
5204         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5205         underlying C call.
5206
5207         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5208
5209         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5210         dbus_bus_acquire_service() to dbus_bus_request_name().
5211
5212         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5213         of Type.UnderlyingSystemType to get the correct element type for
5214         the array.
5215         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5216         dbus_message_get_{element|arg}_type() instead of
5217         dbus_message_iter_init_array_iterator().
5218         (Append): Replace dbus_message_iter_append_array() with
5219         dbus_message_iter_open_container() and
5220         dbus_message_iter_close_container().
5221
5222         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5223         types have been removed.
5224         
5225         * mono/DBusType/*.cs: Replace calls of
5226         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5227         but specify the type in the DllImport extern declaration.  Ditto
5228         for dbus_message_iter_append_[type]() ->
5229         dbus_message_iter_append_basic().
5230
5231         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5232         NameOwnerChangedHandler.
5233
5234 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5235
5236         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5237                 - get_base_service -> get_unique_name
5238                 - bus_get_base_service -> bus_get_unique_name
5239                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5240                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5241                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5242                 - bus_activate_service -> bus_start_service_by_name
5243                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5244                 - bus_acquire_service -> bus_request_name
5245                 - dbus_bus_acquire_service -> dbus_bus_request_name
5246                 - bus_service_exists -> bus_name_has_owner
5247                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5248
5249         * python/dbus.py: Rename of methods
5250                 - activate_service -> start_service_by_name
5251                 - bus_acquire_service -> bus_request_name
5252                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5253                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5254
5255         
5256 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5257
5258         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5259         signature for the method that can't be found.
5260
5261         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5262         the message has any arguments, we need to call
5263         _dbus_type_reader_get_current_type(), not
5264         _dbus_type_reader_has_next().
5265
5266 2005-01-24  Havoc Pennington  <hp@redhat.com>
5267
5268         * dbus/dbus-message-factory.c: more testing of message validation
5269
5270         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5271         header
5272
5273 2005-01-23  Havoc Pennington  <hp@redhat.com>
5274
5275         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5276         get this all working, not many tests in the framework yet though
5277
5278 2005-01-22  Havoc Pennington  <hp@redhat.com>
5279
5280         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5281         tutorial, based on work from David Wheeler.
5282
5283 2005-01-21  Havoc Pennington  <hp@redhat.com>
5284
5285         * dbus/dbus-bus.c: add more return_if_fail checks
5286
5287         * dbus/dbus-message.c (load_message): have the "no validation"
5288         mode (have to edit the code to toggle the mode for now though)
5289
5290         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5291         skips all validation; I want to use this at least for benchmark
5292         baseline, I'm not sure if it should be a publicly-available switch.
5293
5294 2005-01-21  Havoc Pennington  <hp@redhat.com>
5295
5296         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5297         toplevel doxygen group as the low-level API stuff
5298
5299         * dbus/dbus.h: note that libdbus is the low-level API
5300
5301 2005-01-20  Havoc Pennington  <hp@redhat.com>
5302
5303         * update-dbus-docs.sh: script to update docs on the web site, only
5304         works for me though. neener.
5305
5306 2005-01-20  Havoc Pennington  <hp@redhat.com>
5307
5308         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5309         code can reveal bugs in it
5310
5311 2005-01-20  Havoc Pennington  <hp@redhat.com>
5312
5313         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5314         select() version, patches from Tor Lillqvist
5315
5316 2005-01-20  Havoc Pennington  <hp@redhat.com>
5317
5318         * doc/dbus-tutorial.xml: replace > with &gt;
5319
5320         * bus/services.c (bus_registry_acquire_service): validate the name
5321         and return a better error if it's no good.
5322
5323         * doc/dbus-specification.xml: note NO_AUTO_START change
5324
5325         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5326         from AUTO_START, we're toggling the default
5327
5328         * bus/dispatch.c: adapt the tests to change of auto-start default
5329
5330 2005-01-18  Havoc Pennington  <hp@redhat.com>
5331
5332         * rename dbus-daemon-1 to dbus-daemon throughout
5333
5334 2005-01-18  Havoc Pennington  <hp@redhat.com>
5335
5336         * Throughout, grand renaming to strip out the use of "service",
5337         just say "name" instead (or "bus name" when ambiguous).  Did not
5338         change the internal code of the message bus itself, only the
5339         programmer-facing API and messages.
5340         
5341         * doc/dbus-specification.xml: further update the message bus section
5342         
5343         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5344         in error case
5345
5346 2005-01-17  Havoc Pennington  <hp@redhat.com>
5347
5348         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5349         ever
5350
5351         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5352         "invalid name character" not only non-ASCII
5353
5354         * doc/dbus-specification.xml: further update spec, message bus 
5355         parts are still out-of-date but the marshaling etc. stuff is now
5356         accurate-ish
5357
5358 2005-01-17  Havoc Pennington  <hp@redhat.com>
5359
5360         * doc/dbus-specification.xml: partially update spec
5361
5362 2005-01-17  Havoc Pennington  <hp@redhat.com>
5363
5364         * Throughout, align variant bodies according to the contained
5365         type, rather than always to 8. Should save a fair bit of space in
5366         message headers.
5367         
5368         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5369         fix handling of case where p == end
5370
5371         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5372
5373 2005-01-17  Havoc Pennington  <hp@redhat.com>
5374
5375         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5376
5377         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5378         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5379         are marshaling/unmarshaling a boolean.
5380
5381 2005-01-16  Havoc Pennington  <hp@redhat.com>
5382
5383         This is about it on what can be disabled/deleted from libdbus
5384         easily, back below 150K anyhow. Deeper cuts are more work than 
5385         just turning the code off as I've done here.
5386         
5387         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5388         signed int convenience funcs
5389
5390         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5391         verbose mode
5392
5393         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5394         things out of libdbus
5395
5396         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5397         
5398         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5399         tests-enabled-only, though it should probably be deleted)
5400
5401         * dbus/dbus-message-util.c: same stuff
5402
5403         * dbus/dbus-auth-util.c: same stuff
5404
5405 2005-01-16  Havoc Pennington  <hp@redhat.com>
5406
5407         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5408
5409         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5410         way for stripping down dbus-userdb.c stuff included in libdbus.
5411         Rename _dbus_parse_uid for consistency.
5412
5413 2005-01-16  Havoc Pennington  <hp@redhat.com>
5414
5415         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5416         name the assertion failed in
5417
5418         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5419         (_dbus_return_val_if_fail): assert that the name of the function
5420         containing the check doesn't start with '_', since we only want to 
5421         use checks on public functions
5422         
5423         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5424         checks to assertions
5425
5426         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5427         change checks to asserts for private function
5428
5429         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5430         to asserts for private function
5431
5432         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5433         broken assertion that was breaking make check
5434         (_dbus_type_reader_array_is_empty): remove this rather than fix
5435         it, was only used in assertions
5436
5437 2005-01-16  Havoc Pennington  <hp@redhat.com>
5438
5439         * test/unused-code-gc.py: hacky script to find code that's used
5440         only by the bus (not libdbus) or used only by tests or not used at
5441         all. It has some false alarms, but looks like we can clean up a
5442         lot of size from libdbus.
5443
5444         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5445         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5446         
5447 2005-01-16  Havoc Pennington  <hp@redhat.com>
5448
5449         * Add and fix docs according to Doxygen warnings throughout
5450         source.
5451         
5452         * dbus/dbus-marshal-recursive.c
5453         (_dbus_type_reader_array_is_empty): change this to just call
5454         array_reader_get_array_len() and make it static
5455
5456         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5457         from get_array_type
5458         (dbus_message_iter_init_append): rename from append_iter_init
5459
5460         * dbus/dbus-marshal-recursive.c
5461         (_dbus_type_reader_get_element_type): rename from
5462         _dbus_type_reader_get_array_type
5463
5464 2005-01-15  Havoc Pennington  <hp@redhat.com>
5465
5466         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5467
5468         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5469         when DBUS_DISABLE_ASSERT
5470         (_dbus_marshal_set_basic): be sure we align for the string length
5471
5472         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5473         this look faster
5474
5475         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5476         inline macro version
5477         (_dbus_string_set_byte): provide inline macro version
5478
5479 2005-01-15  Havoc Pennington  <hp@redhat.com>
5480
5481         * Land the new message args API and type system.
5482
5483         This patch is huge, but the public API change is not 
5484         really large. The set of D-BUS types has changed somewhat, 
5485         and the arg "getters" are more geared toward language bindings;
5486         they don't make a copy, etc.
5487
5488         There are also some known issues. See these emails for details
5489         on this huge patch:
5490         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5491         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5492         
5493         * dbus/dbus-marshal-*: all the new stuff
5494
5495         * dbus/dbus-message.c: basically rewritten
5496
5497         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5498         freed blocks to be all non-nul bytes so using freed memory is less
5499         likely to work right
5500
5501         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5502         DBUS_FAIL_MALLOC=N environment variable, so you can do
5503         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5504         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5505         thorough.
5506
5507         * qt/message.cpp: port to the new message args API
5508         (operator<<): use str.utf8() rather than str.unicode()
5509         (pretty sure this is right from the Qt docs?)
5510
5511         * glib/dbus-gvalue.c: port to the new message args API
5512
5513         * bus/dispatch.c, bus/driver.c: port to the new message args API
5514
5515         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5516         "locked" flag to TRUE and align_offset to 0; I guess we never
5517         looked at these anyhow, but seems cleaner.
5518
5519         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5520         move allocation padding macro to this header; use it to implement
5521         (_DBUS_STRING_STATIC): ability to declare a static string.
5522
5523         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5524         change to return TRUE if the interface is not set.
5525
5526         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5527         to dbus-marshal-validate.[hc]
5528
5529         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5530         dbus-internals.c
5531
5532         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5533         to dbus-marshal-*.[hc]
5534
5535         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5536         function here from dbus-marshal.c
5537
5538 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5539
5540         * NEWS: Update for 0.23.
5541
5542         * configure.in: Release 0.23.
5543
5544 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5545
5546         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5547         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5548         behind.
5549
5550         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5551         uninstall"
5552
5553         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5554         is an enum, get the enum's underlying type.  Another mono
5555         1.1.3 fix.
5556
5557 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5558
5559         Patch from Sjoerd Simons <sjoerd@luon.net>
5560
5561         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5562         DESTDIR.  It breaks stuff.
5563
5564 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5565
5566         Patch from Tambet Ingo <tambet@ximian.com>
5567
5568         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5569         calling type.GetElementType().  The code previously depended on
5570         broken Mono behavior, which was fixed in Mono 1.1.3.
5571
5572         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5573         Activator.CreateInstance() so that the class's constructor is
5574         called with the right parameters.
5575
5576 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5577
5578         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5579
5580         * dbus/dbus-connection.c
5581         (_dbus_connection_queue_received_message_link): Call
5582         _dbus_connection_remove_timeout() instead of the _locked()
5583         variant, since it's always called from
5584         _dbus_connection_handle_watch(), which handles the locking.
5585         Removed the _locked() variant since it's no longer used.
5586
5587 2005-01-03  Havoc Pennington  <hp@redhat.com>
5588
5589         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5590         return
5591         
5592 2004-12-26  Havoc Pennington  <hp@redhat.com>
5593
5594         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5595
5596 2005-01-03  Havoc Pennington  <hp@redhat.com>
5597
5598         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5599         floating point
5600
5601         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5602
5603 2005-01-02  Havoc Pennington  <hp@redhat.com>
5604
5605         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5606
5607 2005-01-01  Havoc Pennington  <hp@redhat.com>
5608
5609         * configure.in: add -Wfloat-equal
5610
5611 2005-01-01  Havoc Pennington  <hp@redhat.com>
5612
5613         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5614         for a variety of reasons '==' doesn't do this.
5615
5616 2004-12-31  Havoc Pennington  <hp@redhat.com>
5617
5618         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5619         I keep wishing I had
5620
5621 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5622
5623         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5624
5625 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5626
5627         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5628         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5629         dbus-protocol.h.  Because they are defines and not enums they are not
5630         autogenerated.
5631
5632 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5633
5634         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5635         dbus_bus_activate_service
5636
5637         * python/dbus.py (Bus.activate_service): activate a service on the
5638         bus.
5639
5640 2004-12-24  Havoc Pennington  <hp@redhat.com>
5641
5642         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5643         file format has also changed and I haven't adapted to that yet
5644         
5645         * Makefile.am: load .gcno files from latest gcc
5646
5647 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5648         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5649
5650         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5651         lowlevel binding
5652
5653         * python/dbus.py (get_unix_user): Added binding to 
5654         call dbus_bindings.bus_get_unix_user
5655
5656         * python/extract.py: Modified the proto_pat regex to
5657         handle unsigned long
5658
5659 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5660
5661         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5662         better POSIX compliance.
5663
5664 2004-12-19  Havoc Pennington  <hp@redhat.com>
5665
5666         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5667         (_dbus_string_insert_8_aligned): new functions
5668
5669         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5670
5671 2004-12-18  Havoc Pennington  <hp@redhat.com>
5672
5673         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5674         macro
5675
5676         * dbus/dbus-message.c: fix a comment, and add a still-unused
5677         not-implemented function
5678
5679         * dbus/dbus-marshal.h: fix comment
5680
5681         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5682
5683 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5684
5685         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5686         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5687         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5688         Type.UnderlyingSystemType to get the actual system type
5689         underneath.  This code previously depended on the broken Mono
5690         behavior, which was fixed in 1.1.3.
5691
5692 2004-11-27  Havoc Pennington  <hp@redhat.com>
5693
5694         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5695         are disabled
5696         (_dbus_string_get_const_data): inline when asserts are disabled
5697
5698         * dbus/dbus-message.c: record the _dbus_current_generation of
5699         creation so we can complain if dbus_shutdown() is used improperly.
5700         Do this only if checks are enabled.
5701
5702         * dbus/dbus-connection.c: ditto
5703         
5704 2004-11-26  Havoc Pennington  <hp@redhat.com>
5705
5706         * test/glib/test-profile.c: add with_bus mode to profile echoes
5707         that go through the bus.
5708
5709         * test/glib/run-test.sh: add ability to run test-profile
5710
5711         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5712         config file reload.
5713
5714 2004-11-26  Havoc Pennington  <hp@redhat.com>
5715
5716         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5717         thing was implemented
5718
5719 2004-11-26  Havoc Pennington  <hp@redhat.com>
5720
5721         * test/glib/test-profile.c: tweak a bit, add support for some
5722         made-up minimal malloc overhead with plain sockets, since in 
5723         real life some sort of buffers are unavoidable thus we could 
5724         count them in the theoretical best case
5725
5726 2004-11-26  Havoc Pennington  <hp@redhat.com>
5727
5728         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5729         where I was trying to cache one too many messages
5730
5731 2004-11-26  Havoc Pennington  <hp@redhat.com>
5732
5733         * dbus/dbus-message.c: reimplement message cache as an array which 
5734         makes the cache about twice as fast and saves maybe 1.5% overall
5735
5736 2004-11-26  Havoc Pennington  <hp@redhat.com>
5737
5738         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5739         message cache lock here
5740
5741 2004-11-26  Havoc Pennington  <hp@redhat.com>
5742
5743         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5744         the "char byte_order" next to each other to save 4 bytes
5745         (dbus_message_new_empty_header): reduce preallocation, since the
5746         message cache should achieve a similar effect
5747         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5748         message cache that keeps a few DBusMessage around in a pool,
5749         another 8% speedup or so.
5750
5751         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5752
5753 2004-11-25  Havoc Pennington  <hp@redhat.com>
5754
5755         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5756         to write, without reading or blocking, try it before the poll()
5757         and skip the poll() if nothing remains to write. This is about a
5758         3% speedup in the echo client/server
5759
5760 2004-11-25  Havoc Pennington  <hp@redhat.com>
5761
5762         The primary change here is to always write() once before adding
5763         the write watch, which gives us about a 10% performance increase.
5764         
5765         * dbus/dbus-transport-unix.c: a number of modifications to cope
5766         with removing messages_pending
5767         (check_write_watch): properly handle
5768         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5769         messages_pending stuff
5770         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5771         AUTHENTICATED cases
5772         (unix_handle_watch): after writing, see if the write watch can be
5773         removed
5774         (unix_do_iteration): assert that write_watch/read_watch are
5775         non-NULL rather than testing that they aren't, since they 
5776         aren't allowed to be NULL. check_write_watch() at the end so 
5777         we add the watch if we did not finish writing (e.g. got EAGAIN)
5778
5779         * dbus/dbus-transport-protected.h: remove messages_pending call,
5780         since it resulted in too much inefficient watch adding/removing; 
5781         instead we now require that the transport user does an iteration 
5782         after queueing outgoing messages, and after trying the first
5783         write() we add a write watch if we got EAGAIN or exceeded our 
5784         max bytes to write per iteration setting
5785
5786         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5787         function
5788
5789         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5790         freed and then accessed, valgrind flagged this bug, fix it
5791
5792         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5793         as the last valid field plus 1, where really it is equal to the
5794         last valid field. Corrects some message corruption issues.
5795
5796         * dbus/dbus-mainloop.c: verbosity changes
5797
5798         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5799         instead of aborting in one of the test codepaths
5800
5801         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5802         caused not printing the pid ever again if a verbose was missing
5803         the newline at the end
5804         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5805
5806         * dbus/dbus-connection.c: verbosity changes; 
5807         (dbus_connection_has_messages_to_send): new function
5808         (_dbus_connection_message_sent): no longer call transport->messages_pending
5809         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5810         try to write() immediately, so we can avoid the write watch. This
5811         is the core purpose of this patchset
5812         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5813         dump the outgoing message queue, so nobody will get confused
5814         trying to send them or thinking stuff is pending to be sent
5815
5816         * bus/test.c: verbosity changes
5817
5818         * bus/driver.c: verbosity/assertion changes
5819
5820         * bus/dispatch.c: a bunch of little tweaks to get it working again
5821         because this patchset changes when/where you need to block.
5822
5823 2004-11-23  Havoc Pennington  <hp@redhat.com>
5824
5825         * test/glib/test-profile.c: modify to accept a plain_sockets
5826         argument in which case it will bench plain sockets instead of
5827         libdbus, for comparison purposes.
5828
5829 2004-11-22  Havoc Pennington  <hp@redhat.com>
5830
5831         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5832         threads for more time, so sysprof can get a grip on it.
5833
5834         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5835         pointless variable
5836
5837 2004-11-13  Havoc Pennington  <hp@redhat.com>
5838
5839         * test/glib/test-profile.c: fix this thing up a bit
5840
5841         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5842         preallocation sizes by a fair bit; not sure if this will be an
5843         overall performance win or not, but it does reduce reallocs.
5844
5845         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5846         the test hack that forced constant realloc if asserts are
5847         disabled, so we can profile sanely. Sprinkle in some
5848         _DBUS_UNLIKELY() which are probably pointless, but before I
5849         noticed the real performance problem I put them in.
5850         (_dbus_string_validate_utf8): micro-optimize this thing a little
5851         bit, though callgrind says it didn't help; then special-case
5852         ascii, which did help a lot; then be sure we detect nul bytes as
5853         invalid, which is a bugfix.
5854         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5855         superstition; use memset to nul the padding instead of a manual
5856         loop.
5857         (_dbus_string_get_length): inline this as a
5858         macro; it showed up in the profile because it's used for loop
5859         tests and so forth
5860
5861 2004-11-10  Colin Walters  <walters@verbum.org>
5862
5863         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5864         for extra paranoia.
5865
5866 2004-11-09  Colin Walters  <walters@verbum.org>
5867
5868         * dbus/dbus-string.c (_dbus_string_get_length): New
5869         function, writes DBusString to C buffer.
5870
5871         * dbus/dbus-string.h: Prototype it.
5872
5873         * dbus/dbus-message.c (dbus_message_type_to_string): New
5874         function, converts message type into C string.
5875
5876         * dbus/dbus-message.h: Prototype it.
5877
5878         * bus/selinux.c (bus_selinux_check): Take source pid,
5879         target pid, and audit data.  Pass audit data to
5880         avc_has_perm.
5881         (log_audit_callback): New function, appends extra
5882         audit information.
5883         (bus_selinux_allows_acquire_service): Also take
5884         service name, add it to audit data.
5885         (bus_selinux_allows_send): Also take message
5886         type, interface, method member, error name,
5887         and destination, and add them to audit data.
5888         (log_cb): Initialize func_audit.
5889         
5890         * bus/selinux.h (bus_selinux_allows_acquire_service)
5891         (bus_selinux_allows_send): Update prototypes 
5892
5893         * bus/services.c (bus_registry_acquire_service): Pass
5894         service name to bus_selinux_allows_acquire_service.
5895
5896         * bus/bus.c (bus_context_check_security_policy): Pass
5897         additional audit data.  Move assignment of dest
5898         to its own line.
5899
5900 2004-11-07  Colin Walters  <walters@verbum.org>
5901
5902         * dbus/dbus-transport-unix.c (do_authentication): Always
5903         initialize auth_completed.
5904         
5905 2004-11-07  Colin Walters  <walters@verbum.org>
5906
5907         * bus/bus.c (load_config): Break into three
5908         separate functions: process_config_first_time_only,
5909         process_config_every_time, and process_config_postinit.
5910         (process_config_every_time): Move call of
5911         bus_registry_set_service_context_table into
5912         process_config_postinit.
5913         (process_config_postinit): New function, does
5914         any processing that needs to happen late
5915         in initialization (and also on reload).
5916         (bus_context_new): Instead of calling load_config,
5917         open config parser here and call process_config_first_time_only
5918         and process_config_every_time directly.  Later, after
5919         we have forked but before changing UID,
5920         invoke bus_selinux_full_init, and then call
5921         process_config_postinit.
5922         (bus_context_reload_config): As in bus_context_new,
5923         load parse file inside here, and call process_config_every_time
5924         and process_config_postinit.
5925
5926         * bus/services.h, bus/services.c
5927         (bus_registry_set_service_context_table): Rename
5928         from bus_registry_set_sid_table.  Take string hash from config
5929         parser, and convert them here into SIDs.
5930
5931         * bus/config-parser.c (struct BusConfigParser): Have
5932         config parser only store a mapping of service->context
5933         string.
5934         (merge_service_context_hash): New function.
5935         (merge_included): Merge context string hashes instead
5936         of using bus_selinux_id_table_union.
5937         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5938         simply create a new string hash.
5939         (bus_config_parser_unref): Unref it.
5940         (start_selinux_child): Simply insert strings into hash,
5941         don't call bus_selinux_id_table_copy_over.
5942
5943         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5944         (bus_selinux_id_table_copy_over): Delete.
5945
5946 2004-11-03  Colin Walters  <walters@verbum.org>
5947
5948         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5949         variables.
5950         
5951 2004-11-03  Colin Walters  <walters@verbum.org>
5952
5953         * bus/test-main.c (test_pre_hook): Fix test logic,
5954         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5955
5956 2004-11-02  Colin Walters  <walters@redhat.com>
5957
5958         * bus/selinux.c (bus_selinux_init): Split into two functions,
5959         bus_selinux_pre_init and bus_selinux_post_init.
5960         (bus_selinux_pre_init): Just determine whether SELinux is
5961         enabled.
5962         (bus_selinux_post_init): Do everything else.
5963
5964         * bus/main.c (main): Call bus_selinux_pre_init before parsing
5965         config file, and bus_selinux_post_init after.  This ensures that
5966         we don't lose the policyreload notification thread that
5967         bus_selinux_init created before forking previously.
5968         
5969         * bus/test-main.c (test_pre_hook): Update for split.
5970
5971 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
5972
5973         Patch from Johan Fischer <linux@fischaz.com>
5974         
5975         * mono/doc/Makefile.am (install-data-local): Added directory
5976         install for DESTDIR
5977
5978 2004-10-29  Colin Walters  <walters@redhat.com>
5979
5980         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5981         parameter for fd to write pid to.       
5982
5983         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5984         
5985         * bus/bus.c (bus_context_new): Pass print_pid_fd
5986         to _dbus_become_daemon (bug #1720)
5987
5988 2004-10-29  Colin Walters  <walters@redhat.com>
5989
5990         Patch from Ed Catmur <ed@catmur.co.uk>
5991
5992         * mono/doc/Makefile.am (install-data-local): Handle
5993         DESTDIR.
5994
5995 2004-10-29  Colin Walters  <walters@redhat.com>
5996
5997         * bus/.cvsignore, qt/.cvsignore: Update.
5998
5999 2004-10-29  Colin Walters  <walters@redhat.com>
6000
6001         Patch from Kristof Vansant <de_lupus@pandora.be>
6002
6003         * configure.in: Detect Slackware.
6004         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6005         * bus/rc.messagebus.in: New file.
6006
6007 2004-10-29  Colin Walters  <walters@redhat.com>
6008
6009         * tools/dbus-monitor.c (filter_func): Return
6010         DBUS_HANDLER_RESULT_HANDLED in filter function
6011         for now.  See:
6012         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6013
6014 2004-10-29  Colin Walters  <walters@redhat.com>
6015
6016         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6017
6018         * bus/services.c (bus_registry_acquire_service): 
6019         Correctly retrieve service name from DBusString
6020         for printing.
6021
6022 2004-10-29  Colin Walters  <walters@redhat.com>
6023
6024         * dbus/dbus-glib.h: Update documentation to not
6025         refer to internal APIs.
6026
6027 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6028
6029         * mono/Arguments.cs (GetDBusTypeConstructor):
6030         type.UnderlyingSystemType will return "System.Byte" if you do it
6031         on "byte[]", which is not what we want.  So check the type.IsArray
6032         property and use System.Array instead.
6033
6034 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6035
6036         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6037         the DBusUserInfo structure since this is passed into the function.
6038         This would cause a double free when the function that allocated
6039         the structure would try to free it when an error occured.
6040
6041         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6042         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6043         for service activation to avoid 32bit/64bit parallel install issues
6044
6045 2004-10-21  Colin Walters  <walters@verbum.org>
6046
6047         * AUTHORS: Fix my email address, the @gnu.org one
6048         has been bouncing for some time.  Also add J5.
6049         
6050 2004-10-21  Colin Walters  <walters@verbum.org>
6051
6052         * dbus/dbus-transport-unix.c (do_authentication): Return
6053         authentication status to callers.
6054         (unix_handle_watch): If we completed authentication this round,
6055         don't do another read.  Instead wait until the next iteration,
6056         after we've read any pending data in the auth buffer.
6057         (unix_do_iteration): Ditto.
6058         (unix_handle_watch): Updated for new do_authentication prototype.
6059
6060 2004-10-18  Colin Walters  <walters@verbum.org>
6061
6062         * bus/selinux.c (bus_selinux_enabled): Handle
6063         --disable-selinux case.
6064         
6065 2004-10-18  Colin Walters  <walters@verbum.org>
6066
6067         * bus/selinux.h: Add bus_selinux_enabled.
6068         
6069         * bus/selinux.c (bus_selinux_enabled): Implement it.
6070         
6071         * bus/config-parser.c (struct include): Add
6072         if_selinux_enabled member.
6073         (start_busconfig_child): Parse if_selinux_enabled
6074         attribute for include.
6075         (bus_config_parser_content): Handle it.
6076
6077         * bus/session.conf.in, bus/system.conf.in: Add
6078         inclusion of context mapping to default config files;
6079         conditional on SELinux being enabled.
6080         
6081         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6082         
6083         * test/data/invalid-config-files/badselinux-1.conf, 
6084         test/data/invalid-config-files/badselinux-2.conf:
6085         Test files for bad syntax.
6086         
6087 2004-10-17  Colin Walters  <walters@verbum.org>
6088
6089         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6090         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6091         format specifier mismatches.
6092
6093 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6094
6095         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6096         format string.
6097
6098         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6099         pointer (bug #1540, Leonardo Boiko).
6100
6101 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6102
6103         * mono/BusDriver.cs: Changed BusDriver struct to remove
6104         the ServiceCreated and ServiceDeleted events and replace them
6105         with the new ServiceOwnerChanged event.
6106
6107         * mono/example/BusListener.cs: Added a new example program,
6108         which listens for and reports any ServiceOwnerChanged events
6109         on the bus driver.
6110
6111         * mono/example/Makefile.am (DESTDIR): Build changes for the
6112         new BusListener.cs example.
6113
6114 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6115
6116         * bus/signals.c (bus_match_rule_parse): validate the components of
6117         match rules (bug #1439).
6118
6119         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6120
6121 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6122
6123         * doc/dbus-specification.xml: document ServiceOwnerChanged
6124         signal.
6125         
6126         * bus/driver.c, bus/driver.h, bus/services.c: Use
6127         ServiceOwnerChanged signal instead of ServiceCreated and
6128         ServiceDeleted.
6129         
6130         * bus/dispatch.c: update testcase for the new signal.
6131
6132 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6133
6134         Patch from Nat Friedman <nat@novell.com>
6135
6136         * mono/Makefile.am: A number of small build fixes to allow "make
6137         distcheck" to succeed.
6138
6139         * mono/example/Makefile.am: "make distcheck" fixes.
6140
6141         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6142         key in @srcdir@.
6143
6144         * test/Makefile.am: "make distcheck" fixes.
6145
6146 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6147
6148         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6149
6150         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6151
6152         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6153         messages after the first one (bug #1389).
6154         
6155         * bus/dispatch.c (check_double_hello_message): add a test case for
6156         the double hello message bug.
6157         (check_existent_service_activation): fix check of spawning error.
6158         
6159 2004-09-16  David Zeuthen  <david@fubar.dk>
6160
6161         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6162
6163 2004-09-12  David Zeuthen  <david@fubar.dk>
6164
6165         Patch from Kay Sievers <kay.sievers@vrfy.org>
6166
6167         * bus/bus.c (bus_context_new):
6168         * bus/bus.h:
6169         * bus/main.c (usage)
6170         (main):
6171         Add commandline option --nofork to override configuration file
6172         setting.
6173
6174 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6175
6176         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6177         compilers don't like it (bug #974).
6178
6179 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6180
6181         * qt/connection.*: Applied patch by Jérôme Lodewyck
6182         <lodewyck@clipper.ens.fr> to integrate an existing
6183         connection into the Qt eventloop
6184
6185 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6186
6187         * mono/BusDriver.cs: Added.  This is a class for interacting with
6188         the org.freedesktop.DBus service.
6189
6190         * mono/Message.cs: Added a mechanism to expose the message that is
6191         currently being dispatched via the static Message.Current
6192         property.  Added Message.Sender and Message.Destination
6193         properties.
6194
6195         * mono/Handler.cs: Expose the dispatched message via
6196         Message.Current when handling method calls.
6197
6198         * mono/Service.cs: Expose the dispatched message via
6199         Message.Current when handling signal emissions.
6200         
6201         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6202         Connection.BaseService property.
6203
6204 2004-08-28  Havoc Pennington  <hp@redhat.com>
6205
6206         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6207
6208         More fixes from Steve Grubb
6209         
6210         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6211         (_dbus_listen_tcp_socket): fix fd leak
6212
6213         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6214         EINTR to a bit lower in the code
6215
6216 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6217
6218         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6219         TRUE if we are inquiring about the existence of the built-in
6220         org.freedesktop.DBus service.
6221
6222 2004-08-25  John Palmieri  <johnp@redhat.com>
6223         * bus/config-parser.c:
6224         (struct PolicyType): Add POLICY_CONSOLE
6225         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6226         (start_busconfig_child): Sets up console element when
6227         <policy at_console=""> is encountered in a policy file
6228         (append_rule_from_element): Convert console elements to console
6229         rules.
6230
6231         * bus/policy.c: 
6232         (bus_policy_create_client_policy): Add console rules to the client
6233         policy based on if the client is at the console
6234         (bus_policy_append_console_rule): New function for adding a
6235         console rule to a policy
6236         (bus_policy_merge): Handle console rule merging
6237
6238         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6239         where we check for console user files
6240         
6241         * dbus/dbus-sysdeps.c:
6242         (_dbus_file_exists): New function which checks if the given
6243         file exists
6244         (_dbus_user_at_console): New function which does the system
6245         specific process of checking if the user is at the console
6246
6247         * dbus/dbus-userdb.c:
6248         (_dbus_is_console_user): New function converts a UID to user name
6249         and then calls the system specific _dbus_user_at_console to 
6250         see if the user is at the console and therefor a console user
6251
6252 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6253
6254         * bus/config-parser.c (set_limit):
6255         * bus/dbus-daemon-1.1.in:
6256         * test/data/valid-config-files/many-rules.conf: set the
6257         max_match_rules_per_connection limt from the config file. 
6258
6259         * doc/busconfig.dtd: update the DTD.
6260
6261         * bus/driver.c: remove some unused variables.
6262
6263 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6264
6265         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6266         it's been replaced by dbus_g_bus_get
6267
6268 2004-08-23  Colin Walters  <walters@redhat.com>
6269
6270         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6271
6272         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6273
6274         * bus/selinux.c: Create a thread for policy reload notification.
6275         (bus_selinux_get_policy_root): Implement.
6276
6277         * bus/config-parser.c (start_busconfig_child)
6278         (bus_config_parser_content): Support SELinux-root relative
6279         inclusion.
6280
6281         * configure.in <HAVE_SELINUX>: Add -lpthread.
6282         
6283         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6284         (test_post_hook): Move memory checking into here.
6285         (test_pre_hook, test_post_hook): Move SELinux checks in
6286         here, but conditional on a DBUS_TEST_SELINUX environment
6287         variable.  Unfortunately we can't run the SELinux checks
6288         as a normal user, since they won't have any permissions
6289         for /selinux.  So this will have to be tested manually
6290         for now, until we have virtualization for most of
6291         libselinux.
6292         
6293 2004-08-23  Havoc Pennington  <hp@redhat.com>
6294
6295         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6296         drop supplementary groups, suggested by Steve Grubb
6297
6298 2004-08-20  Colin Walters  <walters@redhat.com>
6299
6300         * bus/config-parser.c (start_busconfig_child): Remove some unused
6301         variables.
6302         
6303         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6304         warning.
6305
6306 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6307
6308         * configure.in: If --enable-mono is passed in, if we can't find
6309         mono error out.
6310
6311         * mono/Makefile.am: Use /gacutil to install assemblies into the
6312         GAC and not /root.
6313
6314 2004-08-12  Havoc Pennington  <hp@redhat.com>
6315
6316         * NEWS: update for 0.22
6317
6318         * configure.in: release 0.22
6319
6320 2004-08-11  Colin Walters  <walters@redhat.com>
6321
6322         * tools/dbus-send.c (main, usage): Add --reply-timeout
6323         argument.
6324
6325 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6326
6327         * bus/bus.c (process_config_first_time_only): get rid of an unused
6328         DBusError that was causing a memoy leak (bug #989).
6329
6330         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6331         fix compilation on Solaris/Forte C (bug #974)
6332
6333         * bus/main.c (main): plug two minuscule memleaks.
6334
6335 2004-08-10  Havoc Pennington  <hp@redhat.com>
6336
6337         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6338
6339 2004-08-09  Havoc Pennington  <hp@redhat.com>
6340
6341         * COPYING: switch to Academic Free License version 2.1 instead of
6342         2.0, to resolve complaints about patent termination clause.
6343
6344 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6345
6346         * README: added documentation for the --enable-python 
6347         configure switch.
6348
6349 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6350
6351         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6352         _unref in the SELinux support.
6353
6354         * doc/busconfig.dtd: update DTD for SELinux support.
6355
6356         * bus/config-loader-libxml.c: fix error handler and parser
6357         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6358
6359         * configure.in: remove the warning about libxml2.
6360
6361         * dbus/dbus-bus.c: silence doxygen warning.
6362
6363 2004-07-31  Colin Walters  <walters@redhat.com>
6364
6365         * configure.in: Move #error in SELinux check to its own line.
6366
6367 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6368
6369         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6370         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6371         dbus_error_set.
6372
6373         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6374         broken by the change in the _SET_OOM macros.
6375
6376 2004-07-31  Colin Walters  <walters@redhat.com>
6377
6378         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6379         BUS_SET_OOM.
6380
6381 2004-07-31  Colin Walters  <walters@redhat.com>
6382
6383         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6384         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6385         AC_MSG_CHECKING.
6386
6387 2004-07-24  Havoc Pennington  <hp@redhat.com>
6388
6389         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6390
6391         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6392         functionality
6393
6394         * configure.in: add --enable-selinux
6395         
6396         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6397
6398         * bus/main.c (main): initialize and shut down selinux
6399
6400         * bus/connection.c: store SELinux ID on each connection, to avoid 
6401         repeated getting of the string context and converting it into 
6402         an ID
6403
6404         * bus/bus.c (bus_context_get_policy): new accessor, though it
6405         isn't used
6406         (bus_context_check_security_policy): check whether the security
6407         context of sender connection can send to the security context of
6408         recipient connection
6409
6410         * bus/config-parser.c: add parsing for <selinux> and <associate>
6411         
6412         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6413         implement dbus_connection_get_unix_fd()
6414
6415         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6416         function, used by the selinux stuff
6417         
6418 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6419
6420         * bus/config-loader-libxml.c: complete the implementation of
6421         libxml backend for config file loader. Doesn't work with full OOM
6422         test yet. 
6423         
6424         * configure.in: change error when selecting libxml into a warning.
6425         
6426         * test/data/invalid-config-files: add two non-well-formed XML
6427         files. 
6428         
6429         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6430         
6431         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6432         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6433         be necessary to read all the buffer. (bug #894)
6434
6435         * bus/activation.c (bus_activation_activate_service): fix a
6436         potential assertion failure (bug #896). Small optimization in the
6437         case of auto-activation messages.
6438
6439         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6440         add test case for byte-through-vararg bug (#901). patch by Kimmo
6441         Hämäläinen. 
6442
6443 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6444
6445         * python/dbus.py:
6446         * python/dbus_bindings.pyx.in:
6447         Add dbus.init_gthreads (), allow emit_signal to pass
6448         arguments to the signal.
6449         
6450 2004-07-24  Havoc Pennington  <hp@redhat.com>
6451
6452         * AUTHORS: add some people, not really comprehensively, let me
6453         know if I missed you
6454
6455 2004-07-24  Havoc Pennington  <hp@redhat.com>
6456
6457         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6458         Owen
6459
6460         * test/Makefile.am (DIST_SUBDIRS): here also
6461
6462 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6463
6464         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6465         breaking build on Solaris, reported by Farhad Saberi on the ML.
6466
6467         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6468         va_arg invocation to account for integer promotion in the case of
6469         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6470
6471         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6472         _dbus_list_get_first_link, not _dbus_list_get_first.
6473
6474         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6475
6476         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6477         handler functions so that the asserts in _dbus_object_subtree_unref
6478         do not fail.
6479
6480         * dbus/dbus-transport-unix.c (do_reading):
6481         _dbus_transport_queue_messages return value is of type
6482         dbus_bool_t, not DBusDispatchStatus.
6483         
6484 2004-07-19  David Zeuthen  <david@fubar.dk>
6485
6486         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6487
6488         * bus/dispatch.c:
6489         (check_get_connection_unix_user): Debug says GetProperty; but the
6490         method is called GetConnectionUnixUser
6491         (check_get_connection_unix_process_id): New function
6492         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6493         also call check_get_connection_unix_process_id()
6494         
6495         * bus/driver.c:
6496         (bus_driver_handle_get_connection_unix_process_id): New function,
6497         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6498         interface
6499         
6500         * dbus/dbus-auth.c:
6501         (handle_server_data_external_mech): Set pid from the credentials
6502         obtained from the socket
6503         
6504         * dbus/dbus-connection.c:
6505         (dbus_connection_get_unix_process_id): New function
6506         
6507         * dbus/dbus-connection.h: 
6508         Add prototype for dbus_connection_get_unix_process_id
6509         
6510         * dbus/dbus-transport.c:
6511         (_dbus_transport_get_unix_process_id): New function
6512         
6513         * dbus/dbus-transport.h:
6514         Add prototype for _dbus_transport_get_unix_process_id
6515         
6516 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6517
6518         * dbus/dbus-message.c: Message counter fix, patch by Christian
6519         Hammond <chipx86@gnupdate.org>
6520
6521 2004-07-18  Seth Nickell  <seth@gnome.org>
6522
6523         * python/dbus.py:
6524         * python/dbus_bindings.pyx.in:
6525         * python/tests/test-client.py:
6526
6527         Add dbus.ByteArray and dbus_bindings.ByteArray
6528         types so that byte streams can be passed back.
6529
6530         Give jdahlin the heaps of credit that are so
6531         rightfully his.
6532         
6533 2004-07-12  Seth Nickell  <seth@gnome.org>
6534
6535         * python/dbus.py:
6536
6537         Add message argument to the default object_method_handler
6538         function.
6539         
6540         * python/dbus_bindings.pyx.in:
6541
6542         Automatically return NIL when passed an empty list
6543         (we can't pass back a list since lists are typed
6544         and we don't have any idea what type the the client
6545         intended the list to be... :-( )
6546         
6547 2004-07-10  Seth Nickell  <seth@gnome.org>
6548
6549         * python/examples/Makefile.am:
6550
6551         Fix distcheck breakage caused by new examples.
6552
6553 2004-07-10  Seth Nickell  <seth@gnome.org>
6554
6555         * python/dbus.py:
6556
6557         Add "message" argument to service-side dbus.Object
6558         methods. This will break existing services written
6559         using the python bindings, but will allow extraction
6560         of all the message information (e.g. who its from).
6561
6562         Add improved "object oriented" signal handling/emission.
6563         
6564         * python/examples/example-service.py:
6565
6566         Nix this example.
6567         
6568         * python/examples/example-signal-emitter.py:
6569         * python/examples/example-signal-recipient.py:
6570
6571         Two new examples that show how to emit and receive
6572         signals using the new APIs.
6573         
6574         * python/examples/example-signals.py:
6575         * python/examples/gconf-proxy-service.py:
6576         * python/examples/gconf-proxy-service2.py:
6577
6578         Add "message" argument to service methods.
6579
6580 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6581
6582         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6583         * dbus/bus.c (dbus_bus_get_unix_user)
6584         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6585         method of org.freedesktop.DBus interface.
6586
6587         * bus/dispatch.c: test case
6588
6589 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6590
6591         * python/Makefile.am: switched include directory from glib/ to dbus/
6592         since dbus-glib.h moved
6593  
6594 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6595
6596         * configure.in: prevent building the gcj stuff and libxml loader
6597         since they are broken.
6598
6599 2004-06-20  Havoc Pennington  <hp@redhat.com>
6600
6601         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6602         codes from the dbus error names
6603         
6604         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6605         as dbus/dbus-glib.h and that breakage is now visible due to 
6606         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6607         
6608         * glib/dbus-glib.h: s/gproxy/g_proxy/
6609
6610         * dbus/dbus-shared.h: new header to hold stuff shared with
6611         binding APIs
6612         
6613         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6614         than dbus-errors.h
6615
6616         * glib/dbus-glib.h (dbus_set_g_error): move to
6617         dbus-glib-lowlevel.h
6618
6619         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6620         of stuff to enable this
6621
6622         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6623
6624         * a bunch of other changes with the same basic "separate glib 
6625         bindings from dbus.h" theme
6626         
6627 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6628
6629         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6630
6631         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6632
6633 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6634
6635         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6636         the reply value of the ServiceExists message.
6637
6638 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6639
6640         * python/dbus_bindings.pyx.in: No longer need to parse path
6641         elements and pass them as arrays of strings.  The C API now
6642         accepts plain path strings.
6643         (_build_parsed_path): removed 
6644
6645 2004-06-07  Havoc Pennington  <hp@redhat.com>
6646
6647         * doc/TODO: remove auto-activation item since it's done; sort
6648         items by importance/milestone
6649
6650 2004-06-07  Havoc Pennington  <hp@redhat.com>
6651
6652         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6653         random signature when using REQUIRED_FIELDS (this hack won't work
6654         in the long term)
6655
6656         * dbus/dbus-message.c: change the signature to be a header field,
6657         instead of message->signature special-case string. Incremental
6658         step forward. Then we can fix up code to send the signature in the
6659         message, then fix up code to validate said signature, then fix up
6660         code to not put the typecodes inline, etc.
6661         (load_one_message): don't make up the signature after the fact
6662         (decode_header_data): require signature field for the known
6663         message types
6664
6665         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6666
6667         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6668
6669 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6670
6671         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6672
6673         * mono/Handler.cs: Updated to follow new path argument for
6674         (un-)registering objects.
6675
6676         * mono/example/Makefile.am:
6677         * mono/Makefile.am:
6678         * configure.in: Bumped required version for mono and use new -pkg
6679         syntax for deps
6680
6681 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6682
6683         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6684         registration functions take the path argument as char* instead of
6685         char**.
6686
6687         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6688         split off the path decompostion part of
6689         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6690         warnings. 
6691
6692         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6693         
6694 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6695  
6696         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6697         machine approach.  A state is implemented as a function that
6698         handles incoming events as specified for that state.
6699         
6700         * doc/dbus-specification.xml: Update auth protocol state machine
6701         specification to match implementation.  Remove some leftover
6702         base64 examples.
6703
6704 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6705
6706         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6707         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6708         quiet doxygen.
6709
6710         * Doxyfile.in: remove deprecated options.
6711
6712         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6713         glib/test-thread.h, glib/test-thread-client.c,
6714         glib/test-thread-server.c, glib/test-profile.c,
6715         glib/test-dbus-glib.c: remove these unused files.
6716
6717 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6718
6719         * dbus/dbus-object-tree.c
6720         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6721         non-fallback handlers (bug #684).
6722         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6723         (find_subtree_recurse): report wether the returned subtree is an
6724         exact match or a "fallback" match higher up in the tree.
6725         (object_tree_test_iteration): update test case.
6726
6727 2004-06-01  Seth Nickell  <seth@gnome.org>
6728
6729         * python/dbus_bindings.pyx.in:
6730         * python/tests/test-client.py:
6731
6732         Round off basic type support. Add dicts (yay!), and 
6733         remaining array types.
6734
6735         Make MessageIter more general so it works for dicts too.
6736
6737         Mark all loop variables as C integers.
6738         
6739 2004-05-31  Havoc Pennington  <hp@redhat.com>
6740
6741         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6742         "in" before "out"
6743
6744         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6745
6746         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6747         option that runs the tests, and start filling in some code
6748         including for starters just dumping the interfaces to stdout
6749
6750         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6751
6752         * test/data/valid-introspection-files/lots-of-types.xml: test of
6753         an example introspection file
6754
6755         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6756         "node" (I think...)
6757
6758 2004-05-31  Seth Nickell  <seth@gnome.org>
6759
6760         * python/dbus_bindings.pyx.in:
6761         * python/tests/test-client.py:
6762
6763         Test Suite: 1
6764         Python Bindings: 0
6765
6766         Fix string array memory trashing bug... oops...
6767
6768 2004-05-30  Seth Nickell  <seth@gnome.org>
6769
6770         * python/dbus.py:
6771
6772         Add a nicer-but-less-flexible alternate API for handling 
6773         calls to virtual objects in dbus.ObjectTree.
6774
6775         Screw up the argument order to the dbus.Object constructor
6776         for consistency with dbus.ObjectTree (and to make dbus_methods
6777         optional for future extension)
6778         
6779         * python/examples/Makefile.am:
6780         * python/examples/gconf-proxy-service.py:
6781         * python/examples/gconf-proxy-service2.py:
6782
6783         Alternate implementation of gconf-proxy-service using the
6784         nicer dbus.ObjectTree API.
6785         
6786         * python/examples/example-service.py:
6787         * python/tests/test-server.py
6788
6789         Reverse the argument order to deal with dbus.Object constructor
6790         changes.
6791         
6792 2004-05-30  Seth Nickell  <seth@gnome.org>
6793
6794         * python/examples/example-client.py:
6795         * python/examples/example-service.py:
6796
6797         Take it back. Lists seem to work but they're broken
6798         in the test suite. Make the base examples use
6799         lists (works fine).
6800
6801 2004-05-30  Seth Nickell  <seth@gnome.org>
6802
6803         * python/dbus_bindings.pyx.in:
6804         * python/tests/test-client.py:
6805
6806         Add some more tests and fix errors that crop up.
6807         Unfortunately, currently it seems like marshalling
6808         and unmarshalling of lists is completely broken :-(
6809
6810 2004-05-30  Seth Nickell  <seth@gnome.org>
6811
6812         * python/dbus_bindings.pyx.in:
6813
6814         Add support for ObjectPath type.
6815
6816         * python/dbus.py:
6817
6818         Refactor message handling code to a common function.
6819         
6820         * python/tests/test-client.py:
6821         * python/tests/test-server.py:
6822
6823         Add tests that check to make sure values of all types
6824         can be echoed from a service w/o mangling.
6825         
6826 2004-05-29  Seth Nickell  <seth@gnome.org>
6827
6828         * python/dbus.py:
6829
6830         Add ObjectTree class which allows implementation
6831         of trees of "virtual" objects. Basically the python
6832         wrapper for "register_fallback".
6833         
6834         * python/examples/Makefile.am
6835         * python/examples/gconf-proxy-client.py:
6836         * python/examples/gconf-proxy-service.py:
6837
6838         Implement a simple GConf proxy service that supports
6839         get/set on string and int GConf keys using the ObjectTree.
6840         
6841 2004-05-29  Seth Nickell  <seth@gnome.org>
6842
6843         * python/dbus.py:
6844         * python/examples/example-client.py:
6845         * python/examples/example-service.py:
6846         * python/examples/list-system-services.py:
6847
6848         Add SessionBus, SystemBus and ActivationBus classes
6849         so you don't need to know the special little BUS_TYPE
6850         flag.
6851         
6852 2004-05-29  Havoc Pennington  <hp@redhat.com>
6853
6854         * bus/config-parser.c (process_test_valid_subdir): temporarily
6855         stop testing config parser OOM handling, since expat has issues
6856         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6857
6858         * bus/dbus-daemon-1.1.in: change requested_reply to
6859         send_requested_reply/receive_requested_reply so we can send the
6860         replies, not just receive them.
6861
6862         * bus/config-parser.c: parse the new
6863         send_requested_reply/receive_requested_reply
6864
6865         * bus/policy.c (bus_client_policy_check_can_send): add
6866         requested_reply argument and use it
6867
6868         * bus/bus.c (bus_context_check_security_policy): pass through
6869         requested_reply status to message send check
6870
6871         * bus/system.conf.in: adapt to requested_reply change
6872         
6873 2004-05-28  Havoc Pennington  <hp@redhat.com>
6874
6875         * test/glib/test-service-glib.c (main): remove unused variable
6876
6877         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6878
6879         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6880         from the enum, no longer in use.
6881
6882         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6883         works right.
6884
6885         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6886         whether error_name passed in is a valid error name.
6887
6888 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6889
6890         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6891         OBJECT_PATH and OBJECT_PATH_ARRAY
6892
6893 2004-05-28  Seth Nickell  <seth@gnome.org>
6894
6895         * python/examples/Makefile.am:
6896
6897         Forget to add Makefile.am. Do not pass go.
6898
6899 2004-05-28  Michael Meeks  <michael@ximian.com>
6900
6901         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6902         fix no int64 case.
6903
6904         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6905
6906         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6907         (_dbus_message_iter_get_basic_type_array): impl.
6908         drastically simplify ~all relevant _get methods to use these.
6909         (_dbus_message_iter_append_basic_array),
6910         (dbus_message_iter_append_basic): impl
6911         drastically simplify ~all relevant _append methods to use these.
6912
6913         * dbus/dbus-message-builder.c (parse_basic_type) 
6914         (parse_basic_array, lookup_basic_type): impl.
6915         (_dbus_message_data_load): prune scads of duplicate /
6916         cut & paste coding.
6917
6918         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6919         (_dbus_demarshal_basic_type): implement,
6920         (demarshal_and_validate_len/arg): beef up debug.
6921         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6922
6923 2004-05-27  Seth Nickell  <seth@gnome.org>
6924
6925         * configure.in:
6926         * python/Makefile.am:
6927
6928         Include the example python apps in the tarball.
6929         
6930         * python/examples/list-system-services.py
6931
6932         Add a python new example that fetches the list of services
6933         from the system bus.
6934         
6935 2004-05-27  Seth Nickell  <seth@gnome.org>
6936
6937         * python/dbus.py:
6938         * python/dbus_bindings.pyx.in:
6939
6940         Fix failure to notify that a signal was not handled,
6941         resulted in hung functions.
6942         
6943 2004-05-25  Colin Walters  <walters@redhat.com>
6944
6945         * tools/dbus-monitor.c (main): Monitor all types of messages.
6946
6947 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6948
6949         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6950         which unregisters the object path and disposes the handler.
6951
6952 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
6953  
6954         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6955          
6956         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6957         operands to && so we call dbus_message_iter_next () for the last
6958         argument also.
6959
6960 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6961
6962         * dbus/dbus-object-tree.c
6963         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6964         children even if the requested path isn't registered.
6965         (object_tree_test_iteration): test object_tree_list_registered.
6966
6967         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6968         it to 0.
6969         
6970 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
6971
6972         * doc/TODO: Remove resolved items.
6973
6974         * bus/expirelist.h (struct BusExpireList): remove unused n_items
6975         field.
6976         
6977         * bus/connection.c (bus_connections_expect_reply): Enforce the
6978         per-connection limit on pending replies.
6979         
6980         Patch from Jon Trowbridge <trow@ximian.com>:
6981  
6982         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
6983         up a watch that triggers a config reload when one end of the pipe
6984         becomes readable.
6985         (signal_handler): Instead of doing the config reload in our SIGHUP
6986         handler, just write to the reload pipe and let the associated
6987         watch handle the reload when control returns to the main loop.
6988  
6989         * bus/driver.c (bus_driver_handle_reload_config): Added.
6990         Implements a ReloadConfig method for requesting a configuration
6991         file reload via the bus driver.
6992  
6993 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
6994
6995         * HACKING: Updated release instructions concerning the wiki page.
6996
6997 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
6998
6999         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7000         filter against auth->allowed_mechs; we only add allowed mechs in
7001         record_mechanisms().
7002  
7003         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7004         ALLOWED_MECHS to auth-script format so we can set the list of
7005         allowed mechanisms.
7006  
7007         * data/auth/client-out-of-mechanisms.auth-script: New test to
7008         check client disconnects when it is out of mechanisms to try.
7009  
7010         * dbus/dbus-auth.c (process_command): Remove check for lines
7011         longer that 1 MB; we only buffer up maximum 16 kB.
7012  
7013         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7014         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7015         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7016         assume there might be unused bytes.
7017  
7018         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7019         client-out-of-mechs, it is handled in process_reject(). Move check
7020         for max failures to send_rejected(), as it's a server-only thing.
7021
7022         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7023         send_auth(), send_data(), send_rejected(), send_error(),
7024         send_ok(), send_begin() and send_cancel().
7025
7026 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7027
7028         Remove base64 encoding, replace with hex encoding. Original patch
7029         from trow@ximian.com, added error handling.
7030
7031         * dbus/dbus-string.c (_dbus_string_base64_encode)
7032         (_dbus_string_base64_decode): Remove.
7033         (_dbus_string_hex_decode): Add end_return argument so we can
7034         distinguish between OOM and invalid hex encoding.
7035         (_dbus_string_test): Remove base64 tests and add test case for
7036         invalid hex.
7037
7038         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7039         Replace base64 with hex.
7040
7041         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7042         for invalid hex encoded data in auth protocol.
7043
7044 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7045
7046         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7047         leak.
7048
7049 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7050
7051         * mono/dbus-sharp.dll.config.in: Added for GAC
7052         * mono/dbus-sharp.snk: Added for GAC
7053         * mono/Assembly.cs.in: Added for GAC
7054         * mono/Makefile.am: Changes for GAC installation        
7055         * configure.in: Added refs for dbus-sharp.dll.config.in and
7056         Assembly.cs.in. More fixes for mono testing
7057         * mono/example/Makefile.am: Changed var to CSC
7058         * Makefile.am: Changed flag name to DBUS_USE_CSC
7059
7060 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7061
7062         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7063         * mono/doc/*: Added documentation framework
7064         * configure.in: Added monodoc check
7065         * README: Added description of mono configure flags
7066
7067 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7068
7069         * doc/dbus-specification.xml: Added a "Required" column to the 
7070         header fields table and changed the "zero or more" verbage in
7071         the above paragraph to read "The header must contain the required 
7072         named header fields and zero or more of the optional named header 
7073         fields".
7074         * test/data/invalid-messages/*.message: Added the required PATH 
7075         named header field to the tests so that they don't fail on 
7076         'Missing path field'
7077
7078 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7079
7080         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7081         the stack by implicitly defining variable and parameter types and
7082         removing the hack of defining C pointers as python objects and later
7083         casting them.
7084
7085 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7086
7087         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7088
7089 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7090
7091         * mono/DBusType/Dict.cs: Handle empty dicts
7092         * mono/DBusType/Array.cs: Handle empty arrays
7093         * mono/Arguments.cs: Handle empty arguments
7094
7095 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7096
7097         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7098         field
7099
7100 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7101
7102         * test/data/valid-messages/standard-*.message: Update message
7103         test scripts to new header field names.
7104
7105 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7106
7107         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7108         overflow to times_we_did_each_thing array which would chop off the
7109         first character of the failure_dir string. Increased the size of
7110         the array to 7 to reflect the number of random mutation functions
7111         we have.
7112
7113 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7114
7115         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7116         unix_server->watch here, it is unreffed in disconnect.
7117         (_dbus_server_new_for_tcp_socket): convert NULL host to
7118         "localhost" here so we don't append NULL to address.
7119         
7120         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7121         various addresses, including tcp with no explicit host.
7122
7123 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7124
7125         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7126         fix incorrect setting of .name_offset in the HeaderField (it was
7127         off by two bytes, positioned right after the name and typecode)
7128
7129         * bus/bus.c (bus_context_new, bus_context_unref): test before
7130         calling dbus_server_free_data_slot and _dbus_user_database_unref
7131         in case of an error.
7132
7133         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7134         by libdbus-gtool.
7135
7136 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7137
7138         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7139         _dbus_poll() instead of select().
7140
7141 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7142
7143         * bus/main.c (signal_handler): Reload the configuration files
7144         on SIGHUP.
7145         (main): Set up our SIGHUP handler.
7146
7147         * bus/bus.c (struct BusContext): Store the config file, user and
7148         fork flag in the BusContext.
7149         (process_config_first_time_only): Added.  Contains the code
7150         (previously in bus_context_new) for setting up the BusContext from
7151         the BusConfigParser that should only be run the first time the
7152         config files are read.
7153         (process_config_every_time): Added.  Contains the code (previously
7154         in bus_context_new) for setting up the BusContext from the
7155         BusConfigParser that should be run every time the config files are
7156         read.
7157         (load_config): Added.  Builds a BusConfigParser from the config
7158         files and passes the resulting structure off to
7159         process_config_first_time_only (assuming this is the first time)
7160         and process_config_every_time.
7161         (bus_context_new): All of the config-related code has been moved
7162         to process_config_first_time_only and process_config_every_time.
7163         Now this function just does the non-config-related initializations
7164         and calls load_config.
7165         (bus_context_reload_config): Added.
7166
7167 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7168
7169         * bus/driver.c (bus_driver_handle_get_service_owner):
7170         implement a GetServiceOwner method.
7171         * doc/dbus-specification.xml: document it.
7172         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7173         
7174         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7175         implement, using the bus GetServiceOwner method.
7176
7177         * test/glib/test-dbus-glib.c:
7178         use dbus_gproxy_new_for_service_owner so that we can receive the
7179         signal. 
7180
7181 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7182
7183         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7184         dbus/dbus-message.c, dbus/dbus-protocol.h
7185         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7186
7187         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7188         dbus/dbus-message.c, dbus/dbus-protocol.h
7189         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7190
7191         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7192         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7193         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7194
7195         * doc/dbus-specification.xml (Header Fields Table):
7196         s/SERVICE/DESTINATION
7197         s/SENDER_SERVICE/SENDER
7198
7199
7200 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7201
7202         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7203         a few seconds.
7204
7205 2004-04-13  Michael Meeks  <michael@ximian.com>
7206
7207         * glib/dbus-gobject.c (handle_introspect): split out
7208         (introspect_properties): this.
7209         (handle_introspect): implement this.
7210
7211         * test/glib/Makefile.am: use the absolute path so the bus
7212         daemon's chdir ("/") doesn't kill us dead.
7213
7214         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7215
7216 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7217
7218         * bus/config-parser.c (struct BusConfigParser): Added
7219         included_files field.
7220         (seen_include): Added.  Checks whether or not a file has already
7221         been included by any parent BusConfigParser.
7222         (bus_config_parser_new): Copy the parent's included_files.
7223         (include_file): Track which files have been included, and fail on
7224         circular inclusions.
7225         (process_test_valid_subdir): Changed printf to report if we are
7226         testing valid or invalid conf files.
7227         (all_are_equiv): Changed printf to be a bit clearer about
7228         what we are actually doing.
7229         (bus_config_parser_test): Test invalid configuration files.
7230
7231 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7232
7233         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7234         argument.  If non-null, the newly-constructed BusConfigParser will
7235         be initialized with the parent's BusLimits instead of the default
7236         values.
7237         (include_file): When including a config file, pass in
7238         the current parser as the parent and then copy the BusLimits
7239         from the included BusConfigParser pack to the current parser.
7240         (process_test_valid_subdir): Renamed from process_test_subdir.
7241         (process_test_equiv_subdir): Added.  Walks through a directory,
7242         descending into each subdirectory and loading the config files
7243         it finds there.  If any subdirectory contains two config files
7244         that don't produce identical BusConfigParser structs, fail.
7245         For now, the BusConfigParser's BusPolicies are not compared.
7246         (bus_config_parser_test): Call both process_test_valid_subdir and
7247         process_test_equiv_subdir.
7248
7249         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7250         argument and pass it along to the call to bus_config_parser_new.
7251         Also made a few small changes to allow this code to compile.
7252
7253         * bus/config-loader-expat.c (bus_config_load): Take a parent
7254         argument and pass it along to the call to bus_config_parser_new.
7255
7256         * bus/bus.c (bus_context_new): Load the config file
7257         with a NULL parent argument.
7258
7259 2004-03-29  Michael Meeks  <michael@ximian.com>
7260
7261         * glib/dbus-gobject.c (introspect_properties): split
7262         out, fix mangled 'while' flow control.
7263         (introspect_signals): implement.
7264         (handle_introspect): update.
7265
7266 2004-03-29  Michael Meeks  <michael@ximian.com>
7267
7268         * glib/dbus-gobject.c (set_object_property): split out / 
7269         re-work, use the property type, and not the message type(!)
7270         (get_object_property): ditto.
7271
7272         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7273         (dbus_gvalue_marshal): make this code re-usable, needed
7274         for signals too, also on both proxy and server side.
7275         Re-write for more efficiency / readability.
7276
7277 2004-03-29  Michael Meeks  <michael@ximian.com>
7278
7279         * dbus/dbus-message.c
7280         (dbus_message_new_error_printf): impl.
7281
7282         * dbus/dbus-connection.c
7283         (dbus_connection_unregister_object_path): fix warning.
7284
7285         * configure.in: fix no-mono-installed situation.
7286
7287 2004-03-27  Havoc Pennington  <hp@redhat.com>
7288
7289         Patch from Timo Teräs:
7290         
7291         * tools/dbus-send.c (main): if --print-reply, assume type is
7292         method call; support boolean type args
7293         
7294         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7295         bunch of memleak and logic bugs
7296         
7297 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7298
7299         * mono/Arguments.cs:
7300         * mono/Introspector.cs:
7301         * mono/Handler.cs:
7302         * mono/InterfaceProxy.cs:
7303         * mono/Message.cs
7304         * mono/ProxyBuilder.cs:
7305         * mono/Service.cs:
7306         Added InterfaceProxy class to avoid building proxies for every
7307         object.
7308
7309         * dbus-message.h:
7310         * dbus-message.c (dbus_message_append_args_valist)
7311         (dbus_message_iter_get_object_path)
7312         (dbus_message_iter_get_object_path_array)
7313         (dbus_message_iter_append_object_path)
7314         (dbus_message_iter_append_object_path_array):
7315         Added object_path iter functions to handle OBJECT_PATH arguments
7316         
7317 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7318
7319         First checkin of mono bindings.
7320         * configure.in:
7321         * Makefile.am:
7322         Build stuff for the bindings
7323         * dbus-sharp.pc.in: Added for pkgconfig
7324         
7325 2004-03-21  Havoc Pennington  <hp@redhat.com>
7326
7327         * test/test-service.c (main): remove debug spew
7328
7329 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7330
7331         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7332         arrays
7333
7334         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7335         (dbus_message_iter_init_array_iterator)
7336         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7337         indicate whether the iterator is empty
7338
7339         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7340         warnings
7341
7342 2004-03-19  Havoc Pennington  <hp@redhat.com>
7343
7344         * NEWS: 0.21 updates
7345
7346         * configure.in: 0.21
7347
7348         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7349         
7350         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7351         you don't need pyrex to make dist
7352
7353         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7354         sources; run moc
7355         
7356 2004-03-18  Richard Hult  <richard@imendio.com>
7357
7358         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7359         (dbus_message_set_auto_activation): Add doxygen docs.
7360
7361 2004-03-16  Richard Hult  <richard@imendio.com>
7362
7363         * bus/activation.c: (bus_activation_service_created),
7364         (bus_activation_send_pending_auto_activation_messages),
7365         (bus_activation_activate_service):
7366         * bus/activation.h:
7367         * bus/dispatch.c: (bus_dispatch),
7368         (check_nonexistent_service_auto_activation),
7369         (check_service_auto_activated),
7370         (check_segfault_service_auto_activation),
7371         (check_existent_service_auto_activation), (bus_dispatch_test):
7372         * bus/driver.c: (bus_driver_handle_activate_service):
7373         * bus/services.c: (bus_registry_acquire_service):
7374         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7375         (dbus_message_get_auto_activation):
7376         * dbus/dbus-message.h:
7377         * dbus/dbus-protocol.h: Implement auto-activation.
7378         
7379         * doc/dbus-specification.xml: Add auto-activation to the spec.
7380
7381 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7382
7383         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7384         fix a bug with CUSTOM types.
7385
7386         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7387         a unit test for this bug (used to fail).
7388
7389 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7390
7391         * bus/activation.c:
7392         (babysitter_watch_callback): notify all pending activations waiting for
7393           the same exec that the activation failed.
7394         (bus_activation_activate_service): shortcut the activation if we 
7395           already waiting for the same executable to start up.
7396
7397 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7398
7399         * bus/activation.c: 
7400         - Added service file reloading. 
7401           Each service files directory is kept in an hash table in 
7402           BusActivation and each BusActivationEntry knows what .service-file it
7403           was read from. So when you try to activate a service the bus will 
7404           check if it's been updated, removed or if new .service-files has 
7405           been installed.
7406         - Test code at the bottom for the service file reloading.
7407         * bus/test-main.c: (main):
7408         * bus/test.h:
7409         - added service reloading test.
7410         * dbus/dbus-sysdeps.c: 
7411         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7412
7413 2004-03-08  Michael Meeks  <michael@ximian.com>
7414
7415         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7416         bail immediately if disconnected, to avoid busy loop.
7417
7418         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7419         cleanup cut/paste/inefficiency.
7420
7421 2004-03-01  David Zeuthen  <david@fubar.dk>
7422
7423         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7424         bug where args were used twice. This bug resulted in a segfault
7425         on a Debian/PPC system when starting the messagebus daemon. Include
7426         dbus-sysdeps.h for DBUS_VA_COPY
7427
7428         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7429
7430         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7431         appropriate va_copy implementation. From GLib
7432         
7433 2004-02-24  Joe Shaw  <joe@ximian.com>
7434
7435         * bus/services.c (bus_registry_acquire_service): We need to pass
7436         in the service name to dbus_set_error() to prevent a crash.
7437
7438 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7439
7440         * AUTHORS: Reveal my True identity.
7441
7442 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7443
7444         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7445         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7446
7447 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7448
7449         * doc/TODO: Added not about better error check of configuration files.
7450
7451 2003-12-02  Richard Hult  <richard@imendio.com>
7452
7453         * Update AFL version to 2.0 throughout the source files to reflect
7454         the update that was done a while ago.
7455
7456 2003-12-02  Richard Hult  <richard@imendio.com>
7457
7458         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7459         wrote_dict_key to FALSE on the iter that the dict is appended to,
7460         just like when appending other types. Fixes a bug where a dict
7461         couldn't be put inside a dict.
7462         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7463         (message_iter_test, _dbus_message_test): Add test case for dict
7464         inside dict.
7465
7466 2003-12-01  David Zeuthen  <david@fubar.dk>
7467
7468         * python/dbus.py: Add the actual message when calling the reciever
7469         of a signal such that parameters can be inspected. Add the method
7470         remove_signal_receiver
7471         
7472 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7473
7474         * bus/*.[ch]:
7475         * dbus/*.[ch]:
7476         * glib/*.[ch]: Made ref functions return the pointer
7477
7478 2003-11-25  Zack Rusin  <zack@kde.org>
7479
7480         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7481
7482         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7483         wrappers,
7484
7485         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7486         the Integrator and to better fit with the server,
7487
7488 2003-11-24  Zack Rusin  <zack@kde.org>
7489
7490         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7491         the integrator handles it now
7492
7493         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7494         since QTimer wasn't really meant to be used the way DBusTimeout is
7495
7496 2003-11-24  Zack Rusin  <zack@kde.org>
7497
7498         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7499         Integrator class which integrates D-BUS with the Qt event loop,
7500
7501         * qt/connection.h, qt/connection.cpp: Move all the code which
7502         was dealing with D-BUS integration to the Integrator class,
7503         and start using Integrator,
7504
7505 2003-11-23  Zack Rusin  <zack@kde.org>
7506
7507         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7508         wrapper
7509
7510         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7511         switching namespaces to DBusQt, reworking the class,
7512
7513         * Makefile.cvs: switching dependencies so that it matches KDE 
7514         schematics,
7515         
7516         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7517         the library
7518
7519 2003-11-19  Havoc Pennington  <hp@redhat.com>
7520
7521         * NEWS: update
7522
7523         * configure.in: bump version to 0.20
7524
7525         * configure.in (have_qt): add yet another place to look for qt
7526         (someone hand trolltech a .pc file...)
7527
7528 2003-11-01  Havoc Pennington  <hp@redhat.com>
7529
7530         * doc/dbus-specification.xml: add state machine docs on the auth
7531         protocol; just a first draft, I'm sure it's wrong.      
7532
7533 2003-10-28  David Zeuthen  <david@fubar.dk>
7534
7535         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7536         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7537         
7538 2003-10-28  Havoc Pennington  <hp@redhat.com>
7539
7540         * dbus/dbus-message.c (get_next_field): delete unused function
7541
7542 2003-10-28  Havoc Pennington  <hp@redhat.com>
7543
7544         * bus/expirelist.c (do_expiration_with_current_time): detect
7545         failure of the expire_func due to OOM
7546
7547         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7548
7549         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7550         NoReply error that's now created by the bus when the service exits
7551
7552 2003-10-28  Havoc Pennington  <hp@redhat.com>
7553
7554         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7555         tests for set_path, set_interface, set_member, etc.
7556
7557         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7558
7559         * dbus/dbus-message.c (set_string_field): always just delete and
7560         re-append the field; accept NULL for deletion
7561         (re_align_fields_recurse): reimplement
7562         
7563 2003-10-26  Havoc Pennington  <hp@redhat.com>
7564
7565         * dbus/dbus-connection.c: fix docs to properly describe the
7566         disconnected message
7567         (_dbus_connection_notify_disconnected): remove this function; 
7568         we can't synchronously add the disconnected message, we have to 
7569         do it after we've queued any remaining real messages
7570         (_dbus_connection_get_dispatch_status_unlocked): queue the
7571         disconnect message only if the transport has finished queueing all
7572         its real messages and is disconnected.
7573         (dbus_connection_disconnect): update the dispatch status here
7574
7575 2003-10-22  Havoc Pennington  <hp@redhat.com>
7576
7577         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7578
7579         * bus/connection.c (bus_transaction_send_from_driver): set the
7580         destination to the connection's base service
7581
7582 2003-10-20  Havoc Pennington  <hp@redhat.com>
7583
7584         hmm, make check is currently not passing.
7585         
7586         * doc/dbus-specification.xml: add requirement that custom type
7587         names follow the same rules as interface names.
7588
7589         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7590         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7591         'map'
7592
7593         * doc/dbus-specification.xml: update type codes to match
7594         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7595         CUSTOM. Add type OBJECT_PATH to the spec.
7596
7597 2003-10-17  Havoc Pennington  <hp@redhat.com>
7598
7599         * bus/driver.c (create_unique_client_name): use "." as separator
7600         in base service names instead of '-'
7601
7602         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7603         byte at the end of the string
7604
7605         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7606         optimization macros since string validation seems to be a slow
7607         point.
7608         
7609         * doc/dbus-specification.xml: restrict valid
7610         service/interface/member/error names. Add test suite code for the
7611         name validation.
7612
7613         * dbus/dbus-string.c: limit service/interface/member/error names 
7614         to [0-9][A-Z][a-z]_
7615
7616         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7617         format arg to verbose spew
7618
7619         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7620         memory, return instead of g_error
7621
7622         * test/test-service.c (path_message_func): support emitting a
7623         signal on request
7624
7625         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7626         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7627         assuming the activation bus was the session bus so that services
7628         started manually will still register.
7629         (init_connections_unlocked): fix so that in OOM situation we get
7630         the same semantics when retrying the function
7631         
7632         * test/test-service.c (main): change to use path registration, to
7633         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7634         than DBUS_BUS_SESSION
7635
7636 2003-10-16  Havoc Pennington  <hp@redhat.com>
7637
7638         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7639
7640         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7641         coverage of the tests
7642         (coverage-report.txt): don't move the .da and .bbg files around
7643
7644 2003-10-16  Havoc Pennington  <hp@redhat.com>
7645
7646         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7647         to put there
7648
7649 2003-10-16  Havoc Pennington  <hp@redhat.com>
7650
7651         * bus/connection.c (bus_pending_reply_expired): either cancel or
7652         execute, not both
7653         (bus_connections_check_reply): use unlink, not remove_link, as we
7654         don't want to free the link; fixes double free mess
7655
7656         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7657         where no reply was received
7658
7659         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7660         fix a refcount leak
7661
7662         * bus/signals.c (match_rule_matches): add special cases for the
7663         bus driver, so you can match on sender/destination for it.
7664
7665         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7666         DBUS_PRINT_BACKTRACE is set
7667
7668         * dbus/dbus-internals.c: add pid to assertion failure messages
7669
7670         * dbus/dbus-connection.c: add message type code to the debug spew
7671
7672         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7673         sender=foo not service=foo
7674
7675         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7676         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7677         DBUS_ACTIVATION_ADDRESS instead
7678
7679         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7680         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7681
7682         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7683         context struct
7684
7685         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7686         (dbus_message_iter_get_object_path_array): new function (half
7687         finished, disabled for the moment)
7688         
7689         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7690         DBUS_MESSAGE_TYPE_ERROR
7691
7692         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7693         avoid redirecting stderr to /dev/null
7694         (babysit): close stdin if not doing the "exit_with_session" thing
7695
7696         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7697         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7698         stdout/stdin, so things don't get confused
7699         
7700         * bus/system.conf.in: fix to allow replies, I modified .conf
7701         instead of .conf.in again.
7702
7703 2003-10-14  David Zeuthen  <david@fubar.dk>
7704
7705         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7706         argtype to arg_type when raising unknown arg type exception.
7707         Changed type list to reflect the changes in dbus-protocol.h so 
7708         the bindings actually work.
7709
7710 2003-10-14  Havoc Pennington  <hp@redhat.com>
7711
7712         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7713         to have a bug keeping it from outputting the .da files sometimes
7714         (string_get_string): don't append garbage nul bytes to the string.
7715
7716 2003-10-15  Seth Nickell  <seth@gnome.org>
7717
7718         * python/Makefile.am:
7719
7720         Include dbus_h_wrapper.h in the dist tarball.
7721
7722 2003-10-14  Havoc Pennington  <hp@redhat.com>
7723
7724         * bus/bus.c (bus_context_check_security_policy): revamp this to
7725         work more sanely with new policy-based requested reply setup
7726
7727         * bus/connection.c (bus_transaction_send_from_driver): set bus
7728         driver messages as no reply
7729
7730         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7731         requested_reply attribute on allow/deny rules
7732
7733         * bus/system.conf: add <allow requested_reply="true"/>
7734
7735         * bus/driver.c (bus_driver_handle_message): fix check for replies
7736         sent to the bus driver, which was backward. How did this ever work
7737         at all though? I think I'm missing something.
7738
7739         * dbus/dbus-message.c (decode_header_data): require error and
7740         method return messages to have a reply serial field to be valid
7741         (_dbus_message_loader_queue_messages): break up this function;
7742         validate that reply serial and plain serial are nonzero; 
7743         clean up the OOM/error handling.
7744         (get_uint_field): don't return -1 from this
7745         (dbus_message_create_header): fix signed/unsigned bug
7746
7747         * bus/connection.c (bus_connections_expect_reply): save serial of
7748         the incoming message, not reply serial
7749
7750 2003-10-14  Havoc Pennington  <hp@redhat.com>
7751
7752         * bus/connection.c: implement pending reply tracking using
7753         BusExpireList
7754
7755         * bus/bus.c (bus_context_check_security_policy): verify that a
7756         reply is pending in order to allow a reply to be sent. Deny 
7757         messages of unknown type.
7758
7759         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7760
7761         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7762         (bus_context_get_reply_timeout): new
7763
7764 2003-10-13  Seth Nickell  <seth@gnome.org>
7765
7766         * python/Makefile.am:
7767
7768         Pass "make distcheck": remove a couple files from DIST_FILES
7769         that weren't included in the final version.
7770
7771 2003-10-12  Havoc Pennington  <hp@pobox.com>
7772
7773         Added test code that 1) starts an actual bus daemon and 2) uses
7774         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7775         more testing possible, but this is the basic framework.
7776         
7777         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7778         empty proxy lists from the proxy list hash
7779
7780         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7781         couple of return_if_fail checks
7782
7783         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7784         to allocate, so everything is cleared to NULL as it should be.
7785
7786         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7787         source as data to dbus_connection_set_timeout_functions() as the 
7788         timeout functions expected
7789
7790         * test/glib/run-test.sh: add a little script to start up a message
7791         bus and run tests using it
7792
7793         * tools/dbus-launch.1: updates
7794
7795         * tools/dbus-launch.c (main): add --config-file option
7796
7797         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7798         that could never be reached.
7799
7800         * dbus/dbus-message.c (dbus_message_new_method_return) 
7801         (dbus_message_new_error, dbus_message_new_signal): set the
7802         no-reply-expected flag on all these. Redundant, but may
7803         as well be consistent.
7804
7805 2003-10-11  Havoc Pennington  <hp@pobox.com>
7806
7807         * test/decode-gcov.c (function_solve_graph): make broken block
7808         graph a nonfatal error since it seems to be broken. Need to debug
7809         this.
7810
7811         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7812         can't just check type > INVALID < LAST anymore
7813
7814         * dbus/dbus-message.c (dbus_message_get_signature): new function
7815         (dbus_message_has_signature): new function
7816         (struct DBusMessage): add signature field (right now it isn't sent
7817         over the wire, just generated on the fly)
7818         (dbus_message_copy): copy the signature, and init strings to
7819         proper length to avoid some reallocs
7820         (dbus_message_iter_init_array_iterator): return void, since it
7821         can't fail
7822         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7823         (_dbus_message_loader_queue_messages): add silly temporary hack to
7824         fill in message->signature on load
7825
7826         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7827         characters, so they are relatively human-readable.
7828
7829 2003-10-11  Havoc Pennington  <hp@pobox.com>
7830
7831         * dbus/dbus-message.c (_dbus_message_test): add more test
7832         coverage, but #if 0 for now since they uncover a bug 
7833         not fixed yet; I think in re_align_field_recurse()
7834         (re_align_field_recurse): add FIXME about broken assertion
7835
7836         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7837
7838         * bus/connection.c: share a couple code bits with expirelist.c
7839
7840         * bus/expirelist.h, bus/expirelist.c: implement a generic
7841         expire-items-after-N-seconds facility, was going to share between
7842         expiring connections and replies, decided not to use for expiring
7843         connections for now.
7844
7845         * COPYING: include AFL 2.0 (still need to change all the file headers)
7846
7847 2003-10-09  Havoc Pennington  <hp@redhat.com>
7848
7849         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7850         gcc 3.3. Not that we do anything about it yet.
7851
7852         * bus/signals.c (bus_match_rule_parse): impose max length on the
7853         match rule text
7854
7855         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7856
7857 2003-10-09  Havoc Pennington  <hp@redhat.com>
7858
7859         Make matching rules theoretically work (add parser).
7860         
7861         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7862         the case where destination is explicitly specified as bus driver
7863         and someone else is eavesdropping.
7864         
7865         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7866         definition of eavesdropping and assertion
7867
7868         * tools/dbus-send.c (main): use dbus_message_type_from_string
7869
7870         * bus/signals.c (bus_match_rule_parse): implement
7871
7872         * dbus/dbus-message.c (dbus_message_type_from_string): new
7873
7874         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7875
7876 2003-10-02  Havoc Pennington  <hp@pobox.com>
7877
7878         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7879         dbus_gproxy_oneway_call
7880
7881         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7882         (dbus_server_setup_with_g_main): fix to allow calling them more
7883         than once on the same args
7884         (dbus_bus_get_with_g_main): new function
7885
7886 2003-10-02  Havoc Pennington  <hp@redhat.com>
7887
7888         * doc/dbus-tutorial.xml: write some stuff
7889
7890 2003-09-29  Havoc Pennington  <hp@pobox.com>
7891
7892         * configure.in: split checks for Doxygen from XML docs, check for
7893         xmlto
7894
7895         * doc/Makefile.am: XML-ify all the docs, and add a blank
7896         dbus-tutorial.xml
7897
7898 2003-09-29  Havoc Pennington  <hp@pobox.com>
7899
7900         * Merge dbus-object-names branch. To see the entire patch 
7901         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7902         it's huuuuge though.
7903         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7904         
7905 2003-09-28  Havoc Pennington  <hp@pobox.com>
7906
7907         * HACKING: update to reflect new server
7908
7909 2003-09-26  Seth Nickell  <seth@gnome.org>
7910
7911         * python/dbus.py:
7912         * python/examples/example-signals.py:
7913
7914         Start implementing some notions of signals. The API
7915         is really terrible, but they sort of work (with the
7916         exception of being able to filter by service, and to
7917         transmit signals *as* a particular service). Need to
7918         figure out how to make messages come from the service
7919         we registered :-(
7920         
7921         * python/dbus_bindings.pyx.in:
7922
7923         Removed duplicate message_handler callbacks.
7924         
7925 2003-09-25  Havoc Pennington  <hp@redhat.com>
7926
7927         * bus/session.conf.in: fix my mess
7928
7929 2003-09-25  Havoc Pennington  <hp@pobox.com>
7930
7931         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7932
7933 2003-09-25  Seth Nickell  <seth@gnome.org>
7934
7935         * python/examples/example-service.py:
7936
7937         Johan notices complete wrong code in example-service, but
7938         completely wrong in a way that works exactly the same (!).
7939         Johan is confused, how could this possibly work? Example
7940         code fails to serve purpose of making things clear.
7941         Seth fixes.
7942
7943 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7944
7945         * doc/dbus-specification.sgml: don't require header fields
7946         to be 4-byte aligned and specify that fields should be
7947         distinguished from padding by the fact that zero is not
7948         a valid field name.
7949         
7950         * doc/TODO: remove re-alignment item and add item to doc
7951         the OBJECT_PATH type.
7952         
7953         * dbus/dbus-message.c:
7954         (HeaderField): rename the original member to value_offset
7955         and introduce a name_offset member to keep track of where
7956         the field actually begins.
7957         (adjust_field_offsets): remove.
7958         (append_int_field), (append_uint_field),
7959         (append_string_field): don't align the start of the header
7960         field to a 4-byte boundary.
7961         (get_next_field): impl finding the next marhsalled field
7962         after a given field.
7963         (re_align_field_recurse): impl re-aligning a number of
7964         already marshalled fields.
7965         (delete_field): impl deleting a field of any type and
7966         re-aligning any following fields.
7967         (delete_int_or_uint_field), (delete_string_field): remove.
7968         (set_int_field), (set_uint_field): no need to re-check
7969         that we have the correct type for the field.
7970         (set_string_field): ditto and impl re-aligning any
7971         following fields.
7972         (decode_header_data): update to take into account that
7973         the fields aren't 4-byte aligned any more and the new
7974         way to distinguish padding from header fields. Also,
7975         don't exit when there is too much header padding.
7976         (process_test_subdir): print the directory.
7977         (_dbus_message_test): add test to make sure a following
7978         field is re-aligned correctly after field deletion.
7979         
7980         * dbus/dbus-string.[ch]:
7981         (_dbus_string_insert_bytes): rename from insert_byte and
7982         allow the insert of multiple bytes.
7983         (_dbus_string_test): test inserting multiple bytes.
7984
7985         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7986         warning note to docs about having to re-align any
7987         marshalled values following the string.
7988         
7989         * dbus/dbus-message-builder.c:
7990         (append_string_field), (_dbus_message_data_load):
7991         don't align the header field.
7992         
7993         * dbus/dbus-auth.c: (process_test_subdir): print the
7994         directory.
7995         
7996         * test/break-loader.c: (randomly_add_one_byte): upd. for
7997         insert_byte change.
7998         
7999         * test/data/invalid-messages/bad-header-field-alignment.message:
8000         new test case.
8001         
8002         * test/data/valid-messages/unknown-header-field.message: shove
8003         a dict in the unknown field.
8004
8005 2003-09-25  Seth Nickell  <seth@gnome.org>
8006
8007         * python/dbus.py:
8008         * python/dbus_bindings.pyx.in:
8009
8010         Handle return values.
8011         
8012         * python/examples/example-client.py:
8013         * python/examples/example-service.py:
8014
8015         Pass back return values from the service to the client.
8016         
8017 2003-09-24  Seth Nickell  <seth@gnome.org>
8018
8019         * python/dbus.py:
8020
8021         Connect Object methods (when you are sharing an object) up... pass
8022         in a list of methods to be shared. Sharing all the methods just
8023         worked out too weird. You can now create nice Services over the
8024         DBus in Python. :-)
8025         
8026         * python/dbus_bindings.pyx.in:
8027
8028         Keep references to user_data tuples passed into C functions so 
8029         Python doesn't garbage collect on us.
8030
8031         Implement MethodReturn and Error subclasses of Message for creating
8032         DBusMessage's of those types.
8033         
8034         * python/examples/example-client.py:
8035         * python/examples/example-service.py:
8036
8037         Simple example code showing both how create DBus services and objects,
8038         and how to use them.
8039
8040 2003-09-23  Havoc Pennington  <hp@pobox.com>
8041
8042         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8043
8044 2003-09-23  Havoc Pennington  <hp@redhat.com>
8045
8046         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8047         (dbus_gproxy_disconnect_signal): implement
8048         (dbus_gproxy_manager_remove_signal_match): implement
8049         (dbus_gproxy_manager_add_signal_match): implement
8050         (dbus_gproxy_oneway_call): implement
8051
8052 2003-09-23  Havoc Pennington  <hp@pobox.com>
8053
8054         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8055         subclass. This means dropping the transparent thread safety of the
8056         proxy; you now need a separate proxy per-thread, or your own
8057         locking on the proxy. Probably right anyway.
8058         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8059
8060 2003-09-22  Havoc Pennington  <hp@redhat.com>
8061
8062         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8063
8064 2003-09-21  Seth Nickell  <seth@gnome.org>
8065
8066         First checkin of the Python bindings.
8067         
8068         * python/.cvsignore:
8069         * python/Makefile.am:
8070         * python/dbus_bindings.pyx.in:
8071         * python/dbus_h_wrapper.h:
8072
8073         Pieces for Pyrex to operate on, building a dbus_bindings.so
8074         python module for low-level access to the DBus APIs.
8075         
8076         * python/dbus.py:
8077
8078         High-level Python module for accessing DBus objects.
8079
8080         * configure.in:
8081         * Makefile.am:
8082
8083         Build stuff for the python bindings.
8084
8085         * acinclude.m4:
8086
8087         Extra macro needed for finding the Python C header files.
8088
8089 2003-09-21  Havoc Pennington  <hp@pobox.com>
8090
8091         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8092         implementing the proxy manager, didn't get very far.
8093
8094         * dbus/dbus-bus.c (dbus_bus_add_match): new
8095         (dbus_bus_remove_match): new
8096
8097         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8098         path_name argument; adjust the other not-yet-implemented 
8099         gproxy constructors to be what I think they should be.
8100
8101 2003-09-21  Havoc Pennington  <hp@pobox.com>
8102
8103         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8104         by default for message bus connections.
8105
8106         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8107         exit_on_disconnect flag is set and we process the disconnected
8108         signal.
8109         (dbus_connection_set_exit_on_disconnect): new function
8110
8111 2003-09-21  Havoc Pennington  <hp@pobox.com>
8112
8113         Get matching rules mostly working in the bus; only actually
8114         parsing the rule text remains. However, the client side of
8115         "signal connections" hasn't been started, this patch is only the
8116         bus side.
8117         
8118         * dbus/dispatch.c: fix for the matching rules changes
8119         
8120         * bus/driver.c (bus_driver_handle_remove_match)
8121         (bus_driver_handle_add_match): send an ack reply from these
8122         method calls
8123
8124         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8125         arguments, reported by Seth Nickell
8126
8127         * bus/config-parser.c (append_rule_from_element): support
8128         eavesdrop=true|false attribute on policies so match rules 
8129         can be prevented from snooping on the system bus.
8130
8131         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8132         and "destination" in attribute names; fix some docs bugs; 
8133         add eavesdrop=true|false attribute
8134
8135         * bus/driver.c (bus_driver_handle_add_match)
8136         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8137         messages
8138
8139         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8140         rid of broadcast service concept, signals are just always broadcast
8141
8142         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8143         mostly implement matching rules stuff (currently only exposed as signal
8144         connections)
8145
8146 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8147
8148         * doc/dbus-specification.sgml: Change the header field name
8149         to be an enum and update the rest of the spec to reference
8150         the fields using the conventinal name.
8151
8152         * dbus/dbus-protocol.h: update to reflect the spec.
8153
8154         * doc/TODO: add item to remove the 4 byte alignment requirement.
8155         
8156         * dbus/dbus-message.c: Remove the code to generalise the
8157         header/body length and serial number header fields as named
8158         header fields so we can reference field names using the 
8159         protocol values.
8160         (append_int_field), (append_uint_field), (append_string_field):
8161         Append the field name as a byte rather than four chars.
8162         (delete_int_or_uint_field), (delete_string_field): reflect the
8163         fact that the field name and typecode now occupy 4 bytes instead
8164         of 8.
8165         (decode_string_field), (decode_header_data): update to reflect
8166         protocol changes and move the field specific encoding from
8167         decode_string_field() back into decode_header_data().
8168         
8169         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8170         Add utility to aid debugging.
8171         
8172         * dbus/dbus-message-builder.c:
8173         (append_string_field), (_dbus_message_data_load): Update to
8174         reflect protocol changes; Change the FIELD_NAME directive
8175         to HEADER_FIELD and allow it to take the field's conventional
8176         name rather than the actual value.
8177         
8178         * test/data/*/*.message: Update to use HEADER_FIELD instead
8179         of FIELD_NAME; Always align the header on an 8 byte boundary
8180         *before* updating the header length.
8181
8182 2003-09-15  Havoc Pennington  <hp@pobox.com>
8183
8184         * dbus/dbus-pending-call.c: add the get/set object data
8185         boilerplate as for DBusConnection, etc. Use generic object data
8186         for the notify callback.
8187
8188         * glib/dbus-gparser.c (parse_node): parse child nodes
8189
8190         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8191         
8192         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8193         contain functions shared between the convenience lib and the
8194         installed lib
8195
8196         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8197         -export-symbols-regex to the GLib library
8198
8199         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8200         fix the locking in here, and add a default handler for
8201         Introspect() that just returns sub-nodes.
8202
8203 2003-09-14  Havoc Pennington  <hp@pobox.com>
8204
8205         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8206         rather than gfoo consistent
8207
8208         * glib/dbus-gproxy.h: delete for now, move contents to
8209         dbus-glib.h, because the include files don't work right since we
8210         aren't in the dbus/ subdir.
8211         
8212         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8213         (dbus_gproxy_end_call): finish
8214         (dbus_gproxy_begin_call): finish
8215
8216         * glib/dbus-gmain.c (dbus_set_g_error): new
8217
8218         * glib/dbus-gobject.c (handle_introspect): include information
8219         about child nodes in the introspection
8220
8221         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8222         function to help in implementation of introspection
8223
8224         * dbus/dbus-object-tree.c
8225         (_dbus_object_tree_list_registered_and_unlock): new function
8226
8227 2003-09-12  Havoc Pennington  <hp@pobox.com>
8228
8229         * glib/dbus-gidl.h: add common base class for all the foo_info
8230         types
8231
8232         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8233         similar to kdcop
8234
8235         * test/Makefile.am: try test srcdir -ef . in addition to test
8236         srcdir = ., one of them should work (yeah lame)
8237         
8238         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8239         library
8240         
8241         * glib/dbus-gparser.h: make description_load routines return
8242         NodeInfo* not Parser*
8243
8244         * Makefile.am (SUBDIRS): build test dir after all library dirs
8245
8246         * configure.in: add GTK+ detection
8247
8248 2003-09-07  Havoc Pennington  <hp@pobox.com>
8249
8250         * Make Doxygen contented.
8251
8252 2003-09-07  Havoc Pennington  <hp@pobox.com>
8253
8254         * doc/dbus-specification.sgml: more updates
8255
8256 2003-09-06  Havoc Pennington  <hp@pobox.com>
8257
8258         * doc/dbus-specification.sgml: partial updates
8259
8260         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8261         zillionth time; hopefully I edited the right file this time.
8262
8263         * bus/config-parser.c (append_rule_from_element): support
8264         send_type, send_path, receive_type, receive_path
8265
8266         * bus/policy.c: add message type and path to the list of things
8267         that can be "firewalled"
8268
8269 2003-09-06  Havoc Pennington  <hp@pobox.com>
8270
8271         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8272         (dbus_connection_register_object_path): make this not handle
8273         messages to paths below the given path
8274
8275 2003-09-03  Havoc Pennington  <hp@pobox.com>
8276
8277         * test/glib/Makefile.am: add this with random glib-linked test
8278         programs
8279
8280         * glib/Makefile.am: remove the random test programs from here,
8281         leave only the unit tests
8282
8283         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8284         uscore/javacaps conversion, and fix     
8285         (get_object_property, set_object_property): change to .NET
8286         convention for mapping props to methods, set_FooBar/get_FooBar, 
8287         since one language has such a convention we may as well copy it. 
8288         Plus real methods in either getFooBar or get_foo_bar style won't 
8289         collide with this convention.
8290
8291 2003-09-01  Havoc Pennington  <hp@pobox.com>
8292
8293         * glib/dbus-gparser.c: implement
8294
8295         * glib/dbus-gobject.c: start implementing skeletons support
8296
8297         * configure.in: when disabling checks/assert, also define
8298         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8299
8300 2003-09-01  Havoc Pennington  <hp@pobox.com>
8301
8302         * glib/Makefile.am: rearrange a bunch of files and get "make
8303         check" framework set up
8304
8305 2003-08-31  Havoc Pennington  <hp@pobox.com>
8306
8307         * fix build with --disable-tests
8308
8309 2003-08-30  Havoc Pennington  <hp@pobox.com>
8310
8311         * dbus/dbus-connection.c: purge DBusMessageHandler
8312
8313         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8314         use callbacks everywhere
8315
8316 2003-08-30  Havoc Pennington  <hp@pobox.com>
8317
8318         * test/data/valid-config-files/system.d/test.conf: change to 
8319         root for the user so warnings don't get printed
8320
8321         * dbus/dbus-message.c: add dbus_message_get_path,
8322         dbus_message_set_path
8323         
8324         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8325         dispatching to a path
8326
8327         * dbus/dbus-string.c (_dbus_string_validate_path): add
8328
8329         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8330         (_dbus_marshal_object_path): implement
8331
8332         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8333         to contain the path to the target object
8334         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8335         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8336
8337 2003-08-30  Havoc Pennington  <hp@pobox.com>
8338
8339         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8340
8341 2003-08-29  Havoc Pennington  <hp@pobox.com>
8342
8343         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8344         registered
8345         (struct DBusObjectSubtree): shrink this
8346         a lot, since we may have a lot of them
8347         (_dbus_object_tree_free_all_unlocked): implement
8348         (_dbus_object_tree_dispatch_and_unlock): implement
8349
8350 2003-08-29  Havoc Pennington  <hp@pobox.com>
8351
8352         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8353
8354 2003-08-28  Havoc Pennington  <hp@pobox.com>
8355
8356         purge DBusObjectID
8357         
8358         * dbus/dbus-connection.c: port to no ObjectID, create a
8359         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8360
8361         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8362         everything except UnregisterFunction and MessageFunction
8363         
8364         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8365         add DBUS_TYPE_OBJECT_PATH
8366         
8367         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8368         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8369         path-based object IDs
8370
8371 2003-08-25  Havoc Pennington  <hp@pobox.com>
8372
8373         Just noticed that dbus_message_test is hosed, I wonder when I
8374         broke that. I thought make check was passing earlier...
8375         
8376         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8377         container tree, will replace most of dbus-object-registry
8378
8379         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8380         screwup
8381
8382 2003-08-19  Havoc Pennington  <hp@pobox.com>
8383
8384         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8385         (dbus_message_is_error): fix this function
8386
8387         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8388         match
8389
8390         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8391         reflect clarified man page
8392         (bus_client_policy_check_can_send): ditto
8393         
8394         * bus/session.conf.in: fixup
8395
8396         * bus/system.conf.in: fixup
8397
8398 2003-08-18  Havoc Pennington  <hp@redhat.com>
8399
8400         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8401
8402         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8403         dumb bug created earlier (wrong order of args to
8404         decode_header_data())
8405         
8406         * tools/dbus-send.c: port
8407
8408         * tools/dbus-print-message.c (print_message): port
8409
8410         * test/data/*messages: port all messages over
8411         
8412         * dbus/dbus-message-builder.c: support including 
8413         message type
8414         
8415         * bus/driver.c: port over
8416         
8417         * bus/dispatch.c: port over to new stuff
8418
8419         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8420         rename disconnect signal to "Disconnected"
8421
8422 2003-08-17  Havoc Pennington  <hp@pobox.com>
8423
8424         This doesn't compile yet, but syncing up so I can hack on it from
8425         work. What are branches for if not broken code? ;-)
8426         
8427         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8428         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8429         DBUS_HEADER_FIELD_ERROR_NAME
8430         
8431         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8432         for the interface+member pairs
8433         (string_hash): change to use g_str_hash algorithm
8434         (find_direct_function, find_string_function): refactor these to
8435         share most code.
8436         
8437         * dbus/dbus-message.c: port all of this over to support 
8438         interface/member fields instead of name field
8439
8440         * dbus/dbus-object-registry.c: port over
8441         
8442         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8443         from _dbus_string_validate_name
8444
8445         * bus/dbus-daemon-1.1: change file format for the 
8446         <deny>/<allow> stuff to match new message naming scheme
8447
8448         * bus/policy.c: port over
8449
8450         * bus/config-parser.c: parse new format
8451         
8452 2003-08-16  Havoc Pennington  <hp@pobox.com>
8453
8454         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8455         broken assertion
8456
8457         * glib/dbus-gproxy.c: some hacking
8458
8459 2003-08-15  Havoc Pennington  <hp@redhat.com>
8460
8461         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8462
8463         * dbus/dbus-connection.c
8464         (dbus_connection_send_with_reply_and_block): factor out internals;
8465         change to convert any error replies to DBusError instead of 
8466         returning them as a message
8467
8468 2003-08-15  Havoc Pennington  <hp@pobox.com>
8469
8470         * dbus/dbus-connection.c, 
8471         dbus/dbus-pending-call.c: Finish the pending call stuff
8472
8473 2003-08-14  Havoc Pennington  <hp@redhat.com>
8474
8475         * dbus/dbus-pending-call.c: start on new object that will replace
8476         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8477         replies
8478
8479         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8480         with remote interfaces
8481
8482         * dbus/dbus-gidl.c: do the boring boilerplate in here
8483         
8484 2003-08-12  Havoc Pennington  <hp@pobox.com>
8485
8486         * bus/dispatch.c (bus_dispatch): make this return proper 
8487         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8488
8489         * dbus/dbus-errors.c (dbus_set_error): use
8490         _dbus_string_append_printf_valist
8491
8492         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8493         (_dbus_string_append_printf): new
8494
8495         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8496         UNKNOWN_METHOD
8497
8498         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8499         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8500         message is unhandled.
8501
8502 2003-08-11  Havoc Pennington  <hp@pobox.com>
8503
8504         * bus/test.c (client_disconnect_handler): change to return
8505         HANDLED (would have been REMOVE_MESSAGE)
8506
8507         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8508         HANDLED/NOT_YET_HANDLED instead of
8509         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8510         should be used.
8511
8512 2003-08-10  Havoc Pennington  <hp@pobox.com>
8513
8514         * tools/dbus-send.c (main): add --type argument, for now
8515         supporting only method_call and signal types.
8516
8517         * tools/dbus-print-message.c: print message type
8518
8519         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8520         init connection->objects
8521
8522         * doc/dbus-specification.sgml: fix sgml
8523
8524         * bus/*.c: port over to object-instance API changes
8525
8526         * test/test-service.c: ditto
8527         
8528         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8529         name, we will have to fix up the rest of the code to also handle
8530         this
8531         (dbus_message_new): generic message-creation call
8532         (set_string_field): allow appending name field
8533
8534 2003-08-06  Havoc Pennington  <hp@pobox.com>
8535
8536         * dbus/dbus-object-registry.c: implement signal connection 
8537         and dispatch
8538
8539         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8540
8541         * dbus/dbus-internals.c (_dbus_memdup): new function
8542
8543 2003-08-02  Havoc Pennington  <hp@pobox.com>
8544
8545         * dbus/dbus-message.c (dbus_message_get_no_reply)
8546         (dbus_message_set_no_reply): add these and remove
8547         set_is_error/get_is_error
8548
8549         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8550         remove the ERROR flag, since there's now an ERROR type
8551
8552 2003-08-01  Havoc Pennington  <hp@pobox.com>
8553
8554         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8555         implement
8556
8557         * dbus/dbus-message.c (dbus_message_get_type): new function
8558
8559         * doc/dbus-specification.sgml: add "type" byte to messages
8560
8561 2003-08-01  Havoc Pennington  <hp@pobox.com>
8562
8563         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8564         a message type enum to distinguish kinds of message
8565         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8566         that need not be replied to
8567
8568 2003-08-01  Havoc Pennington  <hp@pobox.com>
8569
8570         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8571         (unpack_8_octets): fix no-64-bit-int bug
8572
8573         * dbus/dbus-object-registry.c (validate_id): validate the 
8574         connection ID bits, not just the instance ID.
8575
8576         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8577         the connection-global 33 bits of the object ID
8578
8579         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8580         object ID in the new way
8581
8582         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8583         define server/client/instance bits.
8584
8585 2003-07-30  Havoc Pennington  <hp@pobox.com>
8586
8587         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8588         build
8589
8590 2003-07-13  Havoc Pennington  <hp@pobox.com>
8591
8592         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8593         fields to DBusObjectVTable and DBusObjectInfo
8594
8595 2003-07-12  Havoc Pennington  <hp@pobox.com>
8596
8597         * dbus/dbus-object-registry.c: implement unit test,
8598         fix bugs discovered in process
8599
8600         * dbus/dbus-connection.c: remove handler_table and
8601         register_handler(), add DBusObjectRegistry usage
8602
8603         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8604         (dbus_object_id_set_null): new functions
8605
8606 2003-07-08  Havoc Pennington  <hp@pobox.com>
8607
8608         * dbus/dbus-object.c: implement some of this
8609
8610         * dbus/dbus-object-registry.c
8611         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8612         param
8613         (_dbus_object_registry_new): handle OOM
8614
8615 2003-07-08  Havoc Pennington  <hp@pobox.com>
8616
8617         * dbus/dbus-object.h: sketch out an API for registering objects
8618         with a connection, that allows us to use as little as 24 bytes
8619         per object and lets application code represent an object in 
8620         any conceivable way.
8621
8622         * dbus/dbus-object-registry.c: implement the hard bits of the
8623         DBusConnection aspect of object API. Not yet wired up.
8624         
8625 2003-07-06  Havoc Pennington  <hp@pobox.com>
8626
8627         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8628         (_dbus_marshal_object_id): new
8629         (_dbus_demarshal_object_id): new
8630         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8631         consolidate identical switch cases. Don't conditionalize handling
8632         of DBUS_TYPE_UINT64, need to handle the type always.
8633         (_dbus_marshal_validate_arg): consolidate identical cases, and
8634         handle DBUS_TYPE_OBJECT_ID
8635
8636         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8637
8638         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8639
8640 2003-09-28  Havoc Pennington  <hp@pobox.com>
8641
8642         * real 0.13 release
8643
8644 2003-09-28  Havoc Pennington  <hp@pobox.com>
8645
8646         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8647         to work with Debian db2html
8648
8649 2003-09-28  Havoc Pennington  <hp@pobox.com>
8650
8651         * configure.in: 0.13
8652
8653         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8654         stylesheet-images for benefit of Debian
8655         
8656         Change back to using filesystem-linked sockets for the system
8657         bus, so only root can create the default system bus address.
8658         
8659         * bus/system.conf.in: change to use
8660         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8661
8662         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8663         from here.
8664
8665         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8666         here, and AC_DEFINE DBUS_SYSTEM_PATH
8667
8668 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8669
8670         * doc/TODO:
8671         * doc/busconfig.dtd:
8672         Add busconfig DTD.
8673         
8674 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8675
8676         * doc/dbus-specification.sgml:
8677         Add activation reply values.
8678         
8679 2003-08-05  Havoc Pennington  <hp@redhat.com>
8680
8681         * configure.in: 0.12
8682
8683 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8684
8685         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8686         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8687         (add_watch), (remove_watch), (create_source):
8688         Refcount fds, fixes some reentrancy issues.
8689         
8690 2003-07-30  Havoc Pennington  <hp@redhat.com>
8691
8692         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8693         bus address to be abstract if we have abstract sockets
8694
8695         * NEWS: update
8696
8697 2003-07-28  Havoc Pennington  <hp@redhat.com>
8698
8699         * bus/messagebus.in: fix to avoid processname/servicename 
8700         confusion, from Michael Kearey
8701         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8702         
8703 2003-07-23  Havoc Pennington  <hp@pobox.com>
8704
8705         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8706         fix from Andy Hanton to remove broken "+1"
8707
8708 2003-07-16  Havoc Pennington  <hp@pobox.com>
8709
8710         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8711         babysitter process, as suggested by Thomas Leonard, so 
8712         an "eval `dbus-launch --exit-with-session`" will actually 
8713         return
8714
8715 2003-07-16  Havoc Pennington  <hp@pobox.com>
8716
8717         * configure.in: print out EXPANDED_* variables in the summary at
8718         the end; clean up the code that computes EXPANDED_ variables and
8719         get the ones using exec_prefix right. Should make things work
8720         when you build without --prefix
8721
8722 2003-06-29  Havoc Pennington  <hp@pobox.com>
8723
8724         * mono/Test.cs (class Test): fire up a main loop and run it
8725
8726         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8727         done once, the app has to do it
8728
8729 2003-06-26  Havoc Pennington  <hp@pobox.com>
8730
8731         * mono/Connection.cs: set up connection with the glib main loop
8732
8733 2003-07-01  Havoc Pennington  <hp@redhat.com>
8734
8735         * doc/dbus-specification.sgml: clarify the format of a type code,
8736         change suggested by Jim Blandy
8737
8738 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8739
8740         * doc/Makefile.am:
8741         * tools/Makefile.am: Don't assume srcdir == builddir.
8742
8743         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8744         the allocated block.
8745         (_dbus_memory_test): New function.
8746         * dbus/dbus-test.h: Add _dbus_memory_test ().
8747         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8748
8749         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8750         of %c%c%c%c.
8751         (dbus_message_new): Remove obsolete @todo.
8752
8753         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8754         (_dbus_marshal_set_uint64): Fix comment.
8755
8756         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8757         hardcode FIELD_REPLY_SERIAL.
8758
8759         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8760         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8761
8762         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8763         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8764
8765 2003-06-24  Havoc Pennington  <hp@pobox.com>
8766
8767         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8768
8769 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8770
8771         * configure.in:
8772         * gcj/.cvsignore:
8773         * gcj/Hello.java:
8774         * gcj/Makefile.am:
8775         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8776         * gcj/org/.cvsignore:
8777         * gcj/org/Makefile.am:
8778         * gcj/org/freedesktop/.cvsignore:
8779         * gcj/org/freedesktop/Makefile.am:
8780         * gcj/org/freedesktop/dbus/.cvsignore:
8781         * gcj/org/freedesktop/dbus/Makefile.am:
8782         * gcj/org/freedesktop/dbus/Message.java: (Message),
8783         (Message.Message):
8784         * gcj/org/freedesktop/dbus/natMessage.cc:
8785         Fix the build system.
8786
8787 2003-06-22  Havoc Pennington  <hp@pobox.com>
8788
8789         * mono/Connection.cs: add more bindings
8790
8791         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8792         more than once.
8793
8794 2003-06-22  Havoc Pennington  <hp@pobox.com>
8795
8796         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8797         Start wrapping more stuff.
8798
8799 2003-06-22  Havoc Pennington  <hp@pobox.com>
8800
8801         * mono/Message.cs: implement Message.Wrap() that ensures we only
8802         have a single C# wrapper per DBusMessage, assuming it works which
8803         it probably doesn't.
8804
8805         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8806         (dbus_message_free_data_slot): new
8807         (dbus_message_set_data): new
8808         (dbus_message_get_data): new
8809
8810 2003-06-22  Havoc Pennington  <hp@pobox.com>
8811
8812         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8813         (_dbus_data_slot_allocator_alloc): rework these to keep a
8814         reference count on each slot and automatically manage a global
8815         slot ID variable passed in by address
8816
8817         * bus/bus.c: convert to new dataslot API
8818
8819         * dbus/dbus-bus.c: convert to new dataslot API
8820
8821         * dbus/dbus-connection.c: convert to new dataslot API
8822
8823         * dbus/dbus-server.c: convert to new dataslot API
8824
8825         * glib/dbus-gmain.c: ditto
8826
8827         * bus/test.c: ditto
8828
8829         * bus/connection.c: ditto
8830
8831 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8832
8833         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8834         after the gcj checks so that the correct configuration tags
8835         will be added to libtool.
8836
8837         * dbus-glib-1.pc.in: No need to specify any includes since
8838         dbus-1.pc.in has those.
8839
8840 2003-06-22  Havoc Pennington  <hp@pobox.com>
8841
8842         * mono/*, gcj/*, configure.in, Makefile.am:
8843         Check in makefiles and subdirs for mono and gcj bindings.
8844         Neither binding actually exists, just trying to get through
8845         all the build and other boring bits.
8846
8847 2003-06-21  Philip Blundell  <philb@gnu.org>
8848
8849         * tools/dbus-monitor.1: Updated.
8850
8851         * tools/dbus-send.1: Likewise.
8852
8853 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8854
8855         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8856         for hangup and error after checking read so we won't discard
8857         pending data if both hangup and read are set.
8858
8859 2003-06-19  Philip Blundell  <philb@gnu.org>
8860
8861         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8862
8863         * tools/dbus-send.c: Accept both --system and --session.
8864
8865         * tools/dbus-monitor.c: Same here.
8866
8867 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8868
8869         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8870         from C++ (Patch by Miloslav Trmac).
8871
8872 2003-06-15  Joe Shaw  <joe@assbarn.com>
8873
8874         * configure.in: Check for socklen_t.
8875
8876         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8877
8878         * test/test-segfault.c: Add #include <sys/time.h>
8879
8880         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8881         dbus-launch needs it.
8882
8883 2003-06-09  Havoc Pennington  <hp@redhat.com>
8884
8885         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8886         SUN_LEN, it breaks abstract socket usage
8887
8888         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8889         starts of lines.
8890
8891 2003-06-04  Havoc Pennington  <hp@pobox.com>
8892
8893         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8894         using unix:abstract=/foo, and when listening in a tmpdir
8895         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8896
8897         * dbus/dbus-transport.c (_dbus_transport_open): support
8898         unix:abstract=/foo
8899
8900         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8901         support abstract sockets
8902
8903         * dbus/dbus-transport-unix.c
8904         (_dbus_transport_new_for_domain_socket): support abstract sockets
8905
8906         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8907         toggle as an argument, implement abstract namespace support
8908         (_dbus_listen_unix_socket): ditto
8909
8910         * configure.in: add --enable-abstract-sockets and implement
8911         a configure check for autodetection of the right value.
8912
8913 2003-06-01  Havoc Pennington  <hp@pobox.com>
8914
8915         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8916         in /tmp (though on Linux this will end up being useless,
8917         when we add abstract namespace support)
8918
8919         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8920         subst'ing it
8921
8922 2003-05-28  Colin Walters  <walters@verbum.org>
8923
8924         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8925
8926 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8927
8928         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8929
8930 2003-05-17  Colin Walters  <walters@gnu.org>
8931
8932         * tools/dbus-send.c: Don't exit with an error code if --help was
8933         passed.  Default to using the session bus instead of the system
8934         one.
8935
8936         * tools/dbus-launch.c: Ditto.
8937
8938         * tools/dbus-monitor.c: Ditto.
8939
8940         * tools/dbus-send.1: Update with new arguments.
8941
8942         * tools/dbus-launch.c: Emit code to export variables.  New
8943         arguments -s and -c to specify shell syntax, and a bit of code to
8944         autodetect syntax.  Also, allow specifying a program to run.
8945
8946         * tools/dbus-launch.1: Update with new arguments.
8947
8948         * tools/dbus-send.1: Ditto.
8949
8950         * tools/dbus-monitor.1: Ditto.
8951
8952 2003-05-17  Havoc Pennington  <hp@pobox.com>
8953
8954         * bus/config-parser.c (merge_included): merge in policies from
8955         child configuration file.
8956
8957         * bus/policy.c (bus_policy_merge): function to merge two policies
8958         together
8959
8960 2003-05-16  Havoc Pennington  <hp@redhat.com>
8961
8962         * dbus/dbus-connection.c: disable verbose lock spew
8963
8964         * tools/dbus-send.c: add --print-reply command line option
8965
8966         * tools/dbus-print-message.h (print_message): new util function
8967         shared by dbus-send and dbus-monitor
8968
8969         * tools/dbus-monitor.c (handler_func): exit on disconnect
8970
8971         * dbus/dbus-transport-unix.c (do_reading): if the transport is
8972         disconnected, don't try to use the read_watch
8973
8974         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8975         so we can find this bug more easily
8976
8977 2003-05-16  Havoc Pennington  <hp@redhat.com>
8978
8979         * bus/policy.c (free_rule_list_func): avoid a crash when passed
8980         NULL as DBusHashTable is annoyingly likely to do.
8981
8982 2003-05-16  Colin Walters  <walters@verbum.org>
8983
8984         * tools/dbus-monitor.c: Add --session argument and usage()
8985         function.
8986
8987         * tools/dbus-monitor.1: Update with new --session arg.
8988
8989         * bus/Makefile.am (install-data-hook): Create
8990         $(libdir)/dbus-1.0/services so that the session bus is happy.
8991
8992 2003-05-15  Havoc Pennington  <hp@redhat.com>
8993
8994         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8995         on non-x86. ifdef's are evil.
8996
8997 2003-05-15  Havoc Pennington  <hp@redhat.com>
8998
8999         * configure.in: 0.11
9000
9001         * NEWS: update
9002
9003         * bus/Makefile.am (initddir): apparently we are supposed to put
9004         init scripts in /etc/rc.d/init.d not /etc/init.d
9005
9006         * bus/Makefile.am: remove the "you must --enable-tests to make
9007         check" as it broke distcheck
9008
9009         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9010
9011 2003-05-13  James Willcox  <jwillcox@gnome.org>
9012
9013         * configure.in:
9014         * bus/activation.c: (bus_activation_service_created),
9015         (bus_activation_activate_service):
9016         * bus/driver.c: (bus_driver_send_service_deleted),
9017         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9018         (bus_driver_send_service_acquired),
9019         (bus_driver_send_welcome_message),
9020         (bus_driver_handle_list_services):
9021         * bus/session.conf.in:
9022         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9023         (dbus_bus_service_exists), (dbus_bus_activate_service):
9024         * dbus/dbus-bus.h:
9025
9026         Add some convenience API which lets you activate a service, and did a
9027         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9028         and dbus_message_get_args()
9029
9030 2003-05-11  Havoc Pennington  <hp@pobox.com>
9031
9032         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9033         calling _dbus_marshal_validate_arg() for every byte in a byte
9034         array, etc.
9035
9036         * dbus/dbus-message-handler.c: use atomic reference counting to
9037         reduce number of locks slightly; the global lock in here sucks
9038
9039         * dbus/dbus-connection.c
9040         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9041         update_dispatch_status that can be called with lock held; then use
9042         in a couple places to reduce locking/unlocking
9043         (dbus_connection_send): hold the lock over the whole function
9044         instead of acquiring it twice.
9045
9046         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9047
9048         * bus/connection.c (bus_connections_setup_connection): fix access
9049         to already-freed memory.
9050
9051         * dbus/dbus-connection.c: keep a little cache of linked list
9052         nodes, to avoid using the global linked list alloc lock in the
9053         normal send-message case. Instead we just use the connection lock
9054         that we already have to take.
9055
9056         * dbus/dbus-list.c (_dbus_list_find_last): new function
9057
9058         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9059         change to use a struct for the atomic type; fix docs,
9060         they return value before increment, not after increment.
9061
9062         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9063         (_dbus_string_append_8_aligned): new functions to try to
9064         microoptimize this operation.
9065         (reallocate_for_length): break this out of set_length(), to
9066         improve profile info, and also so we can consider inlining the
9067         set_length() part.
9068
9069         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9070         strings with some preallocation, cuts down on our calls to realloc
9071         a fair bit. Though if we can get the "move entire string to empty
9072         string" optimization below to kick in here, it would be better.
9073
9074         * dbus/dbus-string.c (_dbus_string_move): just call
9075         _dbus_string_move_len
9076         (_dbus_string_move_len): add a special case for moving
9077         an entire string into an empty string; we can just
9078         swap the string data instead of doing any reallocs.
9079         (_dbus_string_init_preallocated): new function
9080
9081 2003-05-11  Havoc Pennington  <hp@pobox.com>
9082
9083         Write a "test-profile" that does echo client-server with threads;
9084         profile reveals lock contention, memcpy/realloc of buffers, and
9085         UTF-8 validation as hot spots. 20% of lock contention eliminated
9086         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9087         contention is global mempool locks for GList and DBusList.
9088
9089         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9090         x86 implementation
9091
9092         * dbus/dbus-connection.c (struct DBusConnection): use
9093         dbus_atomic_t for the reference count
9094
9095         * dbus/dbus-message.c (struct DBusMessage): declare
9096         dbus_atomic_t values as volatile
9097
9098         * configure.in: code to detect ability to use atomic integer
9099         operations in assembly, from GLib patch
9100
9101         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9102         time, tired of it being wrong in threads and forked processes
9103
9104         * glib/test-profile.c: a little program to bounce messages back
9105         and forth between threads and eat CPU
9106
9107         * dbus/dbus-connection.c: add debug spew macros for debugging
9108         thread locks; include config.h at top; fix deadlock in
9109         dbus_connection_flush()
9110
9111 2003-05-08  Havoc Pennington  <hp@pobox.com>
9112
9113         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9114         data from getting written, and there wasn't a good reason to
9115         use _exit really.
9116
9117         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9118         dbus_verbose lines in test coverage
9119         (main): add list of functions sorted by # of untested blocks
9120         to the coverage report
9121
9122         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9123
9124         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9125
9126         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9127         extend test coverage
9128
9129         * test/data/auth/cancel.auth-script: test canceling an
9130         authentication
9131
9132         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9133         aren't used. in CVS history if we end up needing them.
9134
9135 2003-05-04  Havoc Pennington  <hp@pobox.com>
9136
9137         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9138         unit test
9139
9140         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9141         function, which assumed length was in # of strings, not bytes
9142
9143         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9144         missing coverage
9145
9146         * dbus/dbus-connection.c
9147         (_dbus_connection_queue_received_message): disable function for
9148         now, we are only using it in test mode
9149
9150         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9151         remove a mistaken FIXME
9152
9153 2003-05-04  Havoc Pennington  <hp@pobox.com>
9154
9155         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9156         unlock mutex on successful return, patch from Anders Gustafsson
9157
9158 2003-05-04  Havoc Pennington  <hp@pobox.com>
9159
9160         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9161         Anders Gustafsson
9162
9163 2003-05-04  Havoc Pennington  <hp@pobox.com>
9164
9165         * tools/dbus-launch.c: implement
9166
9167         * bus/main.c (main), bus/bus.c (bus_context_new):
9168         implement --print-pid and --fork
9169
9170 2003-05-03  Havoc Pennington  <hp@redhat.com>
9171
9172         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9173         the address had no value, and add to test suite. Fix and
9174         regression test from Miloslav Trmac
9175
9176 2003-05-03  Havoc Pennington  <hp@pobox.com>
9177
9178         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9179         watch is invalid when handled
9180
9181         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9182         dbus-launch utility to launch the bus from a shell script.  Didn't
9183         actually implement dbus-launch yet, it's just a placeholder still.
9184
9185 2003-05-03  Havoc Pennington  <hp@pobox.com>
9186
9187         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9188         daemon; also documents daemon config file, so replaces
9189         doc/config-file.txt. Corrected some stuff from config-file.txt in
9190         the process of moving it.
9191
9192 2003-05-03  Havoc Pennington  <hp@pobox.com>
9193
9194         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9195         add some man pages
9196
9197 2003-05-03  Colin Walters  <walters@verbum.org>
9198
9199         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9200         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9201
9202         * Makefile.am: Update to use new .pc versioning scheme.
9203
9204 2003-05-02  Havoc Pennington  <hp@redhat.com>
9205
9206         * bus/system.conf.in: allow send/receive to/from message bus
9207         service
9208
9209 2003-04-30  Havoc Pennington  <hp@redhat.com>
9210
9211         * configure.in: print a note when building with unit tests and
9212         without assertions
9213
9214 2003-04-30  Havoc Pennington  <hp@redhat.com>
9215
9216         * Makefile.am: add a check-local that complains if you didn't
9217         configure with --enable-tests
9218
9219 2003-04-29  Havoc Pennington  <hp@redhat.com>
9220
9221         * glib/dbus-gmain.c: docs cleanups
9222
9223         * dbus/dbus-types.h: add docs on int64 types
9224
9225         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9226         public API docs section
9227
9228 2003-04-29  Havoc Pennington  <hp@redhat.com>
9229
9230         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9231         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9232         parallel install API version, not with the D-BUS package version.
9233
9234         * HACKING: move some of README over here
9235
9236         * README: updates, and document API/ABI policy
9237
9238         * configure.in: reindentation
9239
9240 2003-04-29  Havoc Pennington  <hp@redhat.com>
9241
9242         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9243         to use this library" to be sure people have the right
9244         expectations.
9245
9246 2003-04-28  Havoc Pennington  <hp@redhat.com>
9247
9248         * configure.in: add --enable-docs which by default is auto yes if
9249         doxygen and db2html found, no otherwise; but can be forced on/off
9250
9251         * doc/Makefile.am: conditionalize whether to build docs on
9252         --enable-docs
9253
9254 2003-04-28  Havoc Pennington  <hp@redhat.com>
9255
9256         * configure.in: 0.10
9257
9258         * NEWS: update
9259
9260         * bus/system.conf.in: add <includedir>system.d</includedir>
9261
9262         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9263         username was provided but not uid
9264
9265         * bus/config-parser.c (struct BusConfigParser): keep track of
9266         whether the parser is toplevel or was included; change some
9267         of the error handling if it's included.
9268
9269 2003-04-27  Havoc Pennington  <hp@pobox.com>
9270
9271         Unbreak my code...
9272
9273         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9274         report correct status if we finish processing authentication
9275         inside this function.
9276
9277         * bus/activation.c (try_send_activation_failure): use
9278         bus_transaction_send_error_reply
9279
9280         * bus/connection.c (bus_connection_get_groups): return an error
9281         explaining the problem
9282
9283         * bus/bus.c (bus_context_check_security_policy): implement
9284         restriction here that inactive connections can only send the
9285         hello message. Also, allow bus driver to send anything to
9286         any recipient.
9287
9288         * bus/connection.c (bus_connection_complete): create the
9289         BusClientPolicy here instead of on-demand.
9290         (bus_connection_get_policy): don't return an error
9291
9292         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9293         sender field in message being replied to
9294
9295         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9296         causing it to return FALSE always
9297
9298         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9299         we checked sender rather than destination
9300
9301 2003-04-25  Havoc Pennington  <hp@redhat.com>
9302
9303         test suite is slightly hosed at the moment, will fix soon
9304
9305         * bus/connection.c (bus_connections_expire_incomplete): fix to
9306         properly disable the timeout when required
9307         (bus_connection_set_name): check whether we can remove incomplete
9308         connections timeout after we complete each connection.
9309
9310         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9311         probably still broken.
9312
9313         * bus/services.c (bus_registry_acquire_service): implement max
9314         number of services owned, and honor allow/deny rules on which
9315         services a connection can own.
9316
9317         * bus/connection.c (bus_connection_get_policy): report errors here
9318
9319         * bus/activation.c: implement limit on number of pending
9320         activations
9321
9322 2003-04-25  Havoc Pennington  <hp@redhat.com>
9323
9324         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9325         where we used >= 0 instead of != DBUS_UID_UNSET.
9326
9327 2003-04-25  Havoc Pennington  <hp@redhat.com>
9328
9329         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9330         were toggled without add/remove, fix from Anders Gustafsson
9331
9332 2003-04-24  Havoc Pennington  <hp@redhat.com>
9333
9334         * test/data/valid-config-files/basic.conf: add <limit> tags to
9335         this test
9336
9337         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9338         <limit> tag in configuration file.
9339
9340 2003-04-24  Havoc Pennington  <hp@redhat.com>
9341
9342         * bus/dispatch.c: somehow missed some name_is
9343
9344         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9345         (_dbus_timeout_set_interval): new
9346
9347         * bus/connection.c (bus_connections_setup_connection): record time
9348         when each connection is first set up, and expire them after the
9349         auth timeout passes.
9350
9351 2003-04-24  Havoc Pennington  <hp@redhat.com>
9352
9353         * dbus/dbus-message.c (dbus_message_name_is): rename
9354         (dbus_message_service_is): rename
9355         (dbus_message_sender_is): rename
9356         (dbus_message_get_service): rename
9357
9358 2003-04-24  Havoc Pennington  <hp@redhat.com>
9359
9360         * configure.in: add --enable-checks
9361
9362         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9363
9364         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9365         to use thread locks.
9366         (_dbus_connection_handler_destroyed_locked): move some private
9367         functions into proper docs group
9368
9369         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9370         _dbus_return_val_if_fail
9371
9372         Throughout: use dbus_return_if_fail
9373
9374 2003-04-23  James Willcox  <jwillcox@gnome.org>
9375
9376         * glib/dbus-glib.h:
9377         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9378         (dbus_connection_setup_with_g_main),
9379         (dbus_server_setup_with_g_main):
9380         * glib/test-dbus-glib.c: (main):
9381         * glib/test-thread-client.c: (main):
9382         * glib/test-thread-server.c: (new_connection_callback), (main):
9383         * tools/dbus-monitor.c: (main):
9384
9385         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9386         and dbus_server_setup_with_g_main().
9387
9388 2003-04-20  Havoc Pennington  <hp@pobox.com>
9389
9390         * doc/dbus-specification.sgml: document the restrictions on
9391         message and service names
9392
9393 2003-04-22  Havoc Pennington  <hp@redhat.com>
9394
9395         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9396         support, and do some code cleanups to share more code and
9397         speed up array marshal/demarshal.
9398
9399         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9400
9401         * configure.in: generate dbus-arch-deps.h
9402
9403         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9404         64-bit typecodes
9405
9406 2003-04-22  Havoc Pennington  <hp@redhat.com>
9407
9408         * test/data/valid-messages/opposite-endian.message: fix test
9409         to use proper type for rply field
9410
9411         * test/data/invalid-messages: add tests for below validation
9412
9413         * dbus/dbus-message.c (decode_header_data): validate field types,
9414         and validate that named fields are valid names
9415         (decode_name_field): consider messages in the
9416         org.freedesktop.Local. namespace to be invalid.
9417
9418         * dbus/dbus-string.c (_dbus_string_validate_name): new
9419
9420 2003-04-19  Havoc Pennington  <hp@pobox.com>
9421
9422         * bus/driver.c (bus_driver_handle_hello): check limits and
9423         return an error if they are exceeded.
9424
9425         * bus/connection.c: maintain separate lists of active and inactive
9426         connections, and a count of each. Maintain count of completed
9427         connections per user. Implement code to check connection limits.
9428
9429         * dbus/dbus-list.c (_dbus_list_unlink): export
9430
9431         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9432         number of bytes in the message queue for a connection
9433
9434 2003-04-18  Havoc Pennington  <hp@pobox.com>
9435
9436         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9437
9438         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9439         memleaks
9440
9441         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9442         on realloc be sure to update the pointer in the keyring
9443
9444         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9445         offset to avoid writing to unallocated memory
9446
9447         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9448         try the next mechanism, so we properly handle OOM
9449
9450         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9451         on OOM.
9452         (_dbus_keyring_new): fix OOM bug
9453         (_dbus_keyring_new_homedir): always set error; impose a maximum
9454         number of keys we'll load from the file, mostly to speed up the
9455         test suite and make its OOM checks more useful, but also for
9456         general sanity.
9457
9458         * dbus/dbus-auth.c (process_error_server): reject authentication
9459         if we get an error from the client
9460         (process_cancel): on cancel, send REJECTED, per the spec
9461         (process_error_client): send CANCEL if we get an error from the
9462         server.
9463
9464 2003-04-18  Havoc Pennington  <hp@pobox.com>
9465
9466         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9467         debug spew
9468
9469         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9470         handling problem
9471
9472         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9473         about DBUS_TEST_HOMEDIR once
9474
9475         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9476         the environment
9477
9478         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9479         config file so we test the right thing
9480
9481         Throughout: assorted docs improvements
9482
9483 2003-04-18  Havoc Pennington  <hp@pobox.com>
9484
9485         * glib/dbus-gmain.c: adapt to watch changes
9486
9487         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9488
9489         * dbus/dbus-server.h: remove dbus_server_handle_watch
9490
9491         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9492
9493         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9494         like DBusTimeout, so we don't need dbus_connection_handle_watch
9495         etc.
9496
9497 2003-04-17  Havoc Pennington  <hp@redhat.com>
9498
9499         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9500         database usage so it all goes via the DBusUserDatabase cache.
9501
9502 2003-04-17  Havoc Pennington  <hp@redhat.com>
9503
9504         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9505         there was an OOM watch we skipped, we always return TRUE so we
9506         iterate again to have a look at it again. Fixes test suite hang.
9507         Code rearrangement also lets us lose some memset and only iterate
9508         over callbacks once.
9509
9510         * bus/driver.c (bus_driver_handle_message): sense of test for
9511         reply was backward
9512
9513 2003-04-16  Havoc Pennington  <hp@pobox.com>
9514
9515         * doc/dbus-specification.sgml: make spec say serials are unsigned
9516
9517         * dbus/dbus-message.h: change message serials to unsigned
9518
9519         * dbus/dbus-connection.c: adapt to message serials being unsigned
9520
9521 2003-04-15  Havoc Pennington  <hp@pobox.com>
9522
9523         * bus/bus.c: create and keep around a shared DBusUserDatabase
9524         object.
9525
9526         * bus/connection.c (bus_connection_get_groups): don't cache
9527         groups for user in the connection object, since user database
9528         object now does that.
9529
9530 2003-04-16  Havoc Pennington  <hp@redhat.com>
9531
9532         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9533         list of size counters
9534         (_dbus_message_loader_putback_message_link): put back a popped link
9535
9536         * dbus/dbus-connection.c
9537         (dbus_connection_set_max_live_messages_size): rename
9538         max_received_size
9539         (dbus_connection_get_outgoing_size): get size of outgoing
9540         queue
9541         (_dbus_connection_set_connection_counter): remove this cruft
9542
9543 2003-04-14  Havoc Pennington  <hp@redhat.com>
9544
9545         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9546         caching, but at some point we might want to be able to use a
9547         different database.
9548
9549         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9550         SHA1 conf file to test the sha1 auth mechanism, since the regular
9551         test always uses EXTERNAL when available.
9552
9553         * configure.in,
9554         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9555         add conf file that requires use of sha1 auth
9556
9557 2003-04-13  Havoc Pennington  <hp@pobox.com>
9558
9559         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9560         from Philip Blundell to send messages and monitor them.
9561
9562 2003-04-13  Havoc Pennington  <hp@pobox.com>
9563
9564         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9565         callbacks
9566
9567         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9568         users
9569
9570         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9571         fix to only recover unused bytes if we're already authenticated
9572         (_dbus_transport_get_is_authenticated): fix to still mark us
9573         authenticated if there are unused bytes.
9574
9575         * bus/dispatch.c: implement security policy checking
9576
9577         * bus/connection.c (bus_transaction_send_from_driver): new
9578
9579         * bus/bus.c (bus_context_check_security_policy): new
9580
9581         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9582         now we just set the DBusError and it gets converted to an error
9583         reply.
9584
9585         * bus/connection.c (allow_user_function): enable code using actual
9586         data from the config file
9587
9588         * bus/policy.c (list_allows_user): handle wildcard rules for
9589         user/group connection perms
9590
9591 2003-04-13  Havoc Pennington  <hp@pobox.com>
9592
9593         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9594
9595         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9596
9597         * bus/policy.c (bus_policy_append_mandatory_rule)
9598         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9599         (bus_policy_append_group_rule): new functions
9600
9601 2003-04-12  Havoc Pennington  <hp@pobox.com>
9602
9603         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9604
9605         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9606         the pid/gid/uid, just for paranoia.
9607
9608         * test/break-loader.c (randomly_do_n_things): find a byte
9609         containing a type code, and randomly change it to a different
9610         type code.
9611
9612 2003-04-12  Havoc Pennington  <hp@pobox.com>
9613
9614         * bus/policy.h: change BusPolicy to be the thing from the config
9615         file, and rename old BusPolicy to BusClientPolicy
9616
9617         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9618         match change in how policy works
9619
9620         * dbus/dbus-internals.h: mark assert_not_reached as
9621         __attribute((noreturn))__
9622
9623 2003-04-11  Havoc Pennington  <hp@redhat.com>
9624
9625         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9626         the broadcast service. Use boolean return for ServiceExists.
9627
9628 2003-04-11  Havoc Pennington  <hp@redhat.com>
9629
9630         * configure.in: add another directory to look for qt in.
9631
9632 2003-04-11  Havoc Pennington  <hp@redhat.com>
9633
9634         * AUTHORS: add Colin Walters
9635
9636 2003-04-11  Havoc Pennington  <hp@redhat.com>
9637
9638         * NEWS: update
9639
9640         * configure.in: 0.9
9641
9642 2003-04-11  Havoc Pennington  <hp@redhat.com>
9643
9644         * bus/messagebus.in: remove pid file when stopping the
9645         message bus, since the bus won't have privileges to remove it
9646         itself.
9647
9648 2003-04-11  Havoc Pennington  <hp@redhat.com>
9649
9650         * bus/bus.c (bus_context_new): move credentials change after
9651         creating pidfile
9652
9653 2003-04-11  Havoc Pennington  <hp@pobox.com>
9654
9655         * test/decode-gcov.c: add "below average functions" to the
9656         coverage report, and change how some of the code works.
9657
9658         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9659         not in the coverage stats.
9660
9661         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9662         couple places so running the test suite doesn't result in megaspam.
9663
9664 2003-04-11  Havoc Pennington  <hp@pobox.com>
9665
9666         * bus/dispatch.c (check_existent_service_activation): accept a no
9667         memory error in a place we didn't before
9668
9669         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9670         in case the first one failed," since the test suite is less
9671         broken now.
9672
9673 2003-04-10  Havoc Pennington  <hp@pobox.com>
9674
9675         * bus/dispatch.c (check_segfault_service_activation): add test
9676         for launching an executable that just crashes.
9677
9678         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9679         don't leave a million cores. We'll see how portable this is.
9680
9681 2003-04-10  Havoc Pennington  <hp@pobox.com>
9682
9683         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9684         the possible parent failures before we fork, so that we don't
9685         fail to create a babysitter after creating the child.
9686
9687         * bus/activation.c (bus_activation_activate_service): kill child
9688         if we don't successfully complete the activation.
9689
9690 2003-04-10  Havoc Pennington  <hp@redhat.com>
9691
9692         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9693         the connection if it's disconnected
9694
9695         * bus/activation.c (bus_activation_service_created): use new
9696         transaction features to roll back removal of pending activation if
9697         we don't successfully create the service after all. Don't remove
9698         pending activation if the function fails.
9699
9700         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9701         (_dbus_list_insert_after_link): new code to facilitate
9702         services.c fixes
9703
9704         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9705         new functionality, so we can preallocate the ability to insert
9706         into a hash table.
9707
9708         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9709         allowing us to put custom hooks in a transaction to be used for
9710         cancelling said transaction
9711
9712         * doc/dbus-specification.sgml: add some discussion of secondary
9713         service owners, and disallow zero-length service names
9714
9715         * bus/services.c (bus_registry_acquire_service): new function,
9716         splits out part of bus_driver_handle_acquire_service() and fixes
9717         a bug where we didn't remove the service doing the acquiring
9718         from the secondary queue if we failed to remove the current owner
9719         from the front of the queue.
9720
9721 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9722
9723         * doc/dbus-specification.sgml:
9724         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9725
9726 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9727
9728         * bus/.cvsignore:
9729         * glib/.cvsignore:
9730         * test/.cvsignore:
9731         Added files to cvsignore
9732
9733         * dbus/dbus-message.h:
9734         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9735         Make get_named() take two out argument and return a boolean.
9736         (dbus_message_iter_get_args_valist):
9737         Update usage of get_named().
9738         (dbus_message_iter_append_byte):
9739         Fix typo
9740         (dbus_message_iter_append_named)
9741         Fix typo
9742         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9743         More tests.
9744
9745 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9746
9747         * dbus/dbus-marshal.[ch]:
9748         Add array_type_pos argument to _dbus_marshal_validate_arg.
9749         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9750
9751         * dbus/dbus-message.[ch]:
9752         Multi-dimensional arrays have full type specification in the
9753         outermost array. Iter code re-arranged to handle this.
9754         Added some more iter tests.
9755
9756         * doc/dbus-specification.sgml:
9757         Add me to authors.
9758         Remove old FIXME.
9759         Update new array encoding description.
9760         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9761
9762         * test/data/invalid-messages/array-with-mixed-types.message:
9763         * test/data/valid-messages/array-of-array-of-uint32.message:
9764         Change to the new array format.
9765
9766         * test/data/invalid-messages/too-short-dict.message:
9767         Fix bug in test.
9768
9769         * test/data/valid-messages/recursive-types.message:
9770         Fix up and extend test.
9771
9772 2003-04-10  Havoc Pennington  <hp@pobox.com>
9773
9774         * bus/dispatch.c: lots of fixes
9775
9776         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9777         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9778         that was crack, broke the test service.
9779
9780         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9781         handling to avoid piling up errors if we get a failure on the
9782         first address.
9783
9784         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9785         pid in assertion failures.
9786
9787         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9788         to some fixed size of file descriptor array. Don't return TRUE
9789         anytime a timeout exists, that led to lots of busy loop silliness
9790         in the tests.
9791
9792 2003-04-09  Havoc Pennington  <hp@redhat.com>
9793
9794         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9795         I'd checked this in earlier but hadn't.
9796
9797 2003-04-09  Havoc Pennington  <hp@redhat.com>
9798
9799         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9800         the activation test (man this is getting old!)
9801
9802 2003-04-09  Havoc Pennington  <hp@redhat.com>
9803
9804         * test/test-utils.c: use dispatch status function to fix this up
9805
9806         * bus/connection.c (connection_watch_callback): don't dispatch
9807         from here
9808         (connection_timeout_callback): don't dispatch from here
9809         (bus_connections_setup_connection): set the dispatch status function
9810         (bus_connection_disconnected): unset it
9811
9812         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9813         used to add a connection to be dispatched
9814         (_dbus_loop_iterate): do the dispatching at the end of each
9815         iteration
9816
9817         * dbus/dbus-connection.c
9818         (dbus_connection_set_dispatch_status_function): new function
9819         allowing us to fix up main loop usage
9820         (_dbus_connection_last_unref): free all the various function
9821         user data
9822         (dbus_connection_dispatch): call the DispatchStatusFunction
9823         whenever this function returns
9824         (dbus_connection_handle_watch): call DispatchStatusFunction
9825         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9826         (reply_handler_timeout): call DispatchStatusFunction
9827         (dbus_connection_flush): call DispatchStatusFunction
9828
9829 2003-04-09  Havoc Pennington  <hp@redhat.com>
9830
9831         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9832         a memory leak
9833
9834         * bus/dispatch.c (check_service_activated): fix bug in test
9835
9836         * dbus/dbus-mainloop.c (check_timeout): fix this up
9837
9838         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9839         verbose output so we can sort out output from different processes,
9840         e.g. in the activation case.
9841
9842 2003-04-08  Colin Walters  <walters@gnu.org>
9843
9844         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9845         the pid file.
9846         (bus_context_new): Set it.
9847         (bus_context_unref): Use it to delete the pid file.
9848
9849 2003-04-08  Havoc Pennington  <hp@redhat.com>
9850
9851         * test/data/invalid-messages/array-with-mixed-types.message:
9852         regression test that fails for the moment
9853
9854         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9855         tests for convenience
9856
9857         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9858         array of nil, it broke things.
9859
9860         * test/data/invalid-messages/array-of-nil.message: regression test
9861
9862         * test/data/valid-messages/array-of-array-of-uint32.message:
9863         happened to write this so added it to suite
9864
9865 2003-04-08  Havoc Pennington  <hp@redhat.com>
9866
9867         * bus/driver.c (bus_driver_handle_acquire_service): init
9868         retval/reply before checking name
9869
9870         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9871         recursion depth argument
9872
9873         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9874         in the public struct for future extension
9875
9876         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9877         typo
9878
9879         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9880         message
9881
9882         * doc/dbus-specification.sgml: fix typo
9883
9884 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9885
9886         Implemented recursive types, named types and new-style iters
9887
9888         * bus/driver.c:
9889         * glib/test-thread-client.c: (thread_func):
9890         * glib/test-thread-server.c: (handle_test_message):
9891         * test/test-service.c: (handle_echo):
9892         Update to new api
9893
9894         * dbus/Makefile.am:
9895         * dbus/dbus-dict.c:
9896         * dbus/dbus-dict.h:
9897         * dbus/dbus.h
9898         Remove DBusDict
9899
9900         * dbus/dbus-internals.c: (_dbus_type_to_string):
9901         Update for new types.
9902
9903         * dbus/dbus-marshal.[ch]:
9904         Implement recursive types and the new marshalling format.
9905         Remove hardcoded dict marshalling.
9906         Marshal named types.
9907
9908         * dbus/dbus-message-builder.c:
9909         Add BYTE_ARRAY.
9910         Remove references to old types
9911
9912         * dbus/dbus-message.[ch]:
9913         New non-refcounted iter API that supports recursive iters.
9914         Use iters for appending, including support for recursive
9915         iters.
9916         Add byte and named type support.
9917         Update everything to new marshalling formats.
9918         Add tests for new API.
9919
9920         * dbus/dbus-protocol.h:
9921         Remove old array types.
9922         Add types: BYTE, ARRAY, DICT, NAMED
9923
9924         * dbus/dbus-string.c:
9925         * dbus/dbus-sysdeps.c:
9926         Make parse_double locale safe.
9927
9928         * dbus/dbus-test-main.c:
9929         Call setlocale.
9930
9931         * dbus/dbus-test.c:
9932         Kill dict test
9933
9934         * doc/dbus-specification.sgml:
9935         Update spec
9936
9937         * test/data/incomplete-messages/missing-body.message:
9938         * test/data/invalid-messages/bad-boolean.message:
9939         * test/data/invalid-messages/bad-boolean-array.message:
9940         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9941         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9942         * test/data/invalid-messages/too-short-dict.message:
9943         * test/data/valid-messages/dict-simple.message:
9944         * test/data/valid-messages/dict.message:
9945         * test/data/valid-messages/emptiness.message:
9946         * test/data/valid-messages/lots-of-arguments.message:
9947         * test/data/valid-messages/no-padding.message:
9948         * test/data/valid-messages/recursive-types.message:
9949         Add missing NAME fields
9950         Fix up dicts & arrays
9951
9952         * test/data/invalid-messages/dict-with-nil-value.message:
9953         Removed, this is not invalid anymore.
9954
9955         * test/data/valid-messages/recursive-types.message:
9956         Add new test for deeply recursive types.
9957
9958 2003-04-07  Havoc Pennington  <hp@pobox.com>
9959
9960         * bus/driver.c (bus_driver_handle_acquire_service): return an
9961         error if you try to acquire a service that starts with ':'
9962
9963 2003-04-07  Havoc Pennington  <hp@redhat.com>
9964
9965         * doc/dbus-specification.sgml: require that base service names
9966         start with ':' and that the base service is created/deleted
9967         as first and last things a connection does on the bus
9968
9969         * bus/dispatch.c (check_existent_service_activation): lots more
9970         work on the activation test; it doesn't fully pass yet...
9971
9972         * test/test-service.c (main): fix so we don't memleak the
9973         connection to the message bus
9974         (filter_func): accept a message asking us to exit
9975
9976 2003-04-06  Havoc Pennington  <hp@pobox.com>
9977
9978         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9979         from Colin Walters
9980
9981         * configure.in: fixes to Qt detection from Colin Walters
9982
9983         * doc/Makefile.am: Only remove generated docbook dirs if they
9984         exist, from Colin Walters
9985
9986         * dbus/dbus-bus.c: change how we set well-known connections to
9987         NULL, so that it works if a single connection is stored in
9988         two well-known array slots.
9989
9990         * test/Makefile.am: remove a lot of stuff that isn't immediately
9991         useful, it's in CVS history if we want it.
9992
9993         * test/test-service.c: use dbus-mainloop instead of that
9994         watch.[hc] crack
9995
9996 2003-04-06  Havoc Pennington  <hp@pobox.com>
9997
9998         * dbus/Makefile.am: split lists of sources into stuff that goes in
9999         the library, util functions that go in the lib and are also used
10000         elsewhere, and util functions that are used in tests/daemon but
10001         don't go in the lib.
10002
10003         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10004         here so it can be used in test binaries also
10005
10006 2003-04-06  Havoc Pennington  <hp@pobox.com>
10007
10008         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10009         here in the parent process, so we can return an error if it
10010         fails. Also, move some of the code into the child so the parent
10011         is less hosed if we fail midway through.
10012
10013         * bus/bus.c (bus_context_new): move pidfile detection further up
10014         in the function, before we start overwriting sockets and such.
10015
10016         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10017
10018         * configure.in: add --with-system-pid-file and --with-system-socket
10019
10020 2003-04-06  Colin Walters  <walters@verbum.org>
10021
10022         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10023
10024         * bus/system.conf.in: Declare a pidfile.
10025
10026         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10027         create one (if appropriate).
10028
10029         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10030         (struct BusConfigParser) [pidfile]: New.
10031         (element_type_to_name, merge_included, start_busconfig_child)
10032         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10033         (bus_config_parser_unref): Free it.
10034         (bus_config_parser_get_pidfile): New function.
10035
10036         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10037
10038         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10039
10040         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10041
10042         * dbus/dbus-sysdeps.h: Prototype it.
10043
10044 2003-04-06  Havoc Pennington  <hp@pobox.com>
10045
10046         * bus/bus.c (bus_context_new): print the address in here, rather
10047         than in main(), because we need to do it before forking the daemon
10048
10049         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10050         on the service nonexistent error
10051
10052         * bus/driver.c (bus_driver_handle_acquire_service): set the
10053         sender on the AcquireService reply
10054
10055         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10056         server also listen on a UNIX socket so services can connect to it.
10057
10058 2003-04-06  Havoc Pennington  <hp@pobox.com>
10059
10060         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10061         so it detects deadlocks and also we actually init threads when
10062         debugging.
10063
10064 2003-04-06  Havoc Pennington  <hp@pobox.com>
10065
10066         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10067         save the domain socket name, and unlink it when we disconnect the
10068         server. Means that at least when we exit normally, we won't leave
10069         a bunch of junk in /tmp
10070
10071         * dbus/dbus-transport-unix.c
10072         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10073         memory management). (I was making a real change here but then
10074         didn't)
10075
10076 2003-04-06  Havoc Pennington  <hp@pobox.com>
10077
10078         * bus/bus.c (bus_context_new): fix wrong handling of
10079         server_data_slot_unref() in the error case.
10080
10081         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10082         "(condition) != 0" to _dbus_real_assert so that
10083         "_dbus_assert (pointer)" doesn't cause a warning
10084
10085         * bus/main.c (main): accept --print-address option to print out
10086         the message bus address
10087
10088         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10089
10090         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10091         "tmpdir" option to unix: address on client side
10092
10093         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10094         to unix: address
10095
10096         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10097         we can use to create sockets in the test suite.
10098
10099         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10100         cleanly. To be used for testing.
10101
10102         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10103
10104         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10105
10106         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10107         handle trying to call this when there's no servers active
10108
10109 2003-04-05  Havoc Pennington  <hp@pobox.com>
10110
10111         * NEWS: update
10112
10113         * configure.in: 0.8
10114
10115 2003-04-05  Havoc Pennington  <hp@pobox.com>
10116
10117         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10118         crash on startup. Need to get "try starting the daemon"
10119         in the test suite I guess. ;-)
10120
10121         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10122         tracked the number of open connections; it's better done in
10123         application-specific code as you want it to span all servers etc.
10124
10125 2003-04-05  Havoc Pennington  <hp@pobox.com>
10126
10127         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10128         patch from Colin Walters
10129
10130 2003-04-05  Havoc Pennington  <hp@pobox.com>
10131
10132         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10133         reality; in fact multiple mechanisms are allowed.
10134
10135         * dbus/dbus-internals.c (_dbus_real_assert)
10136         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10137         _dbus_assert_not_reached() into functions, so that they don't show
10138         up in basic block counts for test coverage, and don't use up as
10139         much disk space. Does mean slower execution speed though, so
10140         assumes --disable-asserts is the normal production case.
10141
10142 2003-04-05  Havoc Pennington  <hp@pobox.com>
10143
10144         * test/Makefile.am (dist-hook): also dist *.in files
10145
10146         * NEWS: update
10147
10148         * configure.in: 0.7
10149
10150 2003-04-05  Havoc Pennington  <hp@pobox.com>
10151
10152         * dbus/dbus-string.c: docs warning
10153
10154         * dbus/dbus-spawn.c: missing docs
10155
10156         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10157
10158 2003-04-05  Havoc Pennington  <hp@pobox.com>
10159
10160         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10161         magic from GLib
10162
10163         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10164         to -1 once we've reaped the babysitter
10165         (_dbus_babysitter_handle_watch): do as much work as we can, not
10166         just one go of it
10167
10168         * bus/activation.c: add code using DBusBabysitter so that we
10169         handle it when a service fails to start up properly.
10170         (bus_activation_service_created): don't remove the activation
10171         entries as we go, just let them get removed when we free the pending
10172         activation. Unref reply messages after sending them.
10173
10174 2003-04-05  Havoc Pennington  <hp@pobox.com>
10175
10176         * test/decode-gcov.c (main): print per-directory stats in the report
10177
10178         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10179
10180 2003-04-05  Havoc Pennington  <hp@pobox.com>
10181
10182         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10183
10184         * test/decode-gcov.c: hack up a little program to suck data
10185         out of gcov files. Yes this is sort of silly.
10186
10187         * configure.in: define something in config.h and do an
10188         AM_CONDITIONAL when gcov is enabled
10189
10190 2003-04-04  Havoc Pennington  <hp@redhat.com>
10191
10192         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10193         return a "babysitter" object that is used to monitor the status of
10194         the spawned process and reap it when required.
10195
10196         * test/test-segfault.c, test/test-exit.c,
10197         test/test-sleep-forever.c: binaries that do various lame things,
10198         used in the test suite.
10199
10200         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10201
10202 2003-04-03  Havoc Pennington  <hp@pobox.com>
10203
10204         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10205         in preparation for modifying it, dbus-sysdeps is getting
10206         a bit unmanageable.
10207
10208 2003-04-03  Havoc Pennington  <hp@redhat.com>
10209
10210         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10211         have multiple ones
10212
10213         * bus/*.[hc]: adapt to mainloop change
10214
10215 2003-04-03  Havoc Pennington  <hp@redhat.com>
10216
10217         * bus/activation.c (load_directory): fix up memleaks
10218         (bus_activation_entry_free): free the entry
10219
10220         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10221         we get one from the message bus; fix memleaks.
10222
10223         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10224
10225 2003-04-03  Havoc Pennington  <hp@pobox.com>
10226
10227         * bus/config-parser.c (bus_config_parser_unref): free
10228         list of mechanisms, bug discovered by test suite enhancements
10229         (putting system.conf and session.conf into suite)
10230
10231         * test/Makefile.am, test/test-service.c: add placeholder for a
10232         test service that we'll activate as part of test suite. Doesn't
10233         do anything yet.
10234
10235         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10236         setting NULL value, and use system malloc not dbus_malloc()
10237         when we have unavoidable memleakage.
10238
10239         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10240         didn't work, and support DBUS_BUS_ACTIVATION.
10241
10242         * bus/activation.c (child_setup): pass our well-known bus type to
10243         the child
10244
10245         * bus/config-parser.c: support <type> to specify well-known type
10246
10247         * doc/dbus-specification.sgml: document the env variables to
10248         locate well-known buses and find service activator
10249
10250 2003-04-02  Havoc Pennington  <hp@redhat.com>
10251
10252         * test/Makefile.am (all-local): add a rule to copy tests to
10253         builddir, so we can have generated tests. Use this to remove the
10254         silly hack for testing system.conf and session.conf. Will use this
10255         shortly to generate .service files pointing to test binaries.
10256
10257 2003-04-02  Havoc Pennington  <hp@redhat.com>
10258
10259         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10260         current alloc and needed new length, not max of the doubled
10261         allocation and needed new length. Also, when building tests,
10262         don't do the double-allocation stuff, just realloc every time.
10263
10264 2003-04-02  Havoc Pennington  <hp@redhat.com>
10265
10266         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10267         in error messages
10268         (_dbus_string_get_dirname): new
10269         (_dbus_sysdeps_test): new
10270         (_dbus_directory_open): include dirnames in error messages
10271
10272         * bus/config-parser.c: interpret <include> and <includedir> and
10273         <servicedir> relative to config file location if the given
10274         filename is not absolute.
10275
10276         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10277
10278 2003-04-02  Havoc Pennington  <hp@redhat.com>
10279
10280         * bus/connection.c (bus_transaction_send_error_reply): set sender
10281         service for the error, and unref the reply on success
10282
10283         * bus/activation.c: convert to use BusTransaction so OOM can be
10284         handled correctly
10285         (bus_activation_service_created): set sender of the message
10286
10287 2003-04-01  Havoc Pennington  <hp@redhat.com>
10288
10289         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10290         <includedir> (at least mostly)
10291
10292         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10293         first, then the user ID
10294
10295 2003-04-01  Havoc Pennington  <hp@pobox.com>
10296
10297         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10298         function
10299
10300         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10301
10302         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10303
10304         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10305         socket 0777, and unlink any existing socket.
10306
10307         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10308         the configuration file so specifies; set up auth mechanism
10309         restrictions
10310
10311         * bus/config-parser.c (bus_config_parser_content): add support
10312         for <fork> option and fill in code for <auth>
10313
10314         * bus/system.conf.in: add <fork/> to default configuration,
10315         and limit auth mechanisms to EXTERNAL
10316
10317         * doc/config-file.txt (Elements): add <fork>
10318
10319         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10320         (_dbus_change_identity): new function
10321
10322 2003-03-31  Havoc Pennington  <hp@redhat.com>
10323
10324         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10325         (_dbus_listen_unix_socket): fix off-by-one error in null
10326         termination spotted by Nalin
10327
10328 2003-03-31  Havoc Pennington  <hp@redhat.com>
10329
10330         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10331         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10332         having a real home directory available.
10333
10334 2003-03-31  Havoc Pennington  <hp@redhat.com>
10335
10336         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10337
10338         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10339
10340         * configure.in: add support for specifying a style of init script
10341         to install
10342
10343 2003-03-31  Havoc Pennington  <hp@redhat.com>
10344
10345         Fix some annoying DBusString API and fix all affected code.
10346
10347         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10348         max_length argument
10349         (_dbus_string_get_data): change to return string instead of using
10350         an out param
10351         (_dbus_string_get_const_data): ditto
10352         (_dbus_string_get_data_len): ditto
10353         (_dbus_string_get_const_data_len): ditto
10354
10355 2003-03-31  Havoc Pennington  <hp@redhat.com>
10356
10357         * bus/main.c (main): fix up the command line arguments to be nicer
10358
10359 2003-03-31  Havoc Pennington  <hp@redhat.com>
10360
10361         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10362         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10363         final location that lands in the config file
10364
10365         * bus/config-loader-expat.c (bus_config_load): fix type of
10366         XML_Parser variable
10367
10368         * doc/TODO: remove TODO item for dbus_bus_get()
10369
10370         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10371
10372 2003-03-31  Havoc Pennington  <hp@pobox.com>
10373
10374         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10375         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10376         argument since they are always client side
10377
10378         * dbus/dbus-server.c (dbus_server_get_address): new function
10379
10380         * bus/main.c (main): take the configuration file as an argument.
10381
10382         * test/data/valid-config-files/debug-allow-all.conf: new file to
10383         use with dispatch.c tests for example
10384
10385         * bus/test-main.c (main): require test data dir
10386
10387         * bus/bus.c (bus_context_new): change this to take a
10388         configuration file name as argument
10389
10390         * doc/config-file.txt (Elements): add <servicedir>
10391
10392         * bus/system.conf, bus/session.conf: new files
10393
10394         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10395         well-known socket if none set
10396
10397         * configure.in: create system.conf and session.conf
10398
10399 2003-03-30  Havoc Pennington  <hp@pobox.com>
10400
10401         * bus/config-parser.c: hacking
10402
10403         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10404         to shut down, since it could cause weirdness with the DBusList
10405         lock
10406
10407         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10408         link-oriented stack routines
10409         (alloc_link): free the mempool if the first alloc from it fails
10410
10411         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10412
10413         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10414         from GLib
10415         (_dbus_string_skip_white): new
10416
10417         * doc/config-file.txt (Elements): add <includedir>
10418
10419 2003-03-28  Havoc Pennington  <hp@pobox.com>
10420
10421         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10422         (_dbus_string_copy_data): new functions
10423
10424 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10425
10426         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10427         * dbus/dbus-bus.h:
10428         Add dbus_bus_get.
10429
10430         * dbus/dbus-memory.c:
10431         Fix a doc comment.
10432
10433 2003-03-28  Havoc Pennington  <hp@pobox.com>
10434
10435         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10436         I think it may have just been superstition. Not sure.
10437
10438         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10439         failures that were not being handled.
10440
10441         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10442
10443         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10444         row that will fail on out-of-memory.
10445
10446         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10447         function for testing out-of-memory handling.
10448
10449         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10450         allocation functions, they do map exactly to the expat ones.
10451
10452 2003-03-27  Havoc Pennington  <hp@redhat.com>
10453
10454         * bus/config-loader-libxml.c (bus_config_load): add another error
10455         check
10456
10457 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10458
10459         * doc/TODO:
10460         Add note about automatic service activation.
10461
10462         * doc/dbus-specification.sgml:
10463         Rename the specification and clarify a few things.
10464
10465 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10466
10467         * Doxyfile.in:
10468         * dbus/dbus-address.c:
10469         * dbus/dbus-dict.c:
10470         * dbus/dbus-marshal.c:
10471         * dbus/dbus-server-debug-pipe.c:
10472         * dbus/dbus-transport-unix.c:
10473         Fix documentation warnings.
10474
10475 2003-03-26  Havoc Pennington  <hp@pobox.com>
10476
10477         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10478         after every test so it's quick and easy to see which leaked, and
10479         so we test multiple dbus_shutdown() calls
10480
10481         * configure.in: change configure.in XML stuff to also support
10482         expat
10483
10484         * config-loader-libxml.c: some hacking
10485
10486         * config-loader-expat.c: some hacking
10487
10488         * config-parser.c: some hacking, plus tests
10489
10490 2003-03-25  Havoc Pennington  <hp@redhat.com>
10491
10492         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10493
10494         * configure.in: add --with-xml option to specify XML library,
10495         right now only libxml is supported.
10496
10497         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10498         nonworking code between home and work, still just stubs
10499
10500 2003-03-24  Havoc Pennington  <hp@redhat.com>
10501
10502         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10503         file
10504
10505         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10506         NULL argument for "message" if the error is a well-known one,
10507         fill in a generic message in this case.
10508
10509         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10510         favor of DBusError
10511
10512         * bus/test.c (bus_test_flush_bus): add
10513
10514         * bus/policy.c (bus_policy_test): test code stub
10515
10516 2003-03-24  Havoc Pennington  <hp@pobox.com>
10517
10518         * bus/connection.c (bus_connections_setup_connection): set up
10519         the "can this user connect" function, but it always returns
10520         TRUE until we have a config file parser so we can have a config
10521         file that allows connections.
10522
10523 2003-03-23  Havoc Pennington  <hp@pobox.com>
10524
10525         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10526         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10527         the mutex, so we can check for proper memory management
10528         and OOM handling.
10529
10530         * dbus/dbus-dataslot.c: remove the mutex from
10531         DBusDataSlotAllocator and lock it manually when using it,
10532         to simplify fitting it into the global slots framework.
10533
10534         * dbus/dbus-threads.c (init_static_locks): rework how we're
10535         handling global locks so they are easily shut down.
10536
10537         * bus/policy.c (bus_policy_append_rule): fix
10538
10539         * bus/test-main.c (main): check for memleaks
10540
10541         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10542         test suite check for memleaks
10543
10544         * dbus/dbus-memory.c: add support in test mode for tracking
10545         number of outstanding blocks
10546
10547 2003-03-23  Havoc Pennington  <hp@pobox.com>
10548
10549         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10550         policies code
10551
10552         * dbus/dbus-hash.h: add ULONG hash keys
10553
10554         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10555         (_dbus_get_group_id): new function
10556
10557 2003-03-20  Havoc Pennington  <hp@redhat.com>
10558
10559         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10560         new function
10561         (dbus_connection_get_unix_user): new function
10562
10563 2003-03-20  Havoc Pennington  <hp@pobox.com>
10564
10565         * bus/connection.c (bus_connection_send_oom_error): assert that
10566         message has a sender
10567         (connection_execute_transaction): ditto
10568         (bus_connection_preallocate_oom_error): fix to set the sender, and
10569         set recipient to the destination service, not the bus driver
10570
10571         * bus/policy.c: hacking
10572
10573         * dbus/dbus-message.c (dbus_message_service_is): new function
10574         (dbus_message_sender_is): new
10575
10576 2003-03-19  Havoc Pennington  <hp@redhat.com>
10577
10578         * bus/policy.c: start sketching code for policy restrictions on
10579         what connections can do.
10580
10581 2003-03-18  Havoc Pennington  <hp@redhat.com>
10582
10583         * doc/TODO: some notes on high-level todo items. Little nitpick
10584         stuff is all in @todo, so no need to add it here.
10585
10586         * doc/config-file.txt: some notes on how config file might look
10587
10588 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10589
10590         * configure.in: 0.6
10591
10592         * NEWS: Update.
10593
10594 2003-03-17  Havoc Pennington  <hp@redhat.com>
10595
10596         * dbus/dbus-internals.h: add gcc attributes so that
10597         our printf-style functions warn on bad arguments to
10598         format
10599
10600         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10601         format bug
10602
10603         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10604         printf format bug
10605
10606 2003-03-17  Havoc Pennington  <hp@redhat.com>
10607
10608         * bus/test-main.c (main): make it print something as it runs
10609         so make check doesn't look stuck
10610
10611         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10612         from CVS, now obsolete
10613
10614 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10615
10616         * bus/dispatch.c: (bus_dispatch):
10617         Refetch the service name since it may have been reallocated
10618         when dbus_message_set_sender was called.
10619
10620         * dbus/dbus-sysdeps.c: (_dbus_accept):
10621         Add address and address length variables and use them to stop
10622         valgrind from complaining.
10623
10624 2003-03-17  Havoc Pennington  <hp@pobox.com>
10625
10626         All tests pass, no memleaks, no valgrind complaints.
10627
10628         * bus/test.c: refcount handler_slot
10629
10630         * bus/connection.c (bus_connections_new): refcount
10631         connection_data_slot
10632
10633         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10634         bytes so that auth scripts pass.
10635
10636         * bus/dispatch.c: init message_handler_slot so it gets allocated
10637         properly
10638
10639         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10640
10641         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10642         dealloc server_pipe_hash when no longer used for benefit of
10643         leak checking
10644
10645         * dbus/dbus-auth.c (process_command): memleak fix
10646
10647         * bus/dispatch.c (check_hello_message): memleak fix
10648
10649 2003-03-16  Havoc Pennington  <hp@pobox.com>
10650
10651         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10652
10653 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10654
10655         * bus/activation.c (bus_activation_activate_service): Append
10656         the pending activation entry to the list of pending activations.
10657
10658 2003-03-16  Havoc Pennington  <hp@pobox.com>
10659
10660         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10661         connections
10662
10663         * dbus/dbus-address.c (create_entry): fix OOM handling when
10664         failing to alloc entry->method
10665
10666 2003-03-16  Havoc Pennington  <hp@pobox.com>
10667
10668         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10669         the watch
10670
10671         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10672         add some missing dbus_set_result
10673
10674         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10675         alloc the DBusMessageHandler
10676
10677         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10678         the transport here, since we call this from the finalizer; it
10679         resulted in a double-finalize.
10680
10681         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10682         where we tried to use transport->connection that was NULL,
10683         happened when transport was disconnected early on due to OOM
10684
10685         * bus/*.c: adapt to handle OOM for watches/timeouts
10686
10687         * dbus/dbus-transport-unix.c: port to handle OOM during
10688         watch handling
10689
10690         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10691         reference to unused bytes instead of a copy
10692
10693         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10694         out of memory
10695
10696         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10697         FALSE on OOM
10698
10699         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10700         of memory
10701
10702 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10703
10704         * doc/dbus-specification.sgml:
10705         Document reply message for ActivateService.
10706
10707 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10708
10709         * bus/activation.c: (bus_pending_activation_entry_free),
10710         (bus_pending_activation_free), (bus_activation_new),
10711         (bus_activation_unref), (bus_activation_service_created),
10712         (bus_activation_activate_service):
10713         * bus/activation.h:
10714         * bus/bus.c: (bus_context_new):
10715         * bus/desktop-file.c: (new_section):
10716         * bus/driver.c: (bus_driver_send_service_deleted),
10717         (bus_driver_handle_activate_service):
10718         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10719         * bus/services.h:
10720         * dbus/dbus-connection.c:
10721         (dbus_connection_send_with_reply_and_block):
10722         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10723         * dbus/dbus-protocol.h:
10724         Make activation work better. Now pending activations will be queued
10725         and the daemon won't try to activate services that are already registered.
10726
10727 2003-03-16  Havoc Pennington  <hp@pobox.com>
10728
10729         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10730         connection data
10731
10732         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10733         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10734
10735 2003-03-16  Havoc Pennington  <hp@pobox.com>
10736
10737         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10738         this. always run the test suite before commit...
10739
10740         * bus/*: adapt to DBusConnection API changes
10741
10742         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10743         requires renaming stuff to avoid dbus_connection_dispatch name
10744         conflict.
10745
10746         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10747         function
10748
10749         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10750         separate from _dbus_message_loader_return_buffer()
10751
10752         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10753         this, because it's now always broken to use; the number of
10754         messages in queue vs. the number still buffered by the message
10755         loader is undefined/meaningless. Should use
10756         dbus_connection_get_dispatch_state().
10757         (dbus_connection_dispatch): rename from
10758         dbus_connection_dispatch_message
10759
10760 2003-03-16  Havoc Pennington  <hp@pobox.com>
10761
10762         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10763         implementation
10764
10765 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10766
10767         * dbus/dbus-connection.c:
10768         (dbus_connection_send_with_reply_and_block):
10769         Decrease connection->n_incoming when removing an entry
10770         from the list.
10771         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10772         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10773         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10774         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10775         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10776         (dbus_dict_get_byte_array):
10777         Handle NULL arrays and strings. Also add support for byte arrays.
10778
10779         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10780         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10781         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10782         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10783         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10784         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10785         * dbus/dbus-marshal.h:
10786         Add support for marshalling and demarshalling empty arrays and strings.
10787
10788         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10789         (dbus_message_append_string_array),
10790         (dbus_message_iter_get_boolean),
10791         (dbus_message_iter_get_boolean_array),
10792         (dbus_message_iter_get_int32_array),
10793         (dbus_message_iter_get_uint32_array),
10794         (dbus_message_iter_get_double_array),
10795         (dbus_message_iter_get_byte_array),
10796         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10797         (check_message_handling):
10798         Add support for getting empty arrays and dicts.
10799
10800         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10801         Don't do any validation at all for now, that's better than just checking
10802         for ASCII.
10803
10804         * test/data/valid-messages/emptiness.message:
10805         New test message with lots of empty arrays.
10806
10807 2003-03-16  Havoc Pennington  <hp@pobox.com>
10808
10809         * dbus/dbus-connection.c
10810         (_dbus_connection_queue_received_message_link): new function that
10811         can't fail due to OOM
10812
10813         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10814         new function pops a message together with a list link
10815         containing it.
10816
10817         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10818         message queuing functions to avoid needing to alloc memory
10819
10820 2003-03-16  Havoc Pennington  <hp@pobox.com>
10821
10822         Oops - test code was only testing failure of around 30 of the
10823         mallocs in the test path, but it turns out there are 500+
10824         mallocs. I believe this was due to misguided linking setup such
10825         that there was one copy of dbus_malloc etc. in the daemon and one
10826         in the shared lib, and only daemon mallocs were tested. In any
10827         case, the test case now tests all 500+ mallocs, and doesn't pass
10828         yet, though there are lots of fixes in this patch.
10829
10830         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10831         this so that it doesn't need to allocate memory, since it
10832         has no way of indicating failure due to OOM (and would be
10833         annoying if it did).
10834
10835         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10836
10837         * bus/Makefile.am: rearrange to create two self-contained
10838         libraries, to avoid having libraries with overlapping symbols.
10839         that was resulting in weirdness, e.g. I'm pretty sure there
10840         were two copies of global static variables.
10841
10842         * dbus/dbus-internals.c: move the malloc debug stuff to
10843         dbus-memory.c
10844
10845         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10846         empty.
10847
10848         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10849
10850         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10851         on failure.
10852
10853         * bus/dispatch.c (bus_dispatch_add_connection): free
10854         message_handler_slot when no longer using it, so
10855         memory leak checkers are happy for the test suite.
10856
10857         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10858
10859         * bus/bus.c (new_connection_callback): disconnect in here if
10860         bus_connections_setup_connection fails.
10861
10862         * bus/connection.c (bus_connections_unref): fix to free the
10863         connections
10864         (bus_connections_setup_connection): if this fails, don't
10865         disconnect the connection, just be sure there are no side
10866         effects.
10867
10868         * dbus/dbus-string.c (undo_alignment): unbreak this
10869
10870         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10871         leaking
10872         (_dbus_auth_new): fix the order in which we free strings
10873         on OOM failure
10874
10875         * bus/connection.c (bus_connection_disconnected): fix to
10876         not send ServiceDeleted multiple times in case of memory
10877         allocation failure
10878
10879         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10880         get the base service name
10881         (dbus_bus_register_client): don't return base service name,
10882         instead store it on the DBusConnection and have an accessor
10883         function for it.
10884         (dbus_bus_register_client): rename dbus_bus_register()
10885
10886         * bus/dispatch.c (check_hello_message): verify that other
10887         connections on the bus also got the correct results, not
10888         just the one sending hello
10889
10890 2003-03-15  Havoc Pennington  <hp@pobox.com>
10891
10892         Make it pass the Hello handling test including all OOM codepaths.
10893         Now to do other messages...
10894
10895         * bus/services.c (bus_service_remove_owner): fix crash when
10896         removing owner from an empty list of owners
10897         (bus_registry_ensure): don't leave service in the list of
10898         a connection's owned services if we fail to put the service
10899         in the hash table.
10900
10901         * bus/connection.c (bus_connection_preallocate_oom_error): set
10902         error flag on the OOM error.
10903
10904         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10905         handle _dbus_transport_set_connection failure
10906
10907         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10908         to create watches up front and simply enable/disable them as
10909         needed.
10910         (unix_connection_set): this can now fail on OOM
10911
10912         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10913         of enabling/disabling a watch or timeout.
10914
10915         * bus/loop.c (bus_loop_iterate): don't touch disabled
10916         watches/timeouts
10917
10918         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10919
10920 2003-03-15  Havoc Pennington  <hp@pobox.com>
10921
10922         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10923         write useful test code, after all that futzing around ;-)
10924
10925         Test does not yet pass because we can't handle OOM in
10926         _dbus_transport_messages_pending (basically,
10927         dbus_connection_preallocate_send() does not prealloc the write
10928         watch). To fix this, I think we need to add new stuff to
10929         set_watch_functions, namely a SetEnabled function so we can alloc
10930         the watch earlier, then enable it later.
10931
10932         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10933         dbus-memory.c to the convenience lib
10934
10935         * bus/test.c: rename some static functions to keep them clearly
10936         distinct from stuff in connection.c. Handle client disconnection.
10937
10938 2003-03-14  Havoc Pennington  <hp@pobox.com>
10939
10940         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10941         transport, tests more of the real codepath. Set up clients
10942         with bus_setup_debug_client.
10943
10944         * bus/test.c (bus_setup_debug_client): function to set up debug
10945         "clients" on the main loop
10946
10947         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10948         support
10949
10950         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10951         server type
10952
10953         * dbus/dbus-server-debug.c: support a debug server based on pipes
10954
10955         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10956         (_dbus_close): new function
10957
10958         * configure.in: check for socketpair
10959
10960 2003-03-14  Havoc Pennington  <hp@redhat.com>
10961
10962         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10963         cheesy hack
10964
10965         * dbus/dbus-transport-debug.c: rework this a good bit to be
10966         less complicated. hopefully still works.
10967
10968         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10969         manually
10970
10971         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10972         after running it
10973
10974         * dbus/dbus-message.c (dbus_message_copy): rename from
10975         dbus_message_new_from_message, fix it up to copy
10976         all the message fields, add test case
10977
10978         * bus/dispatch.c (bus_dispatch_test): add some more test code,
10979         not quite passing yet
10980
10981 2003-03-14  Havoc Pennington  <hp@pobox.com>
10982
10983         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10984         until no work remains" in test code. (the large diff here
10985         is just code movement, no actual changes)
10986
10987         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10988         1, no point waiting around for test code.
10989         (_dbus_server_debug_accept_transport): unref the timeout
10990         after adding it (right?)
10991
10992         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10993
10994 2003-03-13  Havoc Pennington  <hp@redhat.com>
10995
10996         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10997         out of memory
10998
10999         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11000         of memory
11001
11002         * dbus/dbus-connection.h: Make AddWatchFunction and
11003         AddTimeoutFunction return a bool so they can fail on out-of-memory
11004
11005         * bus/bus.c (bus_context_new): set up timeout handlers
11006
11007         * bus/connection.c (bus_connections_setup_connection): set up
11008         timeout handlers
11009
11010         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11011         can fail
11012
11013         * bus/bus.c (bus_context_new): adapt to changes
11014
11015         * bus/connection.c: adapt to changes
11016
11017         * test/watch.c: adapt to DBusWatch changes
11018
11019         * bus/dispatch.c (bus_dispatch_test): started adding this but
11020         didn't finish
11021
11022 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11023
11024         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11025
11026 2003-03-13  Havoc Pennington  <hp@pobox.com>
11027
11028         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11029         set up a test framework as for the library
11030
11031 2003-03-12  Havoc Pennington  <hp@pobox.com>
11032
11033         Throughout: purge global variables, introduce BusActivation,
11034         BusConnections, BusRegistry, etc. objects instead.
11035
11036         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11037         message bus object
11038
11039         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11040         going to redo this a bit differently I think
11041
11042 2003-03-12  Havoc Pennington  <hp@redhat.com>
11043
11044         Mega-patch that gets the message bus daemon initially handling
11045         out-of-memory. Work still needed. Also lots of random
11046         moving stuff to DBusError instead of ResultCode.
11047
11048         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11049
11050         * dbus/dbus-connection.c
11051         (dbus_connection_send_with_reply_and_block): use DBusError
11052
11053         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11054         DBusResultCode
11055
11056         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11057         code here, as the only failure possible is OOM.
11058
11059         * bus/connection.c (bus_connection_disconnect):
11060         rename bus_connection_disconnected as it's a notification only
11061
11062         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11063         "name" on get_args failure, should be done by get_args;
11064         don't disconnect client for bad args, just return an error.
11065         (bus_driver_handle_service_exists): ditto
11066
11067         * bus/services.c (bus_services_list): NULL-terminate returned array
11068
11069         * bus/driver.c (bus_driver_send_service_lost)
11070         (bus_driver_send_service_acquired): send messages from driver to a
11071         specific client to the client's unique name, not to the broadcast
11072         service.
11073
11074         * dbus/dbus-message.c (decode_header_data): reject messages that
11075         contain no name field
11076         (_dbus_message_get_client_serial): rename to
11077         dbus_message_get_serial and make public
11078         (_dbus_message_set_serial): rename from set_client_serial
11079         (_dbus_message_set_reply_serial): make public
11080         (_dbus_message_get_reply_serial): make public
11081
11082         * bus/connection.c (bus_connection_foreach): allow stopping
11083         iteration by returning FALSE from foreach function.
11084
11085         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11086         (dbus_connection_free_preallocated_send)
11087         (dbus_connection_preallocate_send): new API for sending a message
11088         without possibility of malloc failure.
11089         (dbus_connection_send_message): rename to just
11090         dbus_connection_send (and same for whole function family)
11091
11092         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11093
11094         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11095
11096         * bus/activation.c: handle/return errors
11097
11098         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11099
11100         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11101         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11102         (_dbus_result_from_errno): move to this file
11103
11104 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11105
11106         * dbus/dbus-marshal.c:
11107         (_dbus_marshal_set_string):
11108         Take a length argument so we can marshal the correct string
11109         length.
11110
11111         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11112         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11113         (_dbus_marshal_test):
11114         * dbus/dbus-marshal.h:
11115         Add support for marshalling and demarshalling dicts.
11116
11117         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11118         Add support for TYPE DICT.
11119
11120         * dbus/dbus-message.c: (set_string_field):
11121         Adjust header padding.
11122
11123         (dbus_message_append_args_valist), (dbus_message_append_dict),
11124         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11125         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11126         (check_message_handling), (check_have_valid_message):
11127         * dbus/dbus-message.h:
11128         Add functions for setting and getting dicts.
11129
11130         * dbus/dbus-protocol.h:
11131         Add DBUS_TYPE_DICT.
11132
11133         * dbus/dbus.h:
11134         Add dbus-dict.h
11135
11136         * doc/dbus-specification.sgml:
11137         Add information about how dicts are marshalled.
11138
11139         * test/data/invalid-messages/dict-with-nil-value.message:
11140         * test/data/invalid-messages/too-short-dict.message:
11141         * test/data/valid-messages/dict-simple.message:
11142         * test/data/valid-messages/dict.message:
11143         Add sample messages containing dicts.
11144
11145 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11146
11147         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11148
11149 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11150
11151         * dbus/Makefile.am:
11152         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11153         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11154         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11155         (dbus_dict_set_double), (dbus_dict_set_string),
11156         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11157         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11158         (dbus_dict_set_string_array), (_dbus_dict_test):
11159         * dbus/dbus-dict.h:
11160         Fix according to comments from Havoc.
11161
11162 2003-03-06  Michael Meeks  <michael@server.home>
11163
11164         * configure.in: if we don't have kde-config, disable have_qt.
11165
11166 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11167
11168         * dbus/Makefile.am:
11169         Add dbus-dict.[ch]
11170
11171         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11172         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11173         (dbus_dict_remove), (dbus_dict_get_value_type),
11174         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11175         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11176         (dbus_dict_put_double), (dbus_dict_put_string),
11177         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11178         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11179         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11180         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11181         (dbus_dict_get_double), (dbus_dict_get_string),
11182         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11183         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11184         (dbus_dict_get_string_array), (_dbus_dict_test):
11185         * dbus/dbus-dict.h:
11186         Add DBusDict implementation
11187
11188         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11189         * dbus/dbus-test.h:
11190         Add _dbus_dict_test
11191
11192 2003-03-04  Havoc Pennington  <hp@pobox.com>
11193
11194         * test/data/auth/*: adapt to changes
11195
11196         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11197         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11198         userid
11199
11200         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11201         more stuff from being in a context name, to make the protocol
11202         simpler to deal with
11203
11204         * dbus/dbus-errors.c (dbus_error_has_name): new function
11205         (dbus_error_is_set): new function
11206
11207         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11208         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11209
11210         * dbus/dbus-connection.c (dbus_connection_flush): also read
11211         messages during a flush operation
11212
11213         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11214
11215 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11216
11217         * configure.in: Check for gethostbyname on Solaris.
11218
11219         * dbus/dbus-transport.c: (_dbus_transport_open):
11220         Remove duplicate "tcp" entry.
11221
11222         * doc/dbus-specification.sgml:
11223         Clarify some things.
11224
11225 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11226
11227         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11228         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11229         (_dbus_keyring_test):
11230         * dbus/dbus-md5.c: (_dbus_md5_compute):
11231         * dbus/dbus-sha.c: (_dbus_sha_compute):
11232         Plug memory leaks.
11233
11234 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11235
11236         * README: Add some things.
11237
11238 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11239
11240         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11241         after case DBUS_TYPE_BOOELAN.
11242
11243 2003-03-02  Havoc Pennington  <hp@pobox.com>
11244
11245         * test/break-loader.c (randomly_set_extreme_ints): add test that
11246         sets really huge and small integers
11247
11248         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11249         that length of boolean array fits in the string, and that
11250         string has room for boolean value in single-bool case.
11251
11252         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11253         optional value to "ALIGN" command which is what to fill the
11254         alignment with.
11255
11256         * test/data/valid-messages/no-padding.message: add regression
11257         test for the message padding problem
11258
11259 2003-03-02  Havoc Pennington  <hp@pobox.com>
11260
11261         * dbus/dbus-message.c (decode_header_data): fix to always init
11262         message_padding, from Benjamin Dauvergne
11263
11264 2003-03-02  Havoc Pennington  <hp@pobox.com>
11265
11266         * configure.in: 0.5
11267
11268         * NEWS: Update.
11269
11270 2003-03-01  Joe Shaw  <joe@assbarn.com>
11271
11272         * configure.in: Check for "struct cmsgcred" and try to access its
11273         members for BSD-like unices.
11274
11275         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11276         _dbus_read_credentials_unix_socket().
11277         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11278         read() for reading the credential byte off the unix socket.  Use
11279         struct cmsgcred on systems that support it.
11280
11281 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11282
11283         * glib/Makefile.am:
11284         * configure.in:
11285         Make gthreads-2.0 dependency optional. Don't build thread test if
11286         its not found.
11287
11288 2003-02-27  Havoc Pennington  <hp@pobox.com>
11289
11290         * dbus/dbus-connection.c
11291         (dbus_connection_send_message_with_reply_and_block): fix doh!
11292         doh! doh! bug that resulted in never removing a reply from the
11293         queue, no wonder we called get_reply_serial so much ;-)
11294
11295         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11296         and client serial instead of demarshaling them every time
11297
11298 2003-02-27  Havoc Pennington  <hp@pobox.com>
11299
11300         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11301         more inlined, using dbus-string-private.h, speeds things up
11302         substantially
11303
11304         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11305         when freeing the string
11306         (_dbus_string_steal_data): fix for align offset
11307         (undo_alignment): new function
11308
11309 2003-02-26  Havoc Pennington  <hp@redhat.com>
11310
11311         All kinds of audit fixes from Owen, plus initial attempt to
11312         handle unaligned memory returned from malloc.
11313
11314         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11315         leave room for align_offset and nul byte
11316         (fixup_alignment): function to track an align_offset and
11317         ensure real->str is aligned
11318         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11319         to allow a nul byte plus align offset
11320         (_dbus_string_lock): fix overflow issue
11321         (_dbus_string_init_const_len): add assertions on sanity of len,
11322         assign allocated to be ALLOCATION_PADDING larger than len
11323         (set_length): fixup the overflow handling
11324         (_dbus_string_get_data_len): fix overflow in assertion
11325         (open_gap): detect overflow in size of gap to be opened
11326         (_dbus_string_lengthen): add overflow check
11327         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11328         (_dbus_string_append): add overflow check
11329         (_dbus_string_append_unichar): overflow
11330         (_dbus_string_delete): fix overflow in assertion
11331         (_dbus_string_copy_len): overflow in assertion
11332         (_dbus_string_replace_len): overflows in assertions
11333         (_dbus_string_find): change to implement in terms of
11334         _dbus_string_find_to
11335         (_dbus_string_find_to): assorted fixage
11336         (_dbus_string_equal_c_str): assert c_str != NULL,
11337         fix logic so the function works
11338         (_dbus_string_ends_with_c_str): fix overflow thingy
11339         (_dbus_string_base64_encode): overflow fix
11340         (_dbus_string_validate_ascii): overflow
11341         (_dbus_string_validate_nul): overflow
11342
11343 2003-02-26  Havoc Pennington  <hp@redhat.com>
11344
11345         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11346
11347 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11348
11349         * configure.in:
11350         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11351
11352         * dbus/dbus-connection.c:
11353         * dbus/dbus-connection.h:
11354         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11355         Add dbus_connection_set_wakeup_main_function and use it when queueing
11356         incoming and outgoing messages.
11357
11358
11359         * dbus/dbus-dataslot.c:
11360         Threadsafe usage of DBusDataSlotAllocator
11361
11362         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11363         dbus_new can fail.
11364
11365         * dbus/dbus-server-unix.c:
11366         Add todo comment
11367
11368         * glib/dbus-gmain.c:
11369         Implement the new wakeup functions for glib.
11370
11371         * glib/Makefile.am:
11372         * glib/test-thread-client.c:
11373         * glib/test-thread-server.c:
11374         * glib/test-thread.h:
11375         Initial cut at some thread test code. Not really done yet.
11376
11377 2003-02-26  Havoc Pennington  <hp@pobox.com>
11378
11379         * dbus/dbus-connection.c
11380         (dbus_connection_send_message_with_reply_and_block): fix crash
11381         where we ref'd the outgoing message instead of the returned reply
11382
11383         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11384         at the end of this function, so if we didn't need to read for
11385         authentication, we reinstall it for receiving messages
11386
11387         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11388         a NULL sender for peer-to-peer case
11389
11390         * dbus/dbus-transport-unix.c (check_read_watch): handle
11391         !authenticated case correctly
11392
11393         * glib/dbus-gmain.c: add support for DBusServer
11394
11395         * dbus/dbus-server.c: add data slot support
11396
11397         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11398         return values and handle errors
11399
11400         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11401         DBusConnection
11402
11403         * Doxyfile.in (INPUT): add glib subdir
11404
11405         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11406         setup_with_g_main instead of hookup_with_g_main; write docs
11407
11408 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11409
11410         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11411         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11412         * dbus/dbus-message.c: (dbus_message_append_boolean),
11413         (dbus_message_append_boolean_array),
11414         (dbus_message_get_args_valist), (_dbus_message_test):
11415         * dbus/dbus-message.h:
11416         * doc/dbus-specification.sgml:
11417         Various fixes as pointed out by Havoc.
11418
11419         * test/data/invalid-messages/bad-boolean-array.message:
11420         * test/data/invalid-messages/bad-boolean.message:
11421         Add invalid boolean value test cases.
11422
11423 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11424
11425         * dbus/dbus-internals.c: (_dbus_type_to_string):
11426         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11427         (_dbus_marshal_validate_arg):
11428         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11429         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11430         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11431         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11432         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11433         (dbus_message_iter_get_double),
11434         (dbus_message_iter_get_boolean_array), (message_iter_test):
11435         * dbus/dbus-message.h:
11436         * dbus/dbus-protocol.h:
11437         * doc/dbus-specification.sgml:
11438         * test/data/valid-messages/lots-of-arguments.message:
11439         Add support for boolean and boolean array types.
11440
11441 2003-02-23  Havoc Pennington  <hp@pobox.com>
11442
11443         * dbus/dbus-keyring.c: finish most of this implementation and
11444         simple unit test
11445
11446         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11447         these barf if the error isn't cleared to NULL
11448
11449         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11450         (_dbus_create_directory): new function
11451
11452         * dbus/dbus-errors.c (dbus_set_error): fix warning
11453
11454         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11455         (_dbus_string_hex_decode): new function
11456         (test_hex_roundtrip): test code
11457
11458         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11459
11460         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11461
11462         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11463         the save-to-temp/rename trick to atomically write the new file
11464         (_dbus_string_parse_uint): new function
11465
11466 2003-02-22  Havoc Pennington  <hp@pobox.com>
11467
11468         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11469
11470 2003-02-22  Havoc Pennington  <hp@pobox.com>
11471
11472         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11473         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11474
11475         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11476
11477         * dbus/test/data/sha-1: add US government test suite for SHA-1
11478
11479 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11480
11481         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11482         Make string arrays NULL-terminated.
11483
11484         * dbus/dbus-memory.c: (dbus_free_string_array):
11485         * dbus/dbus-memory.h:
11486         New function for freeing NULL-terminated string arrays.
11487
11488         * dbus/dbus-message-builder.c: (append_quoted_string),
11489         (_dbus_message_data_load):
11490         Add support for array types.
11491
11492         * dbus/dbus-message.c: (check_message_handling):
11493         Add more types as test cases.
11494
11495         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11496         (_dbus_string_parse_double):
11497         Add the start offset to the end offset.
11498
11499         * test/data/valid-messages/lots-of-arguments.message:
11500         New test message with lots of arguments.
11501
11502 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11503
11504         * dbus/dbus-message.c: (dbus_message_append_nil),
11505         (dbus_message_append_int32), (dbus_message_append_uint32),
11506         (dbus_message_append_double), (dbus_message_append_string),
11507         (dbus_message_append_int32_array),
11508         (dbus_message_append_uint32_array),
11509         (dbus_message_append_double_array),
11510         (dbus_message_append_byte_array),
11511         (dbus_message_append_string_array):
11512         Fix all out-of-memory handling in these functions.
11513
11514 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11515
11516         * dbus/dbus-message.c: (dbus_message_append_nil):
11517         Fix a silly.
11518
11519 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11520
11521         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11522         (dbus_message_append_nil), (dbus_message_append_int32_array),
11523         (dbus_message_append_uint32_array),
11524         (dbus_message_append_double_array),
11525         (dbus_message_append_byte_array),
11526         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11527         (dbus_message_iter_get_int32_array),
11528         (dbus_message_iter_get_uint32_array),
11529         (dbus_message_iter_get_double_array),
11530         (dbus_message_iter_get_byte_array),
11531         (dbus_message_iter_get_string_array):
11532
11533         * dbus/dbus-message.h:
11534         Add functions for appending and getting arrays.
11535
11536 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11537
11538         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11539         element size at least 8 bytes, fixes mempool tests on
11540         64-bit machines.
11541
11542 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11543
11544         * dbus/dbus-transport-unix.c (unix_do_iteration):
11545         Unlock the connection mutex during a blocking select call.
11546         Add todo about how we need a way to wake up the select.
11547
11548         * dbus/dbus-connection-internal.h:
11549         * dbus/dbus-connection.c:
11550         Add _dbus_connection_lock and _dbus_connection_unlock.
11551
11552 2003-02-19  Havoc Pennington  <hp@pobox.com>
11553
11554         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11555         Doxyfile.in, not Doxyfile
11556
11557         * dbus/dbus-keyring.c: do some hacking on this
11558
11559         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11560
11561         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11562         dbus_error_init
11563         (dbus_set_error): remove dbus_error_init, check for message ==
11564         NULL *before* we sprintf into it, and add @todo about including
11565         system headers in this file
11566
11567         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11568
11569         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11570
11571         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11572         get various bits of user information based on either username
11573         or user ID
11574         (_dbus_homedir_from_username): new function
11575
11576 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11577
11578         * configure.in:
11579         Add check for nonposix getpwnam_r
11580
11581         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11582         Align the pool element size to a sizeof (void *) boundary.
11583
11584         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11585         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11586         General Solaris fixes.
11587
11588         * test/data/valid-messages/simplest-manual.message:
11589         Explicitly state that we want little-endian packing.
11590
11591 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11592
11593         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11594
11595         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11596         Added to create a transport connecting using a tcp/ip socket.
11597
11598         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11599         to a tcp socket at given host and port.
11600         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11601         hostname and port.
11602
11603         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11604
11605         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11606         Added to create a server listening on a TCP/IP socket.
11607
11608 2003-02-19  Havoc Pennington  <hp@pobox.com>
11609
11610         Throughout: mop up all the Doxygen warnings and undocumented
11611         stuff.
11612
11613         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11614         to search any paths.
11615
11616         * dbus/dbus-threads.c: move global mutex initializers to
11617         dbus-internals.h, multiple prototypes was confusing doxygen
11618         besides being kind of ugly
11619
11620         * Doxyfile (PREDEFINED): have Doxygen define
11621         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11622         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11623         (do not abuse the feature! it's for stuff like the autogenerated
11624         macros in dbus-md5.c, not just for things you don't feel like
11625         documenting...)
11626
11627 2003-02-18  Havoc Pennington  <hp@pobox.com>
11628
11629         * dbus/dbus-string.c (_dbus_string_zero): new function
11630
11631         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11632         wrap it in some dbus-friendly API
11633
11634         * dbus/dbus-types.h: add 16-bit types
11635
11636 2003-02-18  Joe Shaw  <joe@assbarn.com>
11637
11638         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11639         credentials from our currently running process.
11640         (get_word): Fix a buglet where we were copying the entire length
11641         instead of relative to our position.
11642
11643         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11644         keys on the stack... it's 640k of data.
11645
11646         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11647         read the credentials byte off the socket, even if we don't have
11648         SO_PEERCRED.
11649         (_dbus_poll): Implement poll() using select() for systems which
11650         don't have it.
11651
11652         * glib/test-dbus-glib.c (main): Print out an error if no
11653         parameters are given.
11654
11655         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11656         can fallback to a secondary auth mechanism if the first fails.
11657
11658 2003-02-18  Havoc Pennington  <hp@pobox.com>
11659
11660         * AUTHORS: add Alex
11661
11662 2003-02-17  Havoc Pennington  <hp@pobox.com>
11663
11664         * doc/dbus-specification.sgml: lots of cosmetic
11665         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11666         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11667         s/server/bus/ (except in authentication section). Add a section
11668         "Message Bus Message Routing"
11669
11670 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11671
11672         Release 0.4
11673
11674         * NEWS: Update
11675
11676 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11677
11678         * doc/dbus-specification.sgml:
11679         Specification updates.
11680
11681 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11682
11683         * bus/activation.c: (bus_activation_init), (child_setup),
11684         (bus_activation_activate_service):
11685         * bus/activation.h:
11686         * bus/main.c: (main):
11687         Set DBUS_ADDRESS environment variable.
11688
11689         * dbus/dbus-errors.c: (dbus_set_error):
11690         Don't use va_copy since that's a C99 feature.
11691
11692         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11693         (_dbus_spawn_async):
11694         * dbus/dbus-sysdeps.h:
11695         Add child_setup_func to _dbus_spawn_async.
11696
11697         * doc/dbus-specification.sgml:
11698         Update specification.
11699
11700         * test/spawn-test.c: (setup_func), (main):
11701         Fix test.
11702
11703 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11704
11705         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11706         Added todo.
11707
11708 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11709
11710         * doc/.cvsignore:
11711         * doc/Makefile.am:
11712         * doc/dbus-test-plan.sgml:
11713         Add test plan document.
11714
11715         * test/Makefile.am:
11716         Fix distcheck.
11717
11718 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11719
11720         * dbus/dbus-message.c: (decode_header_data),
11721         (_dbus_message_loader_return_buffer):
11722         Set the header padding amount when loading a message.
11723
11724 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11725
11726         * bus/dispatch.c: (send_one_message):
11727         Only send broadcast messages to registered connections.
11728
11729         * dbus/dbus-message.c: (dbus_message_name_is):
11730         * dbus/dbus-message.h:
11731         New convenience function.
11732
11733         * dbus/dbus-transport-debug.c: (do_reading):
11734         Only dispatch one message per run.
11735
11736         * test/Makefile.am:
11737         * test/bus-test.c: (new_connection_callback), (die),
11738         (test_hello_client1_handler), (test_hello_client2_handler),
11739         (test_hello_replies), (main):
11740
11741         * test/bus-test-loop.[ch]:
11742         Add these.
11743
11744 2003-02-16  Havoc Pennington  <hp@pobox.com>
11745
11746         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11747         backward conditional
11748
11749 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11750
11751         * dbus/dbus-connection.c:
11752         Implement sent_message_with_reply. (with_reply_and block is still
11753         busted).
11754         Made dispatch_message not lose message if OOM.
11755
11756         * dbus/dbus-errors.h:
11757         Add NoReply error (for reply timeouts).
11758
11759 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11760
11761         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11762         Actually free keys and values when destroying hashtable.
11763
11764 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11765
11766         * dbus/dbus-auth.c: (client_try_next_mechanism):
11767         Plug a leak.
11768
11769         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11770         Return TRUE if there's no thread implementation around.
11771
11772         * glib/dbus-gmain.c: (free_source),
11773         (dbus_connection_hookup_with_g_main):
11774         Make sure to remove the GSource when the connection is finalized.
11775
11776 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11777
11778         * bus/dispatch.c: (bus_dispatch_message_handler):
11779         * dbus/dbus-errors.h:
11780         Return an error if someone tries to send a message to a service
11781         that doesn't exist.
11782
11783 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11784
11785         * bus/activation.c: (load_directory), (bus_activation_init),
11786         (bus_activation_activate_service):
11787         * bus/activation.h:
11788         * bus/driver.c:
11789         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11790         More work on the activation handling.
11791
11792         * dbus/dbus-errors.h:
11793         Add some error messages
11794
11795         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11796         * dbus/dbus-message.h:
11797         New function that creates an error message.
11798
11799         * dbus/dbus-protocol.h:
11800         Add ACTIVATE_SERVER message.
11801
11802         * dbus/dbus-server-unix.c: (unix_handle_watch),
11803         (_dbus_server_new_for_domain_socket):
11804         Call _dbus_fd_set_close_on_exec.
11805
11806         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11807         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11808         (_dbus_fd_set_close_on_exec):
11809         * dbus/dbus-sysdeps.h:
11810         Add _dbus_fd_set_close_on exec function. Also add function that checks
11811         that all open fds are set to close-on-exec and warns otherwise.
11812
11813         * dbus/dbus-transport-unix.c:
11814         (_dbus_transport_new_for_domain_socket):
11815         Call _dbus_fd_set_close_on_exec.
11816
11817 2003-02-16  Havoc Pennington  <hp@pobox.com>
11818
11819         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11820         allow people to avoid setting SIGPIPE to SIG_IGN
11821         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11822         we've been asked not to
11823
11824 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11825
11826         * dbus/dbus-list.c: (_dbus_list_append_link),
11827         (_dbus_list_prepend_link):
11828         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11829         (dbus_realloc):
11830         Warning fixes.
11831
11832 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11833
11834         * bus/Makefile.am:
11835         * bus/activation.c: (bus_activation_entry_free),
11836         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11837         * bus/activation.h:
11838         * bus/main.c: (main):
11839         Add simple activation support, doesn't work yet though.
11840
11841 2003-02-15   Zack Rusin  <zack@kde.org>
11842
11843         * qt/dbus-qthread.cpp:  small casting fix
11844
11845 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11846
11847         * dbus/dbus-errors.c: (dbus_set_error):
11848         * dbus/dbus-errors.h:
11849         Add a few errors and make dbus_set_error void.
11850
11851         * dbus/dbus-sysdeps.c:
11852         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11853         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11854         * dbus/dbus-sysdeps.h:
11855         Add _dbus_spawn_async.
11856
11857         * test/spawn-test.c: (main):
11858         Test for _dbus_spawn_async.
11859
11860 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11861
11862         * dbus/dbus-internals.h:
11863         Fix build without tests.
11864
11865         * dbus/dbus-list.c: (alloc_link):
11866         Fix a segfault when a malloc fails.
11867
11868         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11869         (dbus_malloc0), (dbus_realloc):
11870         Add support for malloc debugging.
11871
11872 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11873
11874         * dbus/dbus-threads.c:
11875         * dbus/dbus-threads.h:
11876         Add condvars. Remove static mutext from API.
11877         Implement static mutexes by initializing them from threads_init.
11878
11879         * glib/dbus-gthread.c:
11880         * qt/dbus-qthread.cpp:
11881         Update with the thread api changes.
11882
11883
11884         * dbus/dbus-list.c:
11885         * dbus/dbus-list.h:
11886         Turn StaticMutex into normal mutex + init function.
11887         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11888         _dbus_list_append_link, _dbus_list_prepend_link
11889
11890
11891         * dbus/dbus-sysdeps.c:
11892         * dbus/dbus-sysdeps.h:
11893         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11894         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11895
11896         * dbus/dbus-protocol.h:
11897         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11898
11899         * dbus/dbus-message.c:
11900         Make ref/unref atomic.
11901         Fix some docs.
11902
11903         * dbus/dbus-connection-internal.h:
11904         * dbus/dbus-connection.c:
11905         * dbus/dbus-connection.h:
11906         Make threadsafe.
11907         Change _peek to _borrow,_return & _steal_borrowed.
11908         Change disconnect callback to event.
11909         Make dbus_connection_dispatch_messages reentrant.
11910
11911         * dbus/dbus-transport.c:
11912         Don't ref the connection on calls to the transport
11913         implementation.
11914
11915         * dbus/dbus-message-handler.c:
11916         Make threadsafe.
11917
11918         * glib/dbus-gmain.c:
11919         Don't use peek_message anymore
11920
11921         * test/Makefile.am:
11922         * test/debug-thread.c:
11923         * test/debug-thread.h:
11924         Simple thread implementation that asserts() on deadlocks in
11925         single-threaded code.
11926
11927         * test/bus-test.c:
11928         (main) Call debug_threads_init.
11929
11930         * test/watch.c:
11931         Use disconnect message instead of disconnect callback.
11932
11933         * bus/connection.c:
11934         * bus/connection.h:
11935         Don't call dbus_connection_set_disconnect_function. Instead export
11936         bus_connection_disconnect.
11937
11938         * bus/dispatch.c:
11939         Call bus_connection_disconnect when we get a disconnected message.
11940
11941 2003-02-15  Havoc Pennington  <hp@pobox.com>
11942
11943         * dbus/dbus-message.c (dbus_message_new): fool around with the
11944         docs
11945
11946 2003-02-14  Havoc Pennington  <hp@pobox.com>
11947
11948         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11949
11950         * dbus/dbus-memory.c: fail if the debug functions indicate we
11951         should
11952
11953         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11954         (_dbus_decrement_fail_alloc_counter): debug functions to
11955         simulate memory allocation failures
11956
11957 2003-02-14  Havoc Pennington  <hp@pobox.com>
11958
11959         * dbus/dbus-errors.h (struct DBusError): add a word of padding
11960         to DBusError
11961
11962 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11963
11964         * bus/driver.c: (bus_driver_handle_hello):
11965         * bus/driver.h:
11966         * bus/services.c: (bus_service_lookup):
11967         Reorder message sending so we get a more sane order.
11968
11969         * test/bus-test.c: (message_handler):
11970         Fix tyop.
11971
11972 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
11973
11974         * bus/driver.c: (bus_driver_send_service_deleted),
11975         (bus_driver_send_service_created), (bus_driver_send_service_lost),
11976         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11977         (bus_driver_send_welcome_message),
11978         (bus_driver_handle_list_services),
11979         (bus_driver_handle_acquire_service),
11980         (bus_driver_handle_service_exists):
11981         * dbus/dbus-bus.c: (dbus_bus_register_client),
11982         (dbus_bus_acquire_service), (dbus_bus_service_exists):
11983         * dbus/dbus-errors.c: (dbus_result_to_string):
11984         * dbus/dbus-errors.h:
11985         * dbus/dbus-message.c: (dbus_message_append_args),
11986         (dbus_message_append_args_valist), (dbus_message_get_args),
11987         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11988         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11989         (dbus_message_iter_get_byte_array),
11990         (dbus_message_iter_get_string_array), (message_iter_test),
11991         (check_message_handling), (_dbus_message_test):
11992         * dbus/dbus-message.h:
11993         * test/bus-test.c: (main):
11994         Change fields to arguments in messages, so that they won't be
11995         confused with header fields.
11996
11997         * glib/test-dbus-glib.c: (main):
11998         Remove append_fields from hello message.
11999
12000 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12001
12002         * dbus/dbus-errors.c:
12003         * dbus/dbus-message.c:
12004         * dbus/dbus-string.c:
12005         Documentation fixes.
12006
12007 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12008
12009         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12010         (remove_timeout):
12011         Implement support for timeouts in dbus-glib.
12012
12013 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12014
12015         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12016         * dbus/dbus-message.c: (process_test_subdir):
12017         * test/break-loader.c: (find_breaks_based_on):
12018         Plug some memory leaks.
12019
12020 2003-02-13  Richard Hult  <rhult@codefactory.se>
12021
12022         * bus/main.c: Fix build.
12023
12024         * dbus/dbus-errors.h:
12025         * dbus/dbus-errors.c: Fix copyright for Anders.
12026
12027 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12028
12029         * bus/Makefile.am:
12030         Add utils.[ch]
12031
12032         * bus/connection.c: (bus_connection_foreach):
12033         Fix a warning.
12034
12035         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12036         (unescape_string), (new_section), (parse_section_start),
12037         (parse_key_value), (report_error), (bus_desktop_file_load),
12038         (bus_desktop_file_get_string):
12039         * bus/desktop-file.h:
12040         Use DBusError for error reporting.
12041
12042         * bus/dispatch.c: (send_one_message),
12043         (bus_dispatch_message_handler):
12044         * bus/driver.c: (bus_driver_send_service_deleted),
12045         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12046         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12047         (bus_driver_send_welcome_message),
12048         (bus_driver_handle_list_services),
12049         (bus_driver_handle_acquire_service),
12050         (bus_driver_handle_service_exists):
12051         * bus/loop.c: (bus_loop_run):
12052         * bus/main.c:
12053         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12054
12055         * bus/utils.c: (bus_wait_for_memory):
12056         * bus/utils.h:
12057         New files with general utility functions.
12058
12059         * dbus/dbus-internals.h:
12060         Remove _DBUS_HANDLE_OOM.
12061
12062 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12063
12064         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12065         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12066         * dbus/dbus-errors.h:
12067         Add DBusError structure.
12068
12069 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12070
12071         * test/data/valid-messages/standard-acquire-service.message:
12072         * test/data/valid-messages/standard-hello.message:
12073         * test/data/valid-messages/standard-list-services.message:
12074         * test/data/valid-messages/standard-service-exists.message:
12075         Add some standard messages.
12076
12077 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12078
12079         * bus/driver.c: (bus_driver_send_welcome_message),
12080         (bus_driver_handle_list_services),
12081         (bus_driver_handle_acquire_service),
12082         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12083         Update for API changes in libdbus.
12084
12085         * dbus/dbus-message.c: (dbus_message_new_reply):
12086         * dbus/dbus-message.h:
12087         Remove the name argument. The spec states that replies shouldn't
12088         have a name.
12089
12090 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12091
12092         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12093         (report_error), (bus_desktop_file_load), (lookup_section),
12094         (lookup_line), (bus_desktop_file_get_raw),
12095         (bus_desktop_file_get_string):
12096         * bus/desktop-file.h:
12097         Some fixes, and new functions for getting a key value from a section.
12098
12099 2003-02-13  Havoc Pennington  <hp@pobox.com>
12100
12101         * test/data/auth/fail-after-n-attempts.auth-script: new test
12102
12103         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12104         reject the client.
12105
12106 2003-02-13  Havoc Pennington  <hp@pobox.com>
12107
12108         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12109         dbus_credentials_match were backward
12110
12111         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12112         NO_CREDENTIALS and ROOT_CREDENTIALS
12113
12114         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12115         into here. Never process more commands after we've reached an
12116         end state; store further data as unused bytes.
12117
12118         * test/data/auth/*: add more auth tests
12119
12120         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12121         command to match exact string and EXPECT_UNUSED to match unused
12122         bytes
12123
12124         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12125
12126 2003-02-12  Havoc Pennington  <hp@pobox.com>
12127
12128         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12129         \r off of popped lines
12130
12131         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12132         scripts
12133
12134         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12135         SEND, append \r\n
12136
12137 2003-02-12  Havoc Pennington  <hp@pobox.com>
12138
12139         * dbus/Makefile.am: remove break-loader from the build, since it
12140         moved.
12141
12142         * configure.in: add --enable-gcov to turn on coverage profiling
12143         flags and disable optimization
12144
12145 2003-02-10  Havoc Pennington  <hp@pobox.com>
12146
12147         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12148         initial cut at test framework for DBusAuth from laptop.
12149         Doesn't quite work yet but it compiles and I need to get
12150         it off the 266mhz laptop. ;-)
12151
12152         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12153         fix a memleak in error case
12154
12155 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12156
12157         * bus/Makefile.am:
12158         * bus/desktop-file.c:
12159         * bus/desktop-file.h:
12160         Add a desktop file parser.
12161
12162 2003-02-11  Zack Rusin  <zack@kde.org>
12163
12164         * qt/message.[h|cpp]: sample implementation
12165         of the KDE wrapper for DBusMessage
12166
12167 2003-02-09  Zack Rusin  <zack@kde.org>
12168
12169         * test/bus-test.c: make_it_compile
12170         * doc/dbus-specification.sgml: minimal semantic fix
12171
12172 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12173
12174         Release 0.3
12175
12176         * NEWS: Update
12177
12178 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12179
12180         * dbus/Makefile.am:
12181         * dbus/dbus-break-loader.c:
12182         * test/Makefile.am:
12183         * test/break-loader.c:
12184         Move dbus-break-loader to test/ and rename it to break-loader.
12185
12186 2003-02-02  Havoc Pennington  <hp@pobox.com>
12187
12188         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12189         for code to manage cookies in your home directory
12190
12191         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12192
12193         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12194         to authenticate, then disconnect the client.
12195
12196 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12197
12198         * dbus/dbus-message.c (dbus_message_append_fields):
12199         Correct docs.
12200
12201 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12202
12203         * doc/dbus-specification.sgml:
12204         Update address format section.
12205
12206 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12207
12208         * test/Makefile.am:
12209         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12210         (message_handler), (new_connection_callback), (loop_quit),
12211         (loop_run), (main):
12212         Add bus test.
12213
12214 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12215
12216         * bus/driver.c: (bus_driver_handle_service_exists):
12217         Simplify the code a bit.
12218
12219         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12220         Fix a silly.
12221
12222 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12223
12224         * bus/Makefile.am:
12225         Add libdbus-daemon.la and link to it.
12226
12227 2003-02-01  James Willcox  <jwillcox@gnome.org>
12228
12229         * bus/driver.c: (bus_driver_handle_own_service):
12230         Actually include the service reply code in the message.
12231
12232 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12233
12234         * bus/driver.c: (bus_driver_handle_service_exists):
12235         Don't unref the incoming message.
12236
12237 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12238
12239         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12240
12241 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12242
12243         * dbus/dbus-server.c: (dbus_server_listen):
12244         * dbus/dbus-transport.c: (_dbus_transport_open):
12245         ifdef out the calls to the debug transport and server.
12246
12247 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12248
12249         * dbus/dbus-watch.c (dbus_watch_get_flags):
12250         Add note in the docs that ERROR or HANGUP won't be returned
12251         and are assumed always on.
12252
12253         * glib/dbus-gmain.c (add_watch):
12254         Always add IO_ERR | IO_HUP
12255
12256         * dbus/dbus-message.h:
12257         Add semicolon after dbus_message_iter_get_string_array().
12258         Makes qt code build again
12259
12260 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12261
12262         * bus/driver.c: (create_unique_client_name),
12263         (bus_driver_handle_hello):
12264         Don't take a name, just use a numeric id to identify
12265         each client.
12266
12267         * dbus/Makefile.am:
12268         * dbus/dbus-bus.c: (dbus_bus_register_client),
12269         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12270         * dbus/dbus-bus.h:
12271         Add new convenience functions for communicating with the bus.
12272
12273         * dbus/dbus-message.h:
12274
12275         * dbus/dbus-protocol.h:
12276         Fix a typo.
12277
12278 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12279
12280         * dbus/dbus-message.c (dbus_message_append_fields):
12281         Add some more doc comments.
12282
12283 2003-02-01  Havoc Pennington  <hp@pobox.com>
12284
12285         * dbus/dbus-break-loader.c (randomly_modify_length): change
12286         a 4-byte value in the message as if it were a length
12287
12288         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12289         execute bit on saved files
12290
12291 2003-02-01  Havoc Pennington  <hp@pobox.com>
12292
12293         * dbus/dbus-break-loader.c (main): new program to find messages
12294         that break the loader.
12295
12296         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12297         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12298
12299         * dbus/dbus-string.c (_dbus_string_set_byte): new
12300
12301 2003-01-31  Havoc Pennington  <hp@pobox.com>
12302
12303         * dbus/dbus-message.c: refactor the test code to be more general,
12304         in preparation for writing a "randomly permute test cases to
12305         try to break the loader" program.
12306
12307 2003-01-31  Havoc Pennington  <hp@pobox.com>
12308
12309         * doc/dbus-specification.sgml: work on the specification
12310
12311         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12312         the protocol version of the message.
12313
12314         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12315         no longer specifies that.
12316         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12317         1/2/3/4)
12318
12319         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12320         "break" for DBUS_TYPE_NIL, remove @todo
12321
12322 2003-01-31  Havoc Pennington  <hp@pobox.com>
12323
12324         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12325         just set_is_error/get_is_error as this is a commonly-used
12326         function, and write docs.
12327
12328 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12329
12330         * dbus/dbus-address.c: (dbus_address_entry_free):
12331         Free key and value lists.
12332
12333         * dbus/dbus-internals.c: (_dbus_type_to_string):
12334         Add the types we didn't have.
12335
12336         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12337         (_dbus_marshal_validate_arg):
12338         Add NIL types.
12339
12340         * dbus/dbus-message.c: (dbus_message_set_sender):
12341         Remove todo about being able to set sender to NULL.
12342
12343         (dbus_message_set_is_error_reply),
12344         (dbus_message_get_is_error_reply):
12345         * dbus/dbus-message.h:
12346         New functions.
12347
12348         * dbus/dbus-protocol.h:
12349         Add error reply flag.
12350
12351         * test/data/valid-messages/opposite-endian.message:
12352         Add NIL type to test.
12353
12354 2003-01-31  Havoc Pennington  <hp@pobox.com>
12355
12356         * doc/dbus-specification.sgml: fully specify the header.  Add
12357         flags and major protocol version, and change header/body len to
12358         unsigned.
12359
12360         * dbus/dbus-message-builder.c (append_saved_length): append length
12361         as uint32
12362
12363         * dbus/dbus-message.c (dbus_message_create_header): change header
12364         length and body length to unsigned. Add the new fields from the
12365         spec
12366         (_dbus_message_loader_return_buffer): unsigned header/body len
12367
12368 2003-01-30  Havoc Pennington  <hp@pobox.com>
12369
12370         * dbus/dbus-auth.c: rework to use only REJECTED, no
12371         MECHANISMS
12372
12373         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12374         use REJECTED, suggested by Mark McLoughlin
12375
12376 2003-01-30  Havoc Pennington  <hp@pobox.com>
12377
12378         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12379         a better way to report errors here. e.g.  "unix address lacks
12380         path" or something. also "no such file" when the path doesn't
12381         exist, etc.
12382
12383         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12384         leaking list nodes
12385         (dbus_parse_address): add @todo about documenting address format,
12386         and allowing , and ; to be escaped
12387
12388 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12389
12390         * dbus/Makefile.am:
12391         Add dbus-address.[ch]
12392
12393         * dbus/dbus-address.c: (dbus_address_entry_free),
12394         (dbus_address_entries_free), (create_entry),
12395         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12396         (dbus_parse_address), (_dbus_address_test):
12397         * dbus/dbus-address.h:
12398         New files for dealing with address parsing.
12399
12400         * dbus/dbus-connection.c:
12401         Document timeout functions.
12402
12403         * dbus/dbus-message.c:
12404         Document dbus_message_new_from_message.
12405
12406         * dbus/dbus-server-debug.c:
12407         Document.
12408
12409         * dbus/dbus-server.c: (dbus_server_listen):
12410         Parse address and use correct server implementation.
12411
12412         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12413         * dbus/dbus-string.h:
12414         New function with test.
12415
12416         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12417         * dbus/dbus-test.h:
12418         Add address tests.
12419
12420         * dbus/dbus-transport-debug.c:
12421         Document.
12422
12423         * dbus/dbus-transport.c: (_dbus_transport_open):
12424         Parse address and use correct transport implementation.
12425
12426 2003-01-30  Havoc Pennington  <hp@pobox.com>
12427
12428         * dbus/dbus-message.c: use message->byte_order instead of
12429         DBUS_COMPILER_BYTE_ORDER throughout.
12430         (dbus_message_create_header): pad header to align the
12431         start of the body of the message to 8-byte boundary
12432
12433         * dbus/dbus-marshal.h: make all the demarshalers take const
12434         DBusString arguments.
12435
12436         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12437         validate message args here, so we don't have to do slow validation
12438         later, and so we catch bad messages as they are incoming. Also add
12439         better checks on header_len and body_len. Also fill in
12440         message->byte_order
12441
12442         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12443         implemented properly)
12444         (_dbus_string_validate_nul): new function to check all-nul
12445
12446         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12447         get_arg_end_pos and remove all validation
12448         (_dbus_marshal_validate_arg): actually do validation here.
12449
12450 2003-01-29  Havoc Pennington  <hp@pobox.com>
12451
12452         * dbus/dbus-message.c (check_message_handling): fix assertion
12453         failure on set_client_serial
12454
12455 2003-01-28  Havoc Pennington  <hp@pobox.com>
12456
12457         * dbus/dbus-server-debug.c: Add doc section comments
12458
12459         * dbus/dbus-transport-debug.c: add doc section comments
12460
12461 2003-01-28  Havoc Pennington  <hp@redhat.com>
12462
12463         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12464         the reverse order from how I had it
12465         (_dbus_string_base64_encode): reverse encoding order. I was
12466         basically byteswapping everything during encoding.
12467
12468 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12469
12470         * dbus/dbus-connection-internal.h:
12471         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12472         (_dbus_connection_remove_timeout):
12473         Add functions for adding and removing timeouts.
12474
12475         * dbus/dbus-message.c: (dbus_message_new_from_message):
12476         Add new function that takes a message and creates an exact
12477         copy of it, but with the refcount set to 1.
12478         (check_message_handling):
12479         Fix build error.
12480
12481         * dbus/dbus-server-protected.h:
12482         * dbus/dbus-server.c: (_dbus_server_init_base),
12483         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12484         (dbus_server_set_timeout_functions):
12485         (_dbus_server_remove_timeout):
12486         New functions so that a server can add and remove timeouts.
12487
12488         (dbus_server_listen):
12489         Add commented out call to dbus_server_debug_new.
12490
12491         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12492         Actually set the handler, doh.
12493
12494         * dbus/dbus-transport.c: (_dbus_transport_open):
12495         Add commented out call to dbus_transport_debug_client_new.
12496
12497         * dbus/Makefile.am:
12498         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12499
12500 2003-01-28  Havoc Pennington  <hp@pobox.com>
12501
12502         * dbus/dbus-message.c (check_message_handling): function to check
12503         on the loaded message, iterates over it etc.
12504
12505 2003-01-28  Havoc Pennington  <hp@pobox.com>
12506
12507         * test/Makefile.am (dist-hook): fix make distdir
12508
12509         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12510
12511 2003-01-27  Havoc Pennington  <hp@pobox.com>
12512
12513         * dbus/dbus-mempool.c (time_for_size): replace printf with
12514         _dbus_verbose
12515
12516         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12517         empty lines; fix the SAVE_LENGTH stuff to be
12518         START_LENGTH/END_LENGTH so it actually works; couple other
12519         bugfixes
12520
12521         * test/Makefile.am (dist-hook): add dist-hook for .message files
12522
12523         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12524         can be constant or locked.
12525         (_dbus_string_free): allow freeing a const string as
12526         documented/intended
12527
12528         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12529
12530         * dbus/dbus-test-main.c (main): take an argument which is the
12531         directory containing test data
12532
12533         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12534         argument to this and load all the messages in test/data/
12535         checking that they can be loaded or not loaded as appropriate.
12536
12537 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12538
12539         * bus/dispatch.c: (bus_dispatch_message_handler):
12540         Dispatch messages sent to services.
12541
12542         * bus/driver.c: (bus_driver_send_service_deleted),
12543         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12544         (bus_driver_send_service_acquired):
12545         Add helper functions for sending service related messages.
12546
12547         (bus_driver_send_welcome_message):
12548         Send HELLO_REPLY instead of WELCOME.
12549
12550         (bus_driver_handle_list_services):
12551         Send LIST_SERVICES_REPLY instead of SERVICES.
12552
12553         (bus_driver_handle_own_service),
12554         (bus_driver_handle_service_exists):
12555         New message handlers.
12556
12557         (bus_driver_handle_message):
12558         Invoke new message handlers.
12559
12560         (bus_driver_remove_connection):
12561         Don't remove any services here since that's done automatically
12562         by bus_service_remove_owner now.
12563
12564         * bus/driver.h:
12565         New function signatures.
12566
12567         * bus/services.c: (bus_service_add_owner):
12568         Send ServiceAcquired message if we're the only primary owner.
12569
12570         (bus_service_remove_owner):
12571         Send ServiceAcquired/ServiceLost messages.
12572
12573         (bus_service_set_prohibit_replacement),
12574         (bus_service_get_prohibit_replacement):
12575         Functions for setting prohibit replacement.
12576
12577         (bus_service_has_owner):
12578         New function that checks if a connection is in the owner queue of
12579         a certain service.
12580
12581         * bus/services.h:
12582         Add new function signatures.
12583
12584         * dbus/dbus-list.c: (_dbus_list_test):
12585         Add tests for _dbus_list_remove_last and traversing the list backwards.
12586
12587         * dbus/dbus-list.h:
12588         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12589         go any further, so return NULL then.
12590
12591         * dbus/dbus-protocol.h:
12592         Add new messages, service flags and service replies.
12593
12594 2003-01-26  Havoc Pennington  <hp@pobox.com>
12595
12596         * dbus/dbus-message-builder.c: implement, completely untested.
12597
12598         * test/data/*: add data to be used in testing.
12599         ".message" files are our simple loadable text format.
12600         ".message-raw" will be binary dumps of messages.
12601
12602         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12603
12604 2003-01-26  Havoc Pennington  <hp@pobox.com>
12605
12606         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12607
12608         * dbus/dbus-errors.c (dbus_result_to_string): add
12609         file errors
12610
12611         * dbus/dbus-message-builder.c: new file, will contain code to load
12612         up messages from files. Not implemented yet.
12613
12614 2003-01-26  Havoc Pennington  <hp@pobox.com>
12615
12616         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12617         the sender by setting to NULL
12618
12619 2003-01-26  Havoc Pennington  <hp@pobox.com>
12620
12621         The unit tests pass, but otherwise untested.  If it breaks, the
12622         tests should have been better. ;-)
12623
12624         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12625         the connection.
12626
12627         * dbus/dbus-message.c: redo everything so we maintain
12628         message->header as the only copy of the various fields.
12629         This avoids the possibility of out-of-memory in some cases,
12630         for example dbus_message_lock() can't run out of memory anymore,
12631         and avoids extra copying. Figured I may as well go ahead and do
12632         this since it was busted for dbus_message_lock to not return
12633         failure on OOM, and dbus_message_write_header was totally
12634         unchecked for OOM. Also fixed some random other bugs.
12635
12636         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12637         that strings are nul-terminated. Also, end_pos can be equal
12638         to string length just not greater than, I think.
12639         (_dbus_marshal_set_int32): new function
12640         (_dbus_marshal_set_uint32): new function
12641         (_dbus_marshal_set_string): new function
12642
12643         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12644         a warning, init timeout_list to NULL
12645         (dbus_connection_send_message): don't use uninitialized variable
12646         "serial"
12647
12648         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12649
12650 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12651
12652         * bus/driver.c: (bus_driver_handle_hello),
12653         (bus_driver_send_welcome_message):
12654         Plug leaks
12655
12656 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12657
12658         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12659         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12660         (dbus_connection_unref):
12661         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12662         * dbus/dbus-message.c: (dbus_message_unref),
12663         Plug memory leaks.
12664
12665         (dbus_message_get_fields):
12666         Remove debugging printout.
12667
12668         (_dbus_message_loader_return_buffer):
12669         Don't store the header string.
12670
12671         (_dbus_message_test):
12672         Plug leaks.
12673
12674 2003-01-26  Richard Hult  <rhult@codefactory.se>
12675
12676         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12677         the file descriptor list, since it can change under us.
12678
12679 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12680
12681         * glib/dbus-gmain.c: (dbus_connection_prepare),
12682         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12683         (remove_watch), (dbus_connection_hookup_with_g_main):
12684         Rewrite the glib handling to use its own GSource instead of a
12685         GIOChannel so we can catch messages put in the queue while waiting
12686         for a reply.
12687
12688 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12689
12690         * bus/Makefile.am:
12691         * bus/connection.c: (connection_disconnect_handler),
12692         (connection_watch_callback), (bus_connection_setup):
12693         * bus/dispatch.c: (send_one_message),
12694         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12695         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12696         * bus/dispatch.h:
12697         * bus/driver.c: (bus_driver_send_service_deleted),
12698         (bus_driver_send_service_created), (bus_driver_handle_hello),
12699         (bus_driver_send_welcome_message),
12700         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12701         (bus_driver_handle_message):
12702         * bus/driver.h:
12703         Refactor code, put the message dispatching in its own file. Use
12704         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12705         is disconnected.
12706
12707 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12708
12709         * dbus/dbus-internals.h:
12710         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12711
12712         * dbus/dbus-message.c: (dbus_message_get_sender):
12713         * dbus/dbus-message.h:
12714         Implement dbus_message_get_sender.
12715
12716         * dbus/dbus-protocol.h:
12717         Add message and service defines.
12718
12719 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12720
12721         * dbus/dbus-connection.c: (dbus_connection_send_message):
12722         * dbus/dbus-message-internal.h:
12723         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12724         (dbus_message_write_header):
12725         Remove _dbus_messag_unlock and don't set the client serial on a
12726         message if one already exists.
12727
12728 2003-01-24  Havoc Pennington  <hp@pobox.com>
12729
12730         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12731         list_pool
12732
12733         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12734         on OOM
12735
12736 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12737
12738         * dbus/dbus-list.c: (alloc_link), (free_link):
12739         Use a memory pool for the links.
12740
12741 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12742
12743         * bus/connection.c: (bus_connection_foreach):
12744         * bus/connection.h:
12745         Add new bus_connection_foreach function.
12746
12747         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12748         Add function that broadcasts a message to all clients.
12749
12750         (bus_driver_send_service_created), (bus_driver_handle_hello),
12751         (bus_driver_send_welcome_message),
12752         (bus_driver_handle_list_services), (bus_driver_message_handler):
12753         Implement functions that take care of listing services, and notifying
12754         clients when new services are created.
12755
12756         * bus/services.c: (bus_services_list):
12757         * bus/services.h:
12758         Add new function that returns an array of strings with the currently
12759         registered services.
12760
12761         * glib/dbus-glib.h:
12762         * glib/dbus-gmain.c:
12763         Update copyright year.
12764
12765 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12766
12767         * dbus/dbus-connection.c: (dbus_connection_send_message):
12768         Unlock the message in case it was sent earlier.
12769
12770         (dbus_connection_send_message_with_reply_and_block):
12771         Remove the reply message from the list.
12772
12773         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12774         Set array_len and new_pos correctly.
12775
12776         (_dbus_marshal_test):
12777         Remove debug output.
12778
12779         * dbus/dbus-message-internal.h:
12780         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12781         New function that returns the reply serial.
12782
12783         (_dbus_message_unlock):
12784         New function that unlocks a message and resets its header.
12785
12786         (dbus_message_append_string_array),
12787         (dbus_message_get_fields_valist),
12788         (dbus_message_iter_get_field_type),
12789         (dbus_message_iter_get_string_array),
12790         (dbus_message_get_fields),
12791         (dbus_message_append_fields_valist):
12792         Handle string arrays.
12793
12794         (dbus_message_set_sender):
12795         Make this function public since the bus daemon needs it.
12796
12797         (decode_header_data):
12798         Set the reply serial to -1 initially.
12799
12800         * dbus/dbus-message.h:
12801         Add dbus_message_set_sender.
12802
12803 2003-01-24  Havoc Pennington  <hp@pobox.com>
12804
12805         * doc/dbus-specification.sgml: add some stuff
12806
12807 2003-01-22  Havoc Pennington  <hp@pobox.com>
12808
12809         * doc/dbus-specification.sgml: Start to document the protocol.
12810
12811 2003-01-22  Havoc Pennington  <hp@pobox.com>
12812
12813         * dbus/dbus-connection.c
12814         (dbus_connection_send_message_with_reply_and_block): add some @todo
12815
12816         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12817
12818 2003-01-21  Havoc Pennington  <hp@pobox.com>
12819
12820         (patch untested because can't compile)
12821
12822         * bus/driver.c (create_unique_client_name): make this function
12823         never recycle client names. Also, caller should initialize
12824         the DBusString.
12825
12826         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12827
12828 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12829
12830         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12831         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12832         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12833         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12834         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12835         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12836         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12837         * dbus/dbus-marshal.h:
12838         * dbus/dbus-protocol.h:
12839         Add support for marshalling and demarshalling integer, double
12840         and string arrays.
12841
12842 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12843
12844         * bus/Makefile.am:
12845         Add driver.[ch]
12846
12847         * bus/connection.c: (connection_disconnect_handler):
12848         Remove the connection from the bus driver's list.
12849
12850         (connection_watch_callback): Dispatch messages.
12851
12852         (free_connection_data): Free connection name.
12853
12854         (bus_connection_setup): Add connection to the bus driver's list.
12855         (bus_connection_remove_owned_service):
12856         (bus_connection_set_name), (bus_connection_get_name):
12857         Add functions for setting and getting the connection's name.
12858
12859         * bus/connection.h:
12860         Add function headers.
12861
12862         * bus/driver.c: (create_unique_client_name),
12863         (bus_driver_handle_hello_message),
12864         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12865         (bus_driver_add_connection), (bus_driver_remove_connection):
12866         * bus/driver.h:
12867         * bus/main.c:
12868         * bus/services.c: (bus_service_free):
12869         * bus/services.h:
12870         New file that handles communication and registreation with the bus
12871         itself.
12872
12873 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12874
12875         * dbus/dbus-connection.c: (dbus_connection_send_message):
12876         Add a new client_serial parameter.
12877
12878         (dbus_connection_send_message_with_reply):
12879         Remove a @todo since we've implemented the blocking function.
12880
12881         (dbus_connection_send_message_with_reply_and_block):
12882         New function that sends a message and waits for a reply and
12883         then returns the reply.
12884
12885         * dbus/dbus-connection.h:
12886         Add new functions.
12887
12888         * dbus/dbus-errors.c: (dbus_result_to_string):
12889         * dbus/dbus-errors.h:
12890         Add new DBUS_RESULT.
12891
12892         * dbus/dbus-message-internal.h:
12893         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12894         (_dbus_message_set_sender), (dbus_message_write_header),
12895         (dbus_message_new_reply), (decode_header_data),
12896         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12897         * dbus/dbus-message.h:
12898         Add new functions that set the reply serial and sender.
12899         Also marshal and demarshal them correctly and add test.
12900
12901         * dbus/dbus-protocol.h:
12902         Add new DBUS_MESSAGE_TYPE_SENDER.
12903
12904         * glib/dbus-glib.h:
12905         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12906         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12907         (dbus_connection_hookup_with_g_main):
12908         * glib/test-dbus-glib.c: (main):
12909         Rewrite to use GIOChannel and remove the GSource crack.
12910
12911         * test/echo-client.c: (main):
12912         * test/watch.c: (check_messages):
12913         Update for changed APIs
12914
12915 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12916
12917         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12918
12919         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12920         Create a DBusTimeoutList.
12921         (dbus_connection_set_timeout_functions): Add new function to
12922         set timeout callbacks
12923
12924         * dbus/dbus-connection.h: Add public DBusTimeout API.
12925
12926         * dbus/dbus-message.c: (dbus_message_get_service):
12927         * dbus/dbus-message.h:  New function.
12928
12929         * dbus/dbus-server.c: Fix small doc typo.
12930
12931         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12932
12933 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12934
12935         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12936         of the string, just as long as specified.
12937
12938 2003-01-19  Havoc Pennington  <hp@pobox.com>
12939
12940         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12941         new function
12942
12943         * dbus/dbus-server.c (dbus_server_set_max_connections)
12944         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12945         keep track of current number of connections, and add API for
12946         setting a max (but haven't implemented enforcing the max yet)
12947
12948 2003-01-18  Havoc Pennington  <hp@pobox.com>
12949
12950         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12951         reading/writing if read_watch != NULL or write_watch != NULL.
12952
12953         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12954         the message loader code to actually load message->header and
12955         message->body into the newly-created message.
12956
12957         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12958         in OOM case
12959
12960         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12961         (dbus_connection_get_max_message_size)
12962         (dbus_connection_set_max_live_messages_size)
12963         (dbus_connection_get_max_live_messages_size): implement some
12964         resource limitation functions
12965
12966         * dbus/dbus-resources.c: new file implementing some of the
12967         resource limits stuff
12968
12969         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12970         missing docs, add @todo to handle OOM etc.
12971
12972         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12973         docs
12974
12975 2003-01-18  Havoc Pennington  <hp@pobox.com>
12976
12977         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12978         connection if it hasn't been already.
12979
12980         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12981         replace with DisconnectFunction.
12982
12983 2003-01-18  Havoc Pennington  <hp@pobox.com>
12984
12985         Building --disable-verbose-mode --disable-asserts --disable-tests
12986         cuts the library from 112K to 45K or so
12987
12988         * configure.in: check for varargs macro support,
12989         add --enable-verbose-mode, --enable-asserts.
12990
12991         * dbus/dbus-internals.h (_dbus_assert): support
12992         DBUS_DISABLE_ASSERT
12993         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12994
12995 2003-01-18  Havoc Pennington  <hp@pobox.com>
12996
12997         * dbus/dbus-test.c: include config.h so that tests actually run
12998
12999         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13000         so the failure mode when that assumption fails will be plenty
13001         obvious.
13002
13003 2003-01-18  Havoc Pennington  <hp@pobox.com>
13004
13005         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13006
13007         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13008         the distribution
13009
13010         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13011         since we don't want to use those in make check
13012
13013 2003-01-15  Havoc Pennington  <hp@redhat.com>
13014
13015         Release 0.2
13016
13017         * NEWS: update
13018
13019 2003-01-15  Havoc Pennington  <hp@redhat.com>
13020
13021         * test/Makefile.am: fix so that test source code ends up in the
13022         distribution on make distcheck
13023
13024 2003-01-15  Havoc Pennington  <hp@redhat.com>
13025
13026         Release 0.1.
13027
13028         * NEWS: update
13029
13030 2003-01-15  Havoc Pennington  <hp@redhat.com>
13031
13032         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13033         fix build when --disable-tests
13034
13035         * Makefile.am (EXTRA_DIST): put HACKING in here
13036
13037         * HACKING: document procedure for making a tarball release.
13038
13039 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13040
13041         * bus/connection.c: (connection_error_handler),
13042         (bus_connection_setup):
13043         * bus/main.c: (main):
13044         Make sure that the DBusConnectionData struct is NULLed
13045         out to prevent a segfault.
13046
13047         * dbus/dbus-errors.c: (dbus_result_to_string):
13048         * dbus/dbus-errors.h:
13049         * dbus/dbus-message.c: (dbus_message_get_fields),
13050         (dbus_message_get_fields_valist), (_dbus_message_test):
13051         * dbus/dbus-message.h:
13052         Make dbus_message_get_fields return a result code so we can
13053         track invalid fields as well as oom.
13054
13055 2003-01-11  Havoc Pennington  <hp@pobox.com>
13056
13057         * configure.in: change --enable-test/--enable-ansi action-if-given
13058         to enable_foo=$enableval instead of enable_foo=yes
13059
13060 2003-01-08  Havoc Pennington  <hp@pobox.com>
13061
13062         * dbus/dbus-string.c (_dbus_string_align_length): new function
13063
13064         * dbus/dbus-test-main.c: move main() for test app here
13065         * dbus/dbus-test.c
13066         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13067         symbol to run tests, because dbus-test isn't in the main
13068         library
13069
13070         Code review nitpicks.
13071
13072         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13073         for people with narrow emacs ;-). Assert client_serial was filled
13074         in. Assert message->name != NULL.
13075         (dbus_message_append_fields): have "first_field_type" arg separate
13076         from va list, needed for C++ binding that also uses varargs IIRC
13077         and helps with type safety
13078         (dbus_message_new): add @todo about using DBusString to store
13079         service/name internally
13080         (dbus_message_new): don't leak ->service and ->name on OOM later
13081         in the function
13082         (dbus_message_unref): free the service name
13083         (dbus_message_get_fields): same change to varargs
13084         i.e. first_field_type
13085         (_dbus_message_loader_return_buffer): assert that the message data
13086         is aligned (if not it's a bug in our code). Put in verbose griping
13087         about why we set corrupted = TRUE.
13088         (decode_header_data): add FIXME that char* is evil.  Was going to
13089         add FIXME about evil locale-specific string.h strncmp, but just
13090         switched to wacky string-as-uint32 optimization. Move check for
13091         "no room for field name" above get_const_data_len() to avoid
13092         assertion failure in get_const_data_len if we have trailing 2
13093         bytes or the like. Check for service and name fields being
13094         provided twice. Don't leak service/name on error. Require field
13095         names to be aligned to 4 bytes.
13096
13097         * dbus/dbus-marshal.c: move byte swap stuff to header
13098         (_dbus_pack_int32): uscore-prefix
13099         (_dbus_unpack_int32): uscore-prefix
13100         (_dbus_unpack_uint32): export
13101         (_dbus_demarshal_string): add @todo complaining about use of
13102         memcpy()
13103         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13104         handling allowing corrupt data to go unchecked
13105
13106 2003-01-08  Havoc Pennington  <hp@redhat.com>
13107
13108         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13109         to the select() as needed for authentication. (should be using
13110         _dbus_poll() not select, but for another day)
13111
13112         * dbus/dbus.h: include dbus/dbus-protocol.h
13113
13114 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13115
13116         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13117         dbus-connection.h
13118
13119 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13120
13121         * dbus/dbus-internals.c: (_dbus_type_to_string):
13122         New function that returns a string describing a type.
13123
13124         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13125         * dbus/dbus-marshal.h:
13126         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13127         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13128         (dbus_message_iter_get_byte_array):
13129         * dbus/dbus-message.h:
13130         Add new convenience functions for appending and getting message fields.
13131         Also add demarshalling routines for byte arrays.
13132
13133 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13134
13135         * dbus/dbus-connection-internal.h:
13136         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13137         (_dbus_connection_get_next_client_serial),
13138         (dbus_connection_send_message):
13139         * dbus/dbus-internals.h:
13140         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13141         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13142         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13143         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13144         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13145         (_dbus_verbose_bytes), (_dbus_marshal_test):
13146         * dbus/dbus-marshal.h:
13147         * dbus/dbus-message-internal.h:
13148         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13149         (dbus_message_write_header), (_dbus_message_lock),
13150         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13151         (dbus_message_get_name), (dbus_message_append_int32),
13152         (dbus_message_append_uint32), (dbus_message_append_double),
13153         (dbus_message_append_string), (dbus_message_append_byte_array),
13154         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13155         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13156         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13157         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13158         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13159         (decode_header_data), (_dbus_message_loader_return_buffer),
13160         (message_iter_test), (_dbus_message_test):
13161         * dbus/dbus-message.h:
13162         * dbus/dbus-protocol.h:
13163         * dbus/dbus-test.c: (main):
13164         * dbus/dbus-test.h:
13165         * glib/test-dbus-glib.c: (message_handler), (main):
13166         * test/echo-client.c: (main):
13167         * test/watch.c: (check_messages):
13168         Make messages sendable and receivable for real.
13169
13170 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13171
13172         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13173         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13174         * dbus/dbus-message.c: (dbus_message_append_int32),
13175         (dbus_message_append_uint32), (dbus_message_append_double),
13176         (dbus_message_append_string), (dbus_message_append_byte_array):
13177         Handle OOM restoration.
13178
13179 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13180
13181         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13182         (_dbus_demarshal_string), (_dbus_marshal_test):
13183         * dbus/dbus-marshal.h:
13184         * dbus/dbus-message.c: (dbus_message_get_name),
13185         Document these functions.
13186
13187         (dbus_message_append_int32), (dbus_message_append_uint32),
13188         (dbus_message_append_double), (dbus_message_append_string),
13189         (dbus_message_append_byte_array):
13190         * dbus/dbus-message.h:
13191         Add functions for adding message fields of different types.
13192
13193         * dbus/dbus-protocol.h:
13194         Add the different types.
13195
13196 2003-01-05  Havoc Pennington  <hp@pobox.com>
13197
13198         * bus/connection.c: implement routines for handling connections,
13199         first thing is keeping a list of owned services on each connection
13200         and setting up watches etc.
13201
13202         * bus/services.c: implement a mapping from service names to lists
13203         of connections
13204
13205         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13206
13207         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13208         to use static mutexes for global data
13209
13210         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13211         collection of functions to set/get application-specific data
13212         on the DBusConnection.
13213
13214 2003-01-04  Havoc Pennington  <hp@pobox.com>
13215
13216         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13217         (_dbus_poll): new function
13218
13219         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13220         copied from GLib
13221
13222         * bus/loop.c: initial code for the daemon main loop
13223
13224 2003-01-04  Havoc Pennington  <hp@pobox.com>
13225
13226         * test/watch.c (error_handler): make it safe if the error handler
13227         is called multiple times (if we s/error handler/disconnect
13228         handler/ we should just guarantee it's called only once)
13229
13230         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13231         error handler on disconnect (it's quite possible we should
13232         just change the error handler to a "disconnect handler," I'm
13233         not sure we have any other meaningful errors)
13234
13235         * configure.in: check for getpwnam_r
13236
13237         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13238         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13239         mechanism as in SASL spec, using socket credentials
13240
13241         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13242         (_dbus_send_credentials_unix_socket): new function
13243
13244         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13245         dbus_accept()
13246         (_dbus_write): only check errno if <0 returned
13247         (_dbus_write_two): ditto
13248
13249 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13250
13251         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13252         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13253         (_dbus_marshal_test):
13254         * dbus/dbus-marshal.h:
13255         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13256         to _dbus_marshal_utf8_string. Also fix some tests.
13257
13258 2002-12-28  Harri Porten  <porten@kde.org>
13259
13260         * configure.in: added check for C++ compiler and a very cheesy
13261         check for the Qt integration
13262
13263         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13264
13265         * qt/Makefile.am: added
13266
13267         * qt/.cvsignore: added
13268
13269         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13270         latter, added #ifdef QT_THREAD_SUPPORT guard.
13271
13272         * dbus/Makefile.am: added missing headers for make dist
13273
13274 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13275
13276         * dbus/Makefile.am: fixup export-symbols-regex.
13277
13278 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13279
13280         * acinclude.m4: Add this file and put the
13281         PKG_CHECK_MODULE macro in it.
13282
13283 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13284
13285         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13286         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13287         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13288         (_dbus_marshal_test):
13289         Make the demarshalling routines align the pos argument.
13290         Add string marshalling tests and fix the obvious bugs
13291         discovered.
13292
13293 2002-12-26  Havoc Pennington  <hp@pobox.com>
13294
13295         * dbus/dbus-auth.c: fixes fixes fixes
13296
13297         * dbus/dbus-transport-unix.c: wire up support for
13298         encoding/decoding data on the wire
13299
13300         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13301         (_dbus_auth_decode_data): append to target string
13302         instead of nuking it.
13303
13304 2002-12-26  Havoc Pennington  <hp@pobox.com>
13305
13306         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13307         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13308         doh
13309
13310         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13311         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13312         now). Main point is because I wanted unpack_uint32 to implement
13313         _dbus_verbose_bytes
13314         (_dbus_verbose_bytes): new function
13315
13316         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13317
13318         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13319         mechanism to handle a corrupt message stream
13320         (_dbus_message_loader_new): fix preallocation to only prealloc,
13321         not prelengthen
13322
13323         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13324         (_dbus_string_test): enhance tests for copy/move and fix the
13325         functions
13326
13327         * dbus/dbus-transport-unix.c: Hold references in more places to
13328         avoid reentrancy problems
13329
13330         * dbus/dbus-transport.c: ditto
13331
13332         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13333         leak reference count in no-message case
13334
13335         * test/watch.c (do_mainloop): handle adding/removing watches
13336         during iteration over the watches. Also, ref the connection/server
13337         stored on a watch, so we don't try to mangle a destroyed one.
13338
13339         * dbus/dbus-transport-unix.c (do_authentication): perform
13340         authentication
13341
13342         * dbus/dbus-auth.c (get_state): add a state
13343         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13344         (_dbus_auth_get_unused_bytes): append the unused bytes
13345         to the passed in string, rather than prepend
13346
13347         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13348         the auth conversation DBusAuth
13349
13350         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13351         (_dbus_transport_new_for_domain_socket): when creating a
13352         transport, pass in whether it's a client-side or server-side
13353         transport so we know which DBusAuth to create
13354
13355 2002-12-03  Havoc Pennington  <hp@pobox.com>
13356
13357         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13358         _after_ finalizing the derived members
13359         (unix_connection_set): unref watch if we fail to add it
13360
13361         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13362         transport first, so that the connection owned by the
13363         transport will be valid as the transport finalizes.
13364
13365         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13366         if necessary, and remove watches from the connection.
13367
13368         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13369
13370 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13371
13372         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13373         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13374         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13375         (_dbus_marshal_test):
13376         * dbus/dbus-marshal.h:
13377         Add string marshal functions and have the demarshal functions
13378         return the new position.
13379
13380 2002-12-25  Havoc Pennington  <hp@pobox.com>
13381
13382         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13383         it is a simple protocol that just maps directly to SASL.
13384
13385         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13386         initial implementation, not actually used yet.
13387
13388         * dbus/dbus-string.c (_dbus_string_find): new function
13389         (_dbus_string_equal): new function
13390         (_dbus_string_base64_encode): new function
13391         (_dbus_string_base64_decode): new function
13392
13393 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13394
13395         * dbus/Makefile.am:
13396         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13397         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13398         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13399         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13400         * dbus/dbus-marshal.h:
13401         * dbus/dbus-protocol.h:
13402         * dbus/dbus-test.c: (main):
13403         * dbus/dbus-test.h:
13404         Add un-optimized marshalling/demarshalling routines.
13405
13406 2002-12-25  Harri Porten  <porten@kde.org>
13407
13408         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13409
13410 2002-12-24  Zack Rusin  <zack@kde.org>
13411
13412         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13413         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13414         main loop stuff
13415
13416 2002-12-24  Havoc Pennington  <hp@pobox.com>
13417
13418         * glib/dbus-gthread.c: fix include
13419
13420         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13421         I think glib API needs to change, though, as you don't
13422         want to use DBusMessageFunction, you want to use the
13423         DBusMessageHandler object. Probably
13424         dbus_connection_open_with_g_main_loop()
13425         and dbus_connection_setup_g_main_loop() or something like that
13426         (but think of better names...) that just create a connection
13427         that has watch/timeout functions etc. already set up.
13428
13429         * dbus/dbus-connection.c
13430         (dbus_connection_send_message_with_reply): new function just to
13431         show how the message handler helps us deal with replies.
13432
13433         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13434
13435         * dbus/dbus-string.c (_dbus_string_test): free a string that
13436         wasn't
13437
13438         * dbus/dbus-hash.c: use memory pools for the hash entries
13439         (rebuild_table): be more paranoid about overflow, and
13440         shrink table when we can
13441         (_dbus_hash_test): reduce number of sprintfs and write
13442         valid C89. Add tests for case where we grow and then
13443         shrink the hash table.
13444
13445         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13446
13447         * dbus/dbus-connection.c (dbus_connection_register_handler)
13448         (dbus_connection_unregister_handler): new functions
13449
13450         * dbus/dbus-message.c (dbus_message_get_name): new
13451
13452         * dbus/dbus-list.c: fix docs typo
13453
13454         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13455         an object representing a handler for messages.
13456
13457 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13458
13459         * glib/dbus-glib.h:
13460         * glib/dbus-gthread.c: (dbus_gthread_init):
13461         Don't use the gdbus prefix for public functions.
13462
13463 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13464
13465         * Makefile.am:
13466         * configure.in:
13467         Add GLib checks and fixup .pc files
13468
13469         * glib/Makefile.am:
13470         * glib/dbus-glib.h:
13471         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13472         (gdbus_connection_check), (gdbus_connection_dispatch),
13473         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13474         (dbus_connection_gsource_new):
13475         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13476         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13477         * glib/test-dbus-glib.c: (message_handler), (main):
13478         Add GLib support.
13479
13480 2002-12-15  Harri Porten  <porten@kde.org>
13481
13482         * autogen.sh: check for libtoolize before attempting to use it
13483
13484         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13485         struct.
13486
13487         * .cvsignore: ignore more stamp files
13488
13489         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13490
13491         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13492         without make install.
13493
13494 2002-12-15  Havoc Pennington  <hp@pobox.com>
13495
13496         * dbus/dbus-threads.c: add thread stubs that a higher library
13497         layer can fill in. e.g. the GLib wrapper might fill them in with
13498         GThread stuff. We still need to use this thread API to
13499         thread-safe-ize the library.
13500
13501 2002-12-12  Havoc Pennington  <hp@pobox.com>
13502
13503         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13504         below new interfaces and include fewer system headers.
13505
13506         * dbus/dbus-sysdeps.c (_dbus_read): new function
13507         (_dbus_write): new function
13508         (_dbus_write_two): new function
13509         (_dbus_connect_unix_socket): new function
13510         (_dbus_listen_unix_socket): new function
13511
13512         * dbus/dbus-message-internal.h: change interfaces to use
13513         DBusString
13514
13515 2002-12-11  Havoc Pennington  <hp@pobox.com>
13516
13517         * dbus/dbus-types.h: add dbus_unichar
13518
13519         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13520
13521         * dbus/dbus-connection.c (dbus_connection_send_message): return
13522         TRUE on success
13523
13524         * dbus/dbus-transport.c: include dbus-watch.h
13525
13526         * dbus/dbus-connection.c: include dbus-message-internal.h
13527
13528         * HACKING: add file with coding guidelines stuff.
13529
13530         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13531         handling here, for security purposes (as in vsftpd). Not actually
13532         using this class yet.
13533
13534         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13535         system/libc usage here, as in vsftpd, for ease of auditing (and
13536         should also simplify portability). Haven't actually moved all the
13537         system/libc usage into here yet.
13538
13539 2002-11-25  Havoc Pennington  <hp@pobox.com>
13540
13541         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13542         always print the first verbose message.
13543
13544 2002-11-24  Havoc Pennington  <hp@pobox.com>
13545
13546         * test/echo-client.c, test/echo-server.c: cheesy test
13547         clients.
13548
13549         * configure.in (AC_CHECK_FUNCS): check for writev
13550
13551         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13552         function
13553
13554         * dbus/dbus-list.c (_dbus_list_foreach): new function
13555
13556         * dbus/dbus-internals.c (_dbus_verbose): new function
13557
13558         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13559         representing a server that listens for connections.
13560
13561         * dbus/.cvsignore: create
13562
13563         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13564         public API for reporting errors
13565
13566         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13567         public object representing a connection that
13568         sends/receives messages. (Same object used for
13569         both client and server.)
13570
13571         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13572         Basic abstraction for different kinds of stream
13573         that we might read/write messages from.
13574
13575 2002-11-23  Havoc Pennington  <hp@pobox.com>
13576
13577         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13578         _DBUS_INT_MAX
13579
13580         * dbus/dbus-test.c (main): add list test, and include
13581         dbus-test.h as intended
13582
13583         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13584         (_dbus_hash_table_remove_int): return value indicates
13585         whether the entry existed to remove
13586
13587         * dbus/dbus-list.c: add linked list utility class,
13588         with docs and tests
13589
13590         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13591         array sometimes.
13592
13593 2002-11-23  Havoc Pennington  <hp@pobox.com>
13594
13595         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13596         DBUS_END_DECLS to nothing, that should fix this once and for all
13597
13598         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13599
13600         * dbus/dbus-message.c, dbus/dbus-hash.c:
13601         add some missing @brief
13602
13603 2002-11-23  Havoc Pennington  <hp@pobox.com>
13604
13605         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13606         to avoid confusing Doxygen
13607
13608         * dbus/dbus-hash.c: @} not }@
13609
13610         * dbus/dbus-message.c (struct DBusMessage): split out
13611         internals docs
13612
13613 2002-11-23  Havoc Pennington  <hp@pobox.com>
13614
13615         * configure.in: pile on more warning flags if using gcc
13616
13617         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13618         to document static functions
13619
13620         * configure.in: add summary to end of configure so it
13621         looks nice and attractive
13622
13623         * dbus/dbus-hash.c: finish implementation and write unit
13624         tests and docs
13625
13626         * configure.in: add --enable-tests to enable unit tests
13627
13628         * dbus/dbus-test.c: test program to run unit tests
13629         for all files in dbus/*, initially runs a test for
13630         dbus-hash.c
13631
13632         * dbus/dbus-internals.h: file to hold some internal utility stuff
13633
13634 2002-11-22  Havoc Pennington  <hp@redhat.com>
13635
13636         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13637         "ported" away from Tcl
13638
13639         * dbus/dbus-types.h: header for types such as dbus_bool_t
13640
13641 2002-11-22  Havoc Pennington  <hp@redhat.com>
13642
13643         * dbus/dbus.h: fixups for doc warnings
13644
13645         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13646         macros
13647         (QUIET): make it quiet so we can see warnings
13648
13649         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13650
13651 2002-11-22  Havoc Pennington  <hp@redhat.com>
13652
13653         * Makefile.am: include "Doxyfile" target in all-local
13654
13655         * configure.in: generate the Doxyfile
13656
13657         * Doxyfile.in: move Doxyfile here, so we can use
13658         configure to generate a Doxyfile with the right
13659         version number etc.
13660
13661 2002-11-22  Havoc Pennington  <hp@redhat.com>
13662
13663         * dbus/dbus-message.c: move inline docs into .c file
13664
13665         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13666         so all docs are under doc/
13667         (MAN_EXTENSION): generate man pages. Use extension
13668         ".3dbus" which matches ".3qt" on my system,
13669         I guess this is OK, I don't know really.
13670         (FILE_PATTERNS): look for .c files not .h, makes sense
13671         for plain C I think
13672
13673 2002-11-22  Havoc Pennington  <hp@pobox.com>
13674
13675         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13676         because any app can be a server, and any app can be a client,
13677         the bus is a special kind of server.
13678
13679 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13680
13681         * Doxyfile : adding. Still needs Makefile rules to be generated
13682         automatically (just run "doxygen" in the toplevel dir for now to
13683         generate docs)
13684
13685         * dbus/dbus-message.h : Adding sample docs (javadoc since
13686         resembles gtk-doc a little more)
13687
13688         * dbus/dbus.h : Adding sample docs
13689
13690 2002-11-21  Havoc Pennington  <hp@redhat.com>
13691
13692         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13693         so we can allow ourselves to include files directly,
13694         instead of having to use dbus.h
13695
13696         * dbus/dbus.h: fill in
13697
13698         * dbus/dbus-message.h: sketch out a sample header file.
13699         Include griping if you include it directly instead of
13700         via dbus.h
13701
13702         * dbus/dbus-macros.h: new file with macros for extern "C",
13703         TRUE/FALSE, NULL, etc.
13704
13705         * doc/file-boilerplate.c: put include guards in here
13706
13707 2002-11-21  Havoc Pennington  <hp@redhat.com>
13708
13709         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13710
13711         * COPYING: include the GPL as well, and license code
13712         under both AFL and GPL.
13713
13714 2002-11-21  Havoc Pennington  <hp@redhat.com>
13715
13716         * acconfig.h: get rid of this
13717
13718         * autogen.sh (run_configure): add --no-configure option
13719
13720         * configure.in: remove AC_ARG_PROGRAM to make
13721         autoconf complain less. add AC_PREREQ.
13722         add AC_DEFINE third arg.
13723
13724 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13725
13726         * doc/Makefile.am:
13727         Fix references so we can distcheck.
13728
13729 2002-11-21  Havoc Pennington  <hp@redhat.com>
13730
13731         * Initial module creation
13732