* dbus/dbus-object-tree.c: Patch by Benjamin Otte
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
4         <in7y118 at public.uni-hamburg dot de> - fix invalid
5         read/write reported by valgrind
6
7 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
8
9         * Released 0.91
10
11 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
12
13         * dbus/dbus-connection.c:
14         (_dbus_connection_attach_pending_call_unlocked):
15         (connection_timeout_and_complete_all_pending_calls_unlocked):
16         Make sure we set timeout_added on pending calls to FALSE when
17         we remove the timeout from the connection
18
19 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
20
21         * Removed some extra bindings stuff lingering around (thanks timo)
22         * dbus-pendingcall.c (_dbus_pending_call_new): 
23         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
24         when we tried to take a lock on an already locked connection
25
26 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
27
28         * Released 0.90
29
30 2006-07-17  Havoc Pennington  <hp@redhat.com>
31
32         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
33         ints, reported by Owen Taylor
34
35 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
36
37         * doc/TODO:
38         * dbus/dbus-bus.c:
39         * dbus-errors.c:
40         * dbus/dbus-marshal-validate.c:
41           Removed TODO items which were fixed or are no longer relevent
42
43 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
44
45         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
46         Remove stray files from the stripped bindings
47
48 2006-07-16  Havoc Pennington  <hp@redhat.com>
49
50         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
51         Improve the error message on reply timeout
52
53 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
54
55         * Remove all bindings
56
57 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
58
59         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
60         and set pending_reply out arg to NULL is connection is disconnected
61         (connection_timeout_and_complete_all_pending_calls_unlocked): New
62         static method for cleaning up pending calls on disconnect
63         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
64         calls queued timeouts on disconnect 
65
66          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
67         Remove 
68
69 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
70
71         * bus/activation.[ch] (bus_activation_list_services): new function to 
72         get the list of services that can be activated
73
74         * bus/dispatch.c: test coverage for the new bus method
75         ListActivatableNames
76
77         * bus/driver.c: new bus method ListActivatableNames to get the list of
78         services that can be activated
79
80         * doc/dbus-specification.xml: ListActivatableNames method documentation
81
82 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
83         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
84         source files
85
86 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
87         * dbus/dbus-message-factory.c:
88         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
89
90 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
91         * dbus/dbus-connection-internal.h:
92         * dbus/dbus-connection.c:
93         * file dbus/dbus-pending-call.c:
94         * dbus/dbus-pending-call.h:
95         Make DBusPendingCall an opaque type even to D-Bus internals
96
97 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
98
99         * dbus/dbus-connection.h: remove connection_disconnect and replace with
100         connection_close
101
102         * dbus/dbus-connection.c: include dbus-bus.h
103         (_dbus_connection_read_write_dispatch): make static
104
105 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
106
107         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
108         function
109         (dbus_connection_dispatch): On disconnect unref any shared connections
110
111         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
112         for cleaning up shared connections on disconnect
113         (internal_bus_get): get a hard refrence to shared connections when
114         they are created
115         
116         * doc/TODO: Remove items which are no longer relevent or have been fixed
117         Split 1.0 todo items with a 0.90 freeze todo list
118  
119 2006-06-14  Ross Burton  <ross@openedhand.com>
120
121         * glib/dbus-gobject.c:
122         Free a leaking GArray (surely not!) in dbus_g_method_return.
123
124 2006-06-14  Ross Burton  <ross@openedhand.com>
125
126         * tools/Makefile.am:
127         * tools/dbus-monitor.c:
128         Don't use the GLib bindings in dbus-monitor (patch from Ralf
129         Habacker).
130         
131 2006-06-14  Ross Burton  <ross@openedhand.com>
132
133         * tools/dbus-print-message.c:
134         Also print the object path when outputting signals or method calls.
135
136 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
137
138         * qt/src/Makefile.am: install the qdbus.h header.
139         This allows people to actually use the installed code.
140
141 2006-06-12  Ross Burton  <ross@openedhand.com>
142
143         * glib/dbus-gproxy.c:
144         Don't leak a GArray when firing signals (thank Rob Taylor for review).
145
146 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
147
148         * Released 0.62
149
150 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
151
152         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
153         break pedantic builds. Closes bug 6043 (patch approved by
154         Havoc back in February).
155
156 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
157
158         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
159         that took a QDBusMessage parameter.
160         * qt/src/qdbusbus.h: Add a default flag for RequestName.
161         * qt/tools/dbus.cpp: Don't use automatic call because we might
162         be calling an async method: request a reply.
163
164 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
165
166         * test/qt/*: Update the testcases, including testing the new
167         functionality of sending null QByteArray and QString over the
168         bus. Add new headertest test and restore the old
169         qdbusxmlparser test.
170
171 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
172
173         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
174         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
175
176         * qt/examples/Makefile.am:
177         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
178         form.
179
180         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
181         QByteArray() (nulls) over the bus.
182         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
183         the one that has the signature suffix stripped.
184         * qt/src/qdbusreply.h: Make some methods const.
185
186 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
187
188         Patch from Timo Hoenig <thoenig@suse.de>.
189
190         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
191         required during build to EXTRA_DIST.
192         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
193         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
194         * configure.in: Fix "make dist", take care that the Makefile for
195         qt/dbus is being generated.
196
197 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
198
199         * bus/bus.c: Fix eavesdropping on method calls
200
201 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
202
203         * configure.in:
204         * dbus/dbus-userdb-util.c:
205         Add Solaris console owner patch from Artem Kachitchkine
206
207 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
208
209         * qt/Makfile.am:
210         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
211         reorganisation. Thanks to Timo Hoenig for pointing this out.
212
213 2006-06-06  Robert McQueen  <robot101@debian.org>
214
215         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
216           call to dbus_g_type_get_struct.
217
218 2006-06-06  Robert McQueen  <robot101@debian.org>
219
220         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
221           pointers were put into a GPtrArray-based specialised collection, and
222           then freed along with the array. GValues which you add into
223           collections or maps which have the NOCOPY flag set are assumed to not
224           belong to the caller, so rather than the existing pointer-stealing
225           semantics, they are copied instead. Given that the main consumers of
226           this abstraction are the bindings themselves, I don't think this is
227           too bad, but others should watch their choice of take vs set_static.
228
229 2006-06-06  Robert McQueen  <robot101@debian.org>
230
231         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
232           of g_slist_prepend not being used. Fixed copying of slist-based
233           specialised collections, then wrote a test case and found that it was
234           all broken. Went on to fix iterating and appending too. Good thing
235           nobody uses this code yet.
236
237 2006-06-06  Robert McQueen  <robot101@debian.org>
238
239         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
240           the iterators use gvalue_take_ptrarray_value (the GValues themselves
241           are discarded without unsetting, so it makes no difference whether
242           we take or set_static). Remove cases for G_TYPE_POINTER because
243           there really is nothing useful we can do with them in our
244           specialised types - we *need* boxed copy/free functions at the very
245           least.
246
247 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
248
249         * qt/dbus: Add directory. I had forgotten to add this
250         yesterday after the move...
251
252         * qt/examples/Makefile.am:
253         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
254
255         * qt/tools/Makefile.am:
256         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
257         Added feature to get and set properties.
258         Added validation of service, object path and interface names.
259
260         * qt/tools/dbusidl2cpp.cpp: Two new features:
261         1) Allow specifying both the header and the source file names,
262         by separating them with a colon.
263         2) Don't write an interface output if the -p switch wasn't
264         given, but the -a was.
265
266         * qt/src/*: Fix usage of Iterators and ConstIterators.
267         Fix shadowing of variables by other variables (-Wshadow).
268         Fix keyword-cleanliness in headers.
269         Fix ASCII-cast (QLatin1String, QLatin1Char).
270         Fix validation of member names.
271         Add extra checking of introspection data during XML parsing.
272         Various bug fixes.
273
274 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
275
276         * dbus/Makefile.am:
277         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
278         qt/dbus/qdbus.h now.
279
280 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
281
282         * configure.in: Make --disable-qt actually do
283           something. Patch inspired by Zack Rusin.
284
285 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
286
287         * qt/: Update to Subversion r548032.
288         This includes a big reorganisation of the files inside the
289         subdir.
290
291 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
292
293         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
294         clear:  
295         "Failed to connect to socket <host>:<port> <error>" instead of
296         "Failed to connect to socket <host>: <error>:<port>"
297
298         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
299         for a tcp transport. 
300
301 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
302
303         * qt/*: Update the QtDBus bindings up to revision 546310 in
304         Subversion.
305         This adds the dbuscpp2xml tool, that parses a C++ header and
306         outputs a D-BUS Introspection XML.
307
308 2006-05-21  Havoc Pennington  <hp@redhat.com>
309
310         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
311         is not NULL when it shouldn't be. Also a couple of possible fixes
312         for #4637 though I don't understand why the bug happens, to be
313         honest... also the object constructor has an assert name != NULL
314         and the name is only currently NULL for peer-to-peer proxies that 
315         I don't think anyone uses? So it should be asserting.
316         Anyway, for now at least see if we get an earlier assertion failure.
317
318         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
319         apparently broken code to be sure the tests fail and someone 
320         will fix them...
321
322 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
323
324         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
325         and arrays when they had a single element: has_next returns
326         false, even before you read the element. So, instead, check
327         the array length.
328
329 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
330
331         * qt/qdbusmessage.cpp:
332         * qt/qdbustypehelper_p.h:
333         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
334         the list is a const-reference
335
336 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
337
338         * Adding old doc patch that never got applied
339         
340         * dbus/bus.c (dbus_bus_add_match): Add documentation
341
342         * doc/dbus-specification.xml: Add documentation for the match rules
343           and the AddMatch and RemoveMatch methods
344
345 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
346
347         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
348         call (r535506)
349
350         * qt/dbusidl2cpp.cpp:
351         * qt/qdbusabstractadaptor.cpp:
352         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
353         sibling of the QDBusAbstractAdaptor objects instead of the
354         parent. (r535848)
355
356         * qt/dbusidl2cpp.cpp:
357         * qt/qdbusabstractinterface.cpp:
358         * qt/qdbusabstractinterface.h:
359         * qt/qdbusabstractinterface_p.h:
360         * qt/qdbusinterface.cpp: Make properties in interfaces
361         actually work. The code that was generated would not compile,
362         due to moc calls to functions that did not exist. They now
363         shall. (r536571)
364
365 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
366
367         * Makefile.am:
368         * configure.in:
369         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
370         Thanks to Brad Hards for providing the patch
371
372 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
373
374         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
375         call. (r535506)
376
377 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
378
379         * qt/examples/dbus.cpp: Enhance error messages and use
380         QDBusInterfacePtr.
381
382 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
383
384         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
385         and disable the copy operators. (r533772, r534746)
386
387         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
388
389         * qt/qdbusabstractinterface.cpp:
390         * qt/qdbusabstractinterface.h: Change the default call mode to
391         not use the event loop. Add convenience call() methods that
392         take a CallMode parameter. (r534042)
393
394         * qt/qdbusconnection.h: Change the default call mode to not
395         use the event loop. (r534042)
396
397         * qt/qdbusinterface.cpp:
398         * qt/qdbusinterface.h: Add a method to tell us if the
399         interface is valid (since we don't return a null pointer
400         anymore) (r534099)
401
402         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
403         (r534101)
404
405         * qt/qdbusinternalfilters.cpp: Decouple the introspection
406         function in two so taht we get the chance to introspect
407         without having a QDBusMessage (r534102)
408
409         * qt/qdbusbus.h:
410         * qt/qdbusconnection.cpp:
411         * qt/qdbusconnection_p.h:
412         * qt/qdbusintegrator.cpp: Keep a list of our own names to
413         avoid a round-trip to the server when attempting to introspect
414         one of our own objects. Also make sure the filter functions
415         match the empty interface as well. (r534108)
416         Don't keep the connection names. Instead, trust the unique
417         connection name (r534111)
418         Remove event loop usage (r534112)
419
420 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
421
422         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
423         Brad Hards.
424
425 2006-04-28  Robert McQueen  <robot101@debian.org>
426
427         * glib/dbus-gproxy.c: Fix properties so that they can be given in
428         any order, making it easier for people who inherit from this
429         object.
430
431 2006-04-28  Robert McQueen  <robot101@debian.org>
432
433         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
434         of memory from within pointer arrays and lists. Fixes bug #6300.
435
436 2006-04-28  Robert McQueen  <robot101@debian.org>
437
438         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
439         generating struct signatures. Fixes bug #6083.
440
441 2006-04-28  Robert McQueen  <robot101@debian.org>
442
443         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
444         to qdbusconnection_p.moc.
445
446 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
447
448         * README, INSTALL: Doc fixes
449         Patch from Brad Hards <bradh at frogmouth.net>
450
451 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
452
453         * qt/examples/dbus.cpp: Use the new merged-interface mode for
454         the dynamic meta object. No need to guess which interface to
455         call.
456
457 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
458
459         * qt/qdbusconnection_p.h:
460         * qt/qdbusmetaobject.cpp:
461         * qt/qdbusmetaobject_p.h:
462         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
463         for the dynamic meta object. No need to guess which
464         interface to call.
465         * qt/qdbusabstractinterface_p.h:
466         * qt/qdbusconnection.cpp:
467         * qt/qdbusintegrator.cpp:
468         * qt/qdbusinterface.cpp:
469         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
470         Add a QDBusRef that looks and behaves like DCOPRef.
471
472 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
473
474         * dbus/dbus-connection.c: Interfaces are optional in method
475         calls, so don't give up if the interface parameter is NULL.
476         Patch reviewed by Havoc Pennington.
477
478 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
479
480         * qt/qdbusreply.h: Add default constructor and operator=
481           (r532625)
482         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
483           in public headers (r532952)
484         * qt/qdbusabstractinterface.cpp:
485         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
486           make it the default (r532951)
487
488 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
489
490         * dbus/dbus-connection.c: Fix asserts
491         Patch from Tim Moloney <t.moloney at verizon.net>
492
493 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
494
495         * mono/Connection.cs, mono/Message.cs: Check Target type
496         Patch from Aaron Bockover (abockover at novell.com)
497
498 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
499
500         * INSTALL: fine-tune the requirements for the Qt4 binding.
501
502 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
503
504         * tools/dbus-print-message.c: Added support for printing of all 
505           remaining data types. Fixed logic for indentation of compound
506           data types.
507         
508 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
509
510         * INSTALL: fill out content of file providing DBus specific
511           build installations, followed by generic Auto* INSTALL file
512           content
513         
514 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
515
516         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
517           Patch by Stefan Eilers. (r529537)
518
519 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
520
521         * qt/qdbusinternalfilters.cpp: Don't show the parent's
522           contents (r528208)
523
524 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
525
526         * qt/Makefile.am: fix the dependency for
527           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
528           not in qdbusconnection.cpp.
529           Thanks to Jakub Stachowski <stachowski@hypair.net> for
530           spotting this.
531
532 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
533
534         * qt/examples/listnames.cpp:
535         * qt/examples/Makefile.am: Three ways to list the names on the
536           bus.
537
538 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
539
540         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
541           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
542
543 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
544
545         Merge from Subversion:
546         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
547           something that exists (r526315)
548         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
549           slots/signals (r526316)
550         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
551           also return an unknown-method error if the parameters don't
552           match for org.freedesktop.DBus.Properties. (r526842)
553         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
554         * qt/qdbusintegrator.cpp: Restore the proper order of
555           delivery: don't make method returns be delivered on priority
556           (r528150)
557
558 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
559
560         * configure.in qt/Makefile.am: add qt/examples
561         * qt/examples: Add QtDBus example programs:
562           - hello: Hello, World
563           - ping: Simple method-calling program
564           - pong: Simple object-exporting program (not using adaptors)
565           - complexping: Interactive method-calling program 
566                 (also gets and sets properties).
567           - complexpong: Sample program exporting methods, signals and
568                 properties, using adaptors.
569           - dbus: Simple implementation of a generic method-calling
570                 program, similar to 'dbus-send', but with semantics
571                 similar to 'dcop'.
572           - chat: Simplistic chat program, implemented using signals
573                 and the system bus. Looks like IRC.
574
575 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
576
577         * configure.in: Detect QtGui (necessary for one of the
578           example programs). Note: this increases the minimum required
579           version of Qt to 4.1.3.
580
581 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
582
583         * test/qt/*: Sync with KDE Subversion revision 523647.
584         Update the testcases to the new API. Remove testcases for
585         classes that are no longer public or have been removed.
586
587 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
588
589         * qt/*: 
590         * dbus/qdbus.h: Sync with KDE Subversion revision
591         523647. Hopefully, this will be the last of the
592         source-incompatible changes. Documentation has been improved;
593         support for QList<basic-types> has been added; QDBusObject is
594         gone; QDBus(Abstract)Interface is now a QObject with
595         auto-generated meta-object; QDBusIntrospection is marked
596         private, since QMetaObject can be used now; lots of bugfixes.
597
598 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
599
600         Patch from Milosz Derezynski <internalerror at gmail.com>
601         
602         * configure.in:
603         Output the service directory in the configure summary
604
605         * dbus-1.pc.in:
606         Add session_bus_services_dir
607
608 2006-03-10  Ross Burton  <ross@openedhand.com>
609
610         * tools/dbus-print-message.c:
611         Add support for object paths and signatures.
612
613 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
614
615         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
616         config reload.
617         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
618         information caches
619         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
620         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
621         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
622         * dbus/dbus-userdb.h: Add function to flush all user/group information
623         caches.
624
625 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
626
627         * qt/dbusidl2cpp.cpp:
628         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
629         for dcopidl2cpp, found in the KDE installations (or the more
630         modern kalyptus): generate Qt4 C++ code for the input XML
631         introspection. Currently no IDL parsing.
632
633 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
634
635         * test/qt/*: Update the self-tests.
636
637 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
638
639         * qt/*: 
640         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
641         represents the first feature-complete version of the Qt4
642         bindings since I took ove maintainership.
643
644 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
645
646         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
647         dir. This is C++, so we can't use the DBus ones.
648
649 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
650
651         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
652         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
653
654 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
655
656         * dbus/dbus-connection.c: 
657         (_dbus_connection_block_pending_call):
658         Check to see if our data has already been read off the connection
659         by another blocking pending call before we block in poll.
660         (check_for_reply_and_update_dispatch_unlocked):
661         Code taken from _dbus_connection_block_pending_call - checks for
662         an already read reply and updates the dispatch if there is one.
663
664         * test/name-test/test-pending-call-dispatch.c:
665         New test for making sure we don't get stuck polling a 
666         dbus connection which has no data on the socket when
667         blocking out of order on two or more pending calls.
668
669 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
670
671         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
672         make/automake don't detect that we're talking about the same
673         .lo file if I specify the full path to the source files.
674
675 2006-02-26  Havoc Pennington  <hp@redhat.com>
676
677         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
678
679         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
680         session bus variable is unset, suggest "man dbus-launch" and "man
681         dbus-daemon" to figure out how to fix the problem
682
683 2006-02-25  Havoc Pennington  <hp@redhat.com>
684
685         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
686         should make this thing use the new glib options parser
687
688 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
689
690         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
691         .lo files taking moc sources.
692
693 2006-02-25  Havoc Pennington  <hp@redhat.com>
694
695         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
696         and install it as a public header
697
698 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
699
700         * Released 0.61
701
702 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
703         
704         * proxies.py: Fix the callchain
705
706 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
707         
708         * patch from Sjoerd Simons <sjoerd at debian.org>:      
709
710         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
711         dbus/dbus-sysdeps.c
712
713         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
714         call _dbus_group_info_free_allocated which causes infinite loop,
715         correctly call _dbus_group_info_free
716
717 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
718
719         * qt/qdbusinterface_p.h:
720         * qt/qdbusinterface.cpp: Use the standard
721         org.freedesktop.DBus.Method.NoReply annotation for the "async"
722         calls instead of creating one for us.
723
724         * qt/qdbusconnection_p.h:
725         * qt/qdbusintegrator.cpp: Remove debugging code.
726
727         * qt/qdbusintegrator.cpp:
728         * qt/qdbusmessage.cpp:
729         * qt/qdbusmessage_p.h:
730         * qt/qdbusmessage.h: Change the behaviour of automatic
731         reply-sending: now a reply is always sent, unless the caller
732         didn't request one or if the user slot has already sent one.
733
734 2006-02-16  Robert McQueen  <robot101@debian.org>
735
736         * configure.in: Patch from Debian packages by Sjoerd Simons
737         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
738         arguments so it's possible to build both bindings in the
739         same tree.
740
741         * qt/Makefile.am: Fix truncated value so that make dist works.
742
743 2006-02-16  Robert McQueen  <robot101@debian.org>
744
745         * acinclude.m4, configure.in: Patch from Brad Hards
746         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
747         improving quoting, re-ordering a few checks, and a few other
748         aesthetic tidy-ups.
749
750 2006-02-16  Robert McQueen  <robot101@debian.org>
751
752         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
753         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
754         assertion that the next element to read from the iter is fixed in
755         size. This is not the case when you are at the end of the iter,
756         because the next element type is INVALID.
757
758         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
759         a bogus assert which means that you may not initialise a 0-length
760         string unless you provide a non-NULL pointer. This prevented
761         you from marshalling messages containing zero-length arrays in
762         some cases.
763
764         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
765         from Rob to correct bogus asserts when trying to demarshal an
766         array and get_fixed_array got you 0 elements. Append nothing to
767         the GArray in this case.
768
769         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
770         an empty array via the glib bindings. Without all of the above
771         patches, this new test fails.
772
773 2006-02-16  Robert McQueen  <robot101@debian.org>
774
775         * glib/dbus-gmain.c: Make the previous commit compile.
776
777         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
778         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
779         specify sender_keyword="foo", path_keyword="bar" when adding
780         a signal listener, so that you can bind to signals generically
781         but still do something useful in your callback.
782
783         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
784         chars so that they're not cast to chars and made negative. Thanks
785         to Jakub Stachowski for reporting this and testing the fix.
786
787 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
788
789         * dbus/dbus-glib.h:
790         * glib/dbus-gmain.h:
791         (dbus_g_connection_open): new method for openning
792         a connection to an arbitrary address in the glib bindings
793
794         * ChangeLog: checkin last entry which doesn't seem to be commited
795
796 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
797
798         * tools/dbus-launch.c: Fixed sh syntax output
799
800 2006-02-13  Robert McQueen  <robot101@debian.org>
801
802         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
803         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
804         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
805         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
806         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
807         missing piece of the glib bindings jigsaw puzzle. This modifies
808         the existing specialised types to have N type parameters (rather
809         than the current 1 or 2 for arrays and dictionaries respectively).
810         You can then use this to get a glib type to represent any arbitrary
811         D-Bus struct type using dbus_g_type_get_struct. The only
812         implementation of these types is with GValueArrays as before,
813         but it's now possible to store these in arrays, emit them in
814         signals, etc.
815
816 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
817
818         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
819         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
820         <thiago.macieira at trolltech.com>
821
822 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
823
824         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
825         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
826
827 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
828
829         * bus/connection.c (bus_connections_expect_reply): Make
830         pending reply limit not common to all connections (Bug #5416)
831         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
832
833 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
834
835         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
836
837 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
838
839         * gcj/Makefile.am: point to correct jar command (Bug #4529)
840         patch from Doug Goldstein <cardoe at gentoo.org>
841
842 2006-02-09  Joe Shaw  <joeshaw@novell.com>
843
844         * mono/Arguments.cs: Fix a magic number in the mono bindings
845         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
846
847 2006-01-27  Robert McQueen  <robot101@debian.org>
848
849         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
850         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
851         when generating the client-side methods, instead of overloading
852         CSymbol which broke everything horribly. My apologies.
853
854 2006-01-27  Robert McQueen  <robot101@debian.org>
855
856         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
857         by me and Rob Taylor to add a simple_free function to D-Bus map
858         and collection types, which allows those types which can be freed
859         with a GDestroyNotify (such as GHashTables and GArrays, but not
860         GPtrArrays) to be stored as the values in hashtables.
861
862         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
863         Patch by Rob Taylor to add nested dicts to the glib tests to check
864         the above code works, and appears not to leak when called repeatedly.
865
866 2006-01-27  Robert McQueen  <robot101@debian.org>
867
868         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
869         to free a D-Bus allocated string with dbus_free () instead of
870         g_free ().
871
872 2006-01-27  Iain Holmes  <iain@openedhand.com>
873
874         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
875         method from being called multiple times.
876
877 2006-01-19  Robert McQueen  <robot101@debian.org>
878
879         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
880         <rob.taylor@collabora.co.uk> to add support for generating bindings
881         to arrays that are represented as GPtrArrays rather than GArrays (ie
882         size-variable things, such as strings, objects, structs, etc).
883
884 2006-01-05  Robert McQueen  <robot101@debian.org>
885
886         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
887         <ricardo.kekki@movial.fi> to make it possible to inherit from
888         DBusGProxy, by splitting the DBusGProxy struct into a public part and
889         a private part, and moving the setting of the DBusGProxyManager into a
890         connection property, allowing proper GObject construction.
891
892 2006-01-05  Robert McQueen  <robot101@debian.org>
893
894         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
895         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
896         annotations when generating glib client bindings.
897
898 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
899
900         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
901
902         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
903
904 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
905
906         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
907
908 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
909
910         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
911
912 2005-12-19  Ross Burton  <ross@openedhand.com>
913
914         * doc/dbus-tutorial.xml:
915         Document the Glib client-side bindings, and list all possible annotations.
916
917 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
918
919         * dbus/bus.c (dbus_bus_release_name): Add documentation
920
921 2005-12-06  Robert McQueen  <robot101@debian.org>
922
923         * python/service.py: s/sucessful/successful/ so we're allocating to
924         and reading from the same variable. Oops.
925
926 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
927
928         * Released 0.60
929
930 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
931
932         * test/qt/Makefile.am: build from srcdir
933
934         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
935         Note - this code is wrong and needs to be fixed by the Qt binding
936         developers.  The flags should be treated as bitfields and not enums.
937
938         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
939
940 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
941
942         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
943           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
944           in production code
945
946 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
947
948         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
949         method for getting messages off the bus in the absence of a
950         mainloop.  This method is much like 
951         dbus_connection_read_write_dispatch except it does not dispatch
952         the messages to a registered filter function.  Instead it
953         allows a developer to process messages by directly popping
954         them off the bus.
955
956 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
957
958         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
959         the parser to continue instead of returning error
960         (bus_desktop_file_load): Do not free parser data when
961         parse_section_start or parse_key_value fails because it was 
962         already freed by parser_free (patch from Carlos Garcia Campos  
963         <carlosgc at gnome.org>)
964
965 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
966
967         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
968         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
969         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
970         test/test-segfault.c, test/test-utils.c,
971         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
972         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
973         Various cleanup of dead code and compiler warnings (patch from
974         Kjartan Maraas <kmaraas at gnome.org>) 
975
976 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
977
978         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
979         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
980
981 2005-11-27  Robert McQueen  <robot101@debian.org>
982
983         * python/dbus_bindings.pyx: Repair my previous commit which reverted
984         part of the preceding one. Oops. Merge patch by Johan Hedberg
985         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
986         on big-endian platforms.
987
988         * test/python/test-client.py: Add some 16-bit integers to the test
989         values.
990
991 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
992
993         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
994         method return message for property getters
995
996 2005-11-27  Robert McQueen  <robot101@debian.org>
997
998         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
999         with type v of an instance of dbus.Variant(foo, type='x') caused
1000         it to be boxed twice before sending over the bus.
1001
1002         * python/dbus_bindings.pyx, python/service.py,
1003         test/python/test-client.py: Update the constants for the new
1004         request_name flags, and update comments/test cases now that queueing
1005         is the default action.
1006
1007 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1008
1009         * configure.in:
1010         - Change version to 0.60 for impending release
1011         - upped the sonames because of ABI and API breakage
1012
1013 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1014
1015         * configure.in: Add test/name-test/Makefile to the generated
1016         Makefile list
1017
1018         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1019         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1020         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1021         not to queue an ower if it can't be the primary owner
1022
1023         * bus/bus.h: Add new internal BusOwner struct
1024
1025         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1026         to bus_registry_ensure and don't set the prohibit_replacement flag
1027         since they are now set per BusOwner and not per name.
1028         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1029         that returns the list of connections in a name's connection queue
1030         
1031         * bus/services.c (struct BusService): remove prohibit_replacement field
1032         (struct BusOwner): new struct for keeping track of queued connections
1033         and their associated flags for the queue
1034         (struct BusRegistry): add a BusOwner memory pool
1035         (bus_registry_new): initialize the BusOwner memory pool
1036         (bus_registry_unref): free the BusOwner memory pool
1037         (_bus_service_find_owner_link): new internal method for
1038         searching the queue for a specific connection
1039         (bus_owner_set_flags): new method for adding setting the flags on a
1040         bus owner
1041         (bus_owner_new): new method that creates a BusOwner object from the
1042         pool and sets its flags
1043         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1044         (bus_registry_ensure): Add the flags parameter
1045         (bus_registry_acquire_service): Switch from using raw connections to
1046         using the BusOwner struct
1047         Add new state machine for dealing with the new set of flags
1048         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1049         cancel_ownership, free_ownership_cancel_data, 
1050         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1051         restore_ownership, free_ownership_restore_data, 
1052         add_restore_ownership_to_transaction): Switch to using BusOwner 
1053         instead of raw connections
1054         (bus_service_add_owner): Add flags parameter
1055         Switch to using BusOwner instead of raw connections
1056         Add state machine for dealing with the new set of flags
1057         (bus_service_swap_owner): Swaps the first and second owners in the
1058         queue.  Used to make sure proper signals are sent when a service looses 
1059         or gains primary ownership.  We never insert an owner at the top of the
1060         queue.  Instead we insert it in the second position and then swap.
1061         (bus_service_remove_owner): Remove the owner from the queue sending
1062         out the NameLost and NameOwnerChanged signals if the we were the 
1063         primary owner
1064         (bus_service_get_primary_owners_connection): New method that extracts
1065         the connection from the primary owner
1066         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1067         connection
1068         (bus_service_get_allow_replacement): Changed from the old 
1069         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1070         primary owner and returns if it can be replaced or not
1071         (bus_service_set_prohibit_replacement): removed
1072         (bus_service_has_owner): returns TRUE if and owner with
1073         the specified connection exists in the queue
1074         
1075         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1076         method that only compiles if tests are enabled.  Allows us to get the 
1077         unique name of a connection so we can check it against the queue when
1078         doing regression tests
1079
1080         * bus/activation.c (bus_activation_send_pending_auto_activate),
1081         bus/dispatch.c (bus_dispatch),  
1082         bus/driver.c (bus_driver_handle_get_service_owner, 
1083         bus_driver_handle_get_connection_unix_user, 
1084         bus_driver_handle_get_connection_unix_process_id,
1085         bus_driver_handle_get_connection_selinux_security_context),
1086         bus/signals.c (connection_is_primary_owner): 
1087         use bus_service_get_primary_owners_connection instead of
1088         bus_service_get_primary_owner
1089
1090         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1091         _dbus_listen_unix_socket): Calculate the length of the socket
1092         path and use that instead of using a fixed length which was
1093         causing socket names to contain many trailing Nul bytes.
1094
1095         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1096         (dbus_g_method_get_sender): New method for extracting the sender 
1097         from a DBusGMethodInvocation
1098         (dbus_g_method_return_get_reply): changed name to 
1099         dbus_g_method_get_reply
1100         (dbus_g_method_return_send_reply): changed name to
1101         dbus_g_method_send reply
1102
1103         * doc/dbus-specification.xml: New docs that describe how the new
1104         queueing system works and talks about the changes to the how
1105         we specify socket names
1106
1107         * glib/examples/example-service.c, 
1108         glib/examples/example-signal-emitter.c,
1109         glib/examples/statemachine/statemachine-server.c:
1110         Changed the RequestName flags to the new system
1111
1112         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1113         regression test suite for testing various states of the new
1114         queueing system
1115         
1116 2005-11-15  Robert McQueen  <robot101@debian.org>
1117
1118         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1119         Taylor to add two methods, dbus_g_method_return_get_reply and
1120         dbus_g_method_return_send_reply, to allow you to get the reply
1121         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1122         and send it. The GLib bindings can't marshal a return value of
1123         something like a(s) if the array is empty - ultimately they should be
1124         made to heed the signature of the out arguments as the Python bindings
1125         now can, but this is a workable interim solution which might have
1126         other applications.
1127
1128 2005-11-15  Robert McQueen  <robot101@debian.org>
1129
1130         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1131         method to org.freedesktop.DBus to release a bus name or give up
1132         waiting in the queue for it.
1133
1134         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1135         dbus_bus_release_name method to send the ReleaseName method calls.
1136         Add constants for the return values to dbus/dbus-shared.h.
1137
1138         * doc/dbus-specification.xml: Document the new ReleaseName method
1139         in the specification.
1140
1141         * python/dbus_bindings.pyx: Add a low-level python binding for the
1142         release name method.
1143
1144         * python/exceptions.py, python/service.py: Make freeing BusName
1145         objects release the name. Add a NameExistsException, and fix a
1146         bug with creating UnknownMethodException.
1147
1148         * test/python/test-client.py: Add tests for freeing BusName
1149         objects causing names to be released.
1150
1151 2005-11-14  Robert McQueen  <robot101@debian.org>
1152
1153         * python/service.py: Include the traceback in the error reply when we
1154         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1155
1156 2005-11-14  David Zeuthen  <davidz@redhat.com>
1157
1158         Patch from Timo Hoenig <thoenig@suse.de>.
1159
1160         * bus/bus.c: I've recently investigated why the automatic reload
1161         of configuration files does not work as expected.
1162
1163         Currently, reloading configuration files does only work when
1164         running dbus-daemon with --nodaemon.  If we are running as daemon
1165         we're hitting a dnotify bug once we fork the process.
1166
1167         We're initializing the dnotify fds before calling fork().  Once
1168         the child process forked it does still have the fds (and they
1169         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1170         getting SIGIO as changes are made to the configuration files.
1171
1172         The attached patch moves the initialization of the dnotify fds to
1173         process_config_postinit().  This is safe for all current code
1174         paths and solves the dnotify disfunction.  If we're running
1175         dbus-daemon as daemon the fds for dnotify are now being
1176         initialized after fork() for the child process.
1177
1178         * configure.in: The current configure.in check for dnotify probes
1179         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1180         match for 'xlinux', too. Additionally I have adapted the configure
1181         option's style to match with the others.
1182
1183 2005-11-14  Robert McQueen  <robot101@debian.org>
1184
1185         * python/decorators.py, python/service.py: Add a new argument to the
1186         dbus.service.method decorator called sender_keyword, which if set,
1187         specifies the name of an argument which will be provided the bus
1188         name of the method caller.
1189
1190         * test/python/test-client.py, test/python/test-service.py: Add a
1191         method and test to check the sender_keyword functionality.
1192
1193 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1194
1195         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1196         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1197         Simons <sjoerd at luon.net>)
1198
1199         * AUTHORS: Add Robert McQueen for his work on the Python
1200         Bindings and other parts of D-Bus
1201
1202 2005-11-07  Robert McQueen  <robot101@debian.org>
1203
1204         * python/decorators.py: Change emit_signal function to use the
1205         signature annotation of the signal when marhsalling the arguments from
1206         the service. Fix a bug where the code checking signature length
1207         against argument length referenced the wrong variable.
1208
1209         * python/introspect_parser.py: Avoid adding the type signature of
1210         signal arguments to any methods which occur after them in the
1211         introspection data (!) by making the parser a little more careful
1212         about its current state.
1213
1214         * python/service.py: Remove debug prints from last commit (again :D).
1215
1216         * test/python/test-client.py, test/python/test-service.py: Add test
1217         signals with signature decorators to test the strict marshalling code
1218         gives errors at the right time. Could do with checking the signals
1219         actually get emitted too, given that the test does nothing with
1220         signals at the moment...
1221
1222 2005-11-07  Robert McQueen  <robot101@debian.org>
1223
1224         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1225         instances to stop madness of creating new instances representing
1226         the same bus connection all the time, rendering any tracking of
1227         match rules and bus names quite meaningless. Caught a bug where
1228         the private argument to SessionBus() and friends was being passed
1229         in as use_default_mainloop by mistake. Still some problems with
1230         multiple dbus_binding.Connection instances representing the same
1231         low-level connection (eg when you use both SessionBus() and
1232         StarterBus() in same process), but it's a lot better now than it
1233         was.
1234
1235         * python/dbus_bindings.pyx: Add constants with the return values
1236         for bus_request_name().
1237
1238         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1239         and retrieve the same instances for the same name, so deletion can be
1240         done with refcounting. Also now throws some kind of error if you
1241         don't actually get the name you requested, unlike previously...
1242
1243         * test/python/test-client.py: Add tests for instance caching of buses
1244         and bus name objects.
1245
1246 2005-11-04  Robert McQueen  <robot101@debian.org>
1247
1248         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1249         marshalling of boolean values. Add some booleans to the values in
1250         the test client.
1251
1252         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1253         argument to the dbus.service.method decorator, which allows you to
1254         name arguments to take two callback functions for replying with
1255         return values or an exception.
1256
1257         * test/python/test-client.py, test/python/test-service.py: Add test
1258         case using asynchronous method reply functions, both return values and
1259         errors, and from within both the function itself and from a mainloop
1260         callback.
1261
1262         * python/decorators.py, python/service.py: Perform checking that the
1263         number of method/signal arguments matches the number of types in the
1264         signature at class loading time, not when you first introspect the
1265         class.
1266
1267         * python/service.py: Remove debug print left by the last commit.
1268
1269 2005-11-03  Robert McQueen  <robot101@debian.org>
1270
1271         * python/service.py: Heavy refactoring of method invocation, with
1272         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1273         in favour of a new _message_cb that uses seperate functions for
1274         looking up the method to call, marshalling the return values, and
1275         sending exceptions as errors, and is easier to follow as a
1276         consequence.  Fixes some corner cases about returning things that
1277         don't match your declared out_signature, allows exceptions to define
1278         _dbus_error_name and have it be sent over the bus as the error name,
1279         and paves the way for cool stuff like heeding the message no reply
1280         flag, asynchronous method implementations, informing the method of the
1281         sender, and including backtraces in the error messages.
1282
1283         * test/python/test-client.py: Catch and print exceptions thrown in the
1284         async callback tests, rather than passing them to the low-level
1285         bindings to be ignored in a noisy and frustrating manner.
1286
1287 2005-11-03  Robert McQueen  <robot101@debian.org>
1288
1289         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1290         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1291         tweak others to be consistent.
1292
1293         * test/python/test-client.py: Tweak output of testInheritance.
1294
1295 2005-10-29  Robert McQueen  <robot101@debian.org>
1296
1297         * python/service.py: Major changes to allow multiple inheritance
1298         from classes that define D-Bus interfaces:
1299         
1300          1. Create a new Interface class which is the parent class of
1301             Object, and make the ObjectType metaclass into InterfaceType.
1302         
1303          2. Patch written with Rob Taylor to replace use of method_vtable
1304             with code that walks the class's __MRO__ (method resolution order)
1305             to behave like Python does when invoking methods and allow
1306             overriding as you'd expect. Code is quite tricky because
1307             we have to find two methods, the one to invoke which has the
1308             right name and isn't decorated with the /wrong/ interface,
1309             and the one to pick up the signatures from which is decorated
1310             with the right interface.
1311         
1312             The same caveats apply as to normal multiple inheritance -
1313             this has undefined behaviour if you try and inherit from two
1314             classes that define a method with the same name but are
1315             decorated with different interfaces. You should decorate
1316             your overriding method with the interface you want.
1317         
1318          3. Replace grungy introspection XML generation code in the metaclass
1319             with dictionaries that cope correctly with multiple inheritance
1320             and the overriding of methods. This also uses the signature
1321             decorations to provide correct introspection data, including
1322             the debut appearance of the types of your return values. :D
1323
1324         * test/python/test-client.py, test/python/test-service.py: Add a test
1325         case to try invoking an method that overrides one inherited from a
1326         D-Bus interface class.
1327
1328 2005-10-29  Robert McQueen  <robot101@debian.org>
1329
1330         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1331         Add checking for the end of struct character when marshalling a
1332         struct in MessageIter.append_strict.
1333
1334         * python/examples/example-service.py,
1335         python/examples/gconf-proxy-service.py,
1336         python/examples/gconf-proxy-service2.py: Update to use gobject
1337         mainloop directly rather than appearing to depend on gtk.
1338
1339         * python/test/test-client.py, python/test/test-server.py: Remove
1340         obsolete and broken test scripts for old bindings. We have up to date
1341         and working tests in test/python/.
1342
1343 2005-10-29  Robert McQueen  <robot101@debian.org>
1344
1345         * python/decorators.py: Add optional arguments to the method and
1346         signal decorators to allow you to specify the signature of arguments
1347         and return values. Preserve the doc strings of signal functions in the
1348         decorated version, for pydoc and friends.
1349
1350         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1351         parse_signature_block function with an iterable dbus.Signature()
1352         type. Fix a bug in MessageIter.append_strict where you could append
1353         anything by claiming it was a string.
1354
1355         * python/service.py: Use the out_signature decoration on methods to
1356         marshal return values, meaning you no longer require dbus.Array()
1357         or dbus.Dictionary() to indicate the type when returning empty
1358         arrays or dictionaries. Fix a bug where exceptions which are defined
1359         in __main__ are not turned into error replies.
1360
1361         * test/python/test-client.py, test/python/test-service.py: Add test
1362         for correct marshalling of return values according to out_signature.
1363         Fix a bug in the async call test where the error_handler is missing a
1364         self argument.
1365
1366 2005-10-29  Robert McQueen  <robot101@debian.org>
1367
1368         * glib/Makefile.am, glib/examples/Makefile.am,
1369         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1370         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1371
1372         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1373
1374         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1375         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1376         the command line.
1377
1378 2005-10-27  Ross Burton  <ross@openedhand.com>
1379
1380         * dbus/dbus-marshal-header.c:
1381         Remove dead code.
1382
1383         * glib/dbus-gobject.c:
1384         Stop compiler warning.
1385
1386 2005-10-25  Ross Burton  <ross@openedhand.com>
1387
1388         * dbus/dbus-auth.c:
1389         * dbus/dbus-server-unix.c:
1390         * dbus/dbus-transport-unix.c:
1391         * glib/dbus-gmain.c:
1392         * glib/dbus-gobject.c:
1393         Add some const keywords.
1394
1395 2005-10-25  Ross Burton  <ross@openedhand.com>
1396
1397         * doc/dbus-specification.xml:
1398         Document the NoReply annotation.
1399
1400         * glib/dbus-binding-tool-glib.h:
1401         * glib/dbus-binding-tool-glib.c:
1402         Respect the NoReply annotation.
1403
1404 2005-10-24  Robert McQueen <robot101@debian.org>
1405
1406         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1407         derive from unicode instead of str, and encode/decode UTF-8 when
1408         marshalling/unmarshalling bus messages
1409
1410         * python/introspect_parser.py: encode introspection data as UTF-8
1411         before passing the buffer into libxml2
1412
1413         * test/python/test-client.py: add unicode test strings
1414
1415         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1416         ignore generated python test files
1417
1418 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1419
1420         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1421         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1422         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1423
1424         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1425         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1426         when constructing struct signatures
1427
1428         * python/_dbus.py (Bus): handle private connections using the
1429         private keyword in the constructor. defaults to private=False
1430         (Bus::close): new method to close a connection to the bus
1431
1432         * python/dbus_bindings.pyx (Connection::close): renamed method
1433         was previously called disconnect
1434         (bus_get): now supports getting a private connection
1435
1436         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1437         keyword is set to True.  if it is, execute the method without waiting
1438         for a reply
1439         (ProxyObject::_introspect_execute_queue): new method for executing
1440         all the pending methods that were waiting for the introspect to
1441         finish.  this is called when introspect either succeeds or fails
1442         (ProxyObject::_introspect_error_handler): call queued methods
1443
1444 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1445
1446         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1447         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1448
1449         * python/service.py (Object::_message_cb): handle exceptions correctly
1450         by sending them over the wire to the calling app.  This makes sure
1451         the client returns immediately instead of waiting the 15 seconds to
1452         timeout.
1453
1454         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1455         Add a test to benchmark how long it takes to introspect a service and 
1456         call a method which returns a large element (pretty fast)
1457
1458         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1459         method which pushes a lot of data
1460
1461 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1462
1463         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1464         reclaim memory outside of the loop and use del istead of just setting
1465         the key to None
1466
1467 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1468
1469         * python/service.py (ObjectType::_reflect_on_signal): Always close
1470         signal tag even when there are no arguments
1471
1472 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1473
1474         * configure.in: Set mono, mono-docs and Qt3 to default
1475         to no instead of auto when building.  These bindings do not
1476         have full time maintainers and will not be supported for the
1477         1.0 release.
1478
1479 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1480
1481         patches from Michael Krivoruchko <misha at sun.com>: 
1482         
1483         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1484         _dbus_connection_message_sent, 
1485         _dbus_connection_send_preallocated_unlocked_no_update, 
1486         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1487         is NULL when calling _dbus_verbose
1488
1489         * configure.in: check for functions getpeerucred and getpeereid
1490
1491         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1492         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1493         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1494         Patch was only tested on Solaris 10 x86 so it might be issues
1495         with other platforms (i.e. BSDs and MacOSX)
1496         
1497
1498 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1499
1500         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1501         instead of marshal basic so we can handle recursive types in a variant
1502
1503         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1504         in variants
1505
1506         * test/glib/test-service-glib.c, test-service-glib.xml
1507         (my_object_echo_variant [EchoVariant], 
1508         my_object_process_variant_of_array_of_ints123
1509         [ProcessVariantOfArrayOfInts123]): 
1510         Add two test methods
1511
1512         * python/introspect_parser.py: New module for parsing introspect
1513         data.
1514
1515         * python/dbus_bindings.pyx:
1516         (various places): when throwing errors fix to use errormsg instead 
1517         of message local variable because Pyrex can get confused with other 
1518         message variables (initial patch by Robert McQueen 
1519         <robert.mcqueen at collabora.co.uk>)
1520         (MessageIter::parse_signature_block): new method for getting the next
1521         block in a signiture.
1522         (MessageIter::append_strict): new method for appending values strictly
1523         using the passed in signature instead of guessing at the type
1524         (MessageItter:: append_dict, append_struct, append_array): use 
1525         signatures to marshal children if the signature is available
1526         
1527         * python/exceptions.py (IntrospectionParserException): new exception
1528
1529         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1530         introspected signatures if available, else we fall back to the
1531         old way of doing things.
1532         (ProxyObject::_introspect_reply_handler ): parse introspection data
1533         
1534         * python/service.py (ObjectType::_reflect_on_method): Properly
1535         terminate <method> if there are no args in the reflection data
1536
1537         * test/python/test-client.py: add tests for talking with the GLib
1538         test server.  This gives us better coverage for introspection since
1539         python to python will always generate arguments as variants.  It also
1540         allows us to test the robustness of the GLib bindings and interlanguage
1541         communications.
1542
1543         
1544 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1545
1546         * bus/driver.c (bus_driver_handle_introspect): Add signals
1547         to the introspect data. (patch from Daniel P. Berrange 
1548         <dan at berrange.com>)
1549
1550         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1551         
1552         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1553         _dbus_connection_run_builtin_filters): Changed these to
1554         be unlock_no_update functions and call 
1555         _dbus_connection_send_unlocked_no_update instead of
1556         dbus_connection_send to avoid locking errors.
1557         
1558         * doc/TODO: Removed the make Ping test TODO
1559         
1560 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1563         We now copy the message from a DBusError and then free 
1564         the error object befor throwing the error
1565
1566         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1567         DBusBindingOutputMode enum which was causing a warning.
1568         #include <time.h> so using time_t is explicitly defined
1569
1570 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1571
1572         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1573         - dbus/dbus-bus.c
1574         (internal_bus_get): new method that take over the heavy lifting
1575         of dbus_bus_get and adds the ability to get a private connection
1576         to the bus
1577         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1578         interface as in previous versions
1579         (dbus_bus_get_private): new method that is a wrapper to 
1580         internal_bus_get to get a private connection to the bus
1581
1582         - dbus/dbus-bus.h
1583         (dbus_bus_get_private): add as a public libdbus interface
1584
1585         - dbus-1.pc.in: output system_bus_default_address and 
1586         sysconfdir variables so apps can use them when compiling
1587
1588 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1589         * dbus/qt: New Qt bindings
1590
1591 2005-09-12  Waldo Bastian  <bastian@kde.org>
1592
1593         * dbus/dbus-marshal-validate.c,
1594         doc/dbus-specification.xml, test/Makefile.am,
1595         test/test-names.c: allow hyphens in bus names.
1596
1597 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1598
1599         * test/data/auth/fallback.auth-script: we don't
1600         retry the EXTERNAL method when we know its going
1601         to fail anymore.
1602
1603 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1604
1605         * dbus/dbus-connection-internal.h: rename
1606         (add|remove|toggle)_(watch|timeout) to unlocked()
1607         
1608         * dbus/dbus-connection.c: ditto.
1609         
1610         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1611         Update some callers for the renaming.
1612
1613 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1614
1615         * dbus/dbus-auth.c: (record_mechanisms): don't
1616         retry the first auth mechanism because we know
1617         we're just going to get rejected again.
1618         
1619         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1620         Fix thinko ... and what a nasty little bugger to
1621         track down you were ...
1622
1623         * dbus/dbus-connection.c:
1624         (_dbus_connection_add_watch),
1625         (_dbus_connection_remove_watch): add note about
1626         these needing the connection to be locked.
1627         (_dbus_connection_get_dispatch_status_unlocked):
1628         set status to DATA_REMAINS when we queue the
1629         disconnected message.
1630         
1631         * bus/dispatch.c:
1632         (bus_dispatch): fix warning.
1633         (check_existent_service_no_auto_start):
1634         Expect ChildSignaled error too.
1635         (check_existent_hello_from_self): fix another
1636         couple of warnings.
1637         
1638 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1639
1640         Patches from James Willcox <snorp@snorp.net>
1641
1642         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1643
1644         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1645         support array "out" parameters.
1646
1647         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1648         for 16-bit int support.
1649
1650 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1651
1652         * Released 0.50
1653
1654         * Patch from Steve Grubb:
1655         - bus/activation.c (bus_activation_service_reload_test): clean up
1656         some indentation
1657         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1658         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1659         buffer overflows in the test suite.  This is non critical because
1660         it can not be exploited and this code is only run when doing a 
1661         make check.
1662
1663         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1664         - configure.in: Don't check and link against kdecore, only qt headers
1665         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1666         - gcj/org/freedesktop/dbus/Makefile.am:
1667         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1668         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1669         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1670         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1671         - tools/Makefile.am: Add platform extentions to binaries 
1672         (i.e. .exe on windows)
1673
1674         * configure.in: 
1675         - Make it so if no suitable version of python is found we only 
1676         disable building python instead of exiting the configure script
1677         - Require version 2.4 of glib for glib bindings
1678         - Up version to 0.50
1679
1680         * python/__init__.py: Sync version with libdbus to (0,50,0)
1681         
1682 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1683
1684         * dbus/dbus-object-tree.c (find_subtree_recurse):
1685         a couple of optimizations (bug #710):
1686         - do a binary search in the tree
1687         - insert a new child at the right place directly, no need for
1688           qsort anymore
1689         - do the "double alloc" thing when allocating children
1690
1691 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1692
1693         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1694
1695         * python/dbus_bindings.pyx: Memory management foo
1696         (global): remove hacky _user_data_references global list
1697         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1698         tuples. Unref user_data
1699         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1700         (Connection::__del__): Remove and replace with __dealloc__ method
1701         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1702         to keep tuple from being deallocated instead of the global var hack
1703         (Connection::register_object_path): Stuff user_data into a tuple.
1704         Use Py_INCREF to keep tuple from being deallocated instead of the 
1705         global var hack
1706         (Connection::register_fallback): Stuff user_data into a tuple.
1707         Use Py_INCREF to keep tuple from being deallocated instead of the 
1708         global var hack
1709         (GIL_safe_pending_call_notification): Don't unref the message
1710         because it gets unreffed when going out of scope.  Py_XDECREF
1711         the user_data
1712         (PendingCall::__del__): Remove and replace with __dealloc__ method
1713         (PendingCall::set_notify): ref the pending call because we will
1714         need it to stick around for when the notify callback gets called
1715         (Message::__del__): Remove and replace with __dealloc__ method
1716
1717         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1718         gthreads_init to match up with the dbus call
1719
1720         * python/glib.py (init_threads): Changed to threads_init to match
1721         up with gobject.threads_init().  init_threads is kept for backwards
1722         compat but will most likely be deprecated in the future
1723
1724         * test/python/test-client.py: 
1725         - revamp to use Python's unittest functionality
1726         - add async call tests
1727         - setup threads in glib and dbus so we make sure locks are working
1728         
1729 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1730
1731         * python/dbus_bindings.pyx 
1732         (_pending_call_notification, cunregister_function_handler, 
1733         cmessage_function_handler): All callback functions have been rearranged 
1734         to workaround a bug in Pyrex when working with the GIL which is Python's 
1735         global lock when dealing with threads.  They have been split into
1736         a wrapper function (which assumes the name of the old function) and
1737         a _GIL_safe_<function name> function which contains the functionality
1738         of the old function.  This ensures that Pyrex does not write code
1739         the lock is released.
1740         
1741
1742 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1743
1744         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1745         GIL global lock when calling back into Python
1746
1747 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1748
1749         * Release 0.36.2
1750
1751         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1752
1753         * bus/policy.c (bus_policy_allow_user): change default "user is
1754         allowed" to be "user has same uid as the bus itself"; any
1755         allow/deny rules will override.
1756
1757         * bus/session.conf.in: don't allow all users, since now by default
1758         the user that ran the bus can connect.
1759
1760 2005-08-26  Colin Walters  <walters@verbum.org>
1761
1762         * tools/dbus-print-message.c (print_message): Flush stdout
1763         after printing a message, so that redirecting to a file, then
1764         hitting Ctrl-C works.
1765
1766 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1767
1768         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1769         (EmptyMessage): new class that subclasses Message.  This is a workaround
1770         to a Pyrex bug that fails to call __del__ when the Message object goes out
1771         of scope.  For some reason subclassing Message fixes this bug
1772         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1773         - s/Message(_create=0)/EmptyMessage everywhere else
1774         
1775         * test/python/test-{server|client}.py: add the python/.libs directory
1776         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1777         get picked up from the system
1778
1779 2005-08-25  Colin Walters  <walters@verbum.org>
1780
1781         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1782         to Ryan Lortie for the suggestion.
1783
1784 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1785
1786         * test/python: Add python regression test
1787
1788         * configure.in: Add test/python/Makefile
1789
1790         * test/Makefile.am: Add the python directory to SUBDIRS
1791
1792 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1793
1794         * Release 0.36.1
1795
1796         * python/_dbus.py: 
1797         (Interface::connect_to_signal): propigate keywords for match on args
1798         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1799
1800         * python/proxies.py (ProxyObject::connect_to_signal):
1801         propigate keywords for match on args
1802
1803         * Makefile.am: point everything to pyexecdir since python borks
1804         on multilib
1805
1806 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1807
1808         * Release 0.36
1809
1810 2005-08-23  Colin Walters  <walters@verbum.org>
1811
1812         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1813
1814 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1815
1816         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1817         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1818         of defining DBusConnection ourselves.
1819
1820 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1821
1822         * python/dbus.pth: New path file to fix up problems when installing
1823         c libraries to lib64 and python files to lib.
1824
1825         * python/Makefile.am: install dbus.pth in the correct spot
1826
1827 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1828         * ChangeLog: clean up my last entry a bit
1829
1830         * doc/introspect.xsl: New stylesheet for converting introspection data
1831         into browser renderable xhtml. Contributed by Lennart Poettering.
1832
1833         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1834         Poettering.
1835
1836         * doc/dbus-tutorial.xml: 
1837         - Add Colin Walter to the Authors section for authoring the GLib
1838         section
1839         - Add descriptions of the new signature and type functionality
1840         in the Python complex type mapping section
1841         - Add a sidenote on the new args matching functionality in 
1842         the Python bindings
1843         - Fixed up some of the examples to use the gobject.MainLoop
1844         instead of gtk.main
1845         
1846         * python/_dbus.py:
1847         (Bus::_create_args_dict): New. Converts a hash of arg matches
1848         to a more useable format
1849         (Bus::add_signal_receiver): add a **keywords parameter for catching
1850         arg match parameters
1851         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1852         arg match parameters
1853         
1854         * python/matchrules.py:
1855         (MatchTree::exec_matches): Check for arg matches
1856         (SignalMatchRule::add_args_match): New method
1857         (SignalMatchRule::execute): Added args_list parameter as an optimization
1858         so we don't have to marshal the args more than once
1859         (SignalMatchRule::match_args_from_list): New method that checks to see
1860         if the rule's arg matches match an argument list.  Only arguments
1861         set in the rule are checked.
1862         (SignalMatchRule::match_args_from_rule): New method that checks to see
1863         if the rule's arg matches match another rule's.  All args have to match
1864         in order for this method to return true.  If either rule has more args
1865         then it is not a match.
1866         (SignalMatchRule::is_match): Add args match
1867         (SignalMatchRule::repr): Add args to the final output if they exist
1868
1869 2005-08-17  Ross Burton  <ross@burtonini.com>
1870
1871         * glib/dbus-gproxy.c:
1872         (dbus_g_proxy_call_no_reply): unref the message once sent.
1873         (dbus_g_proxy_call): protect against NULL proxy.
1874
1875 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1876
1877         * python/__init__.py: Version updated (0, 43, 0)
1878         
1879         * python/dbus_bindings.pyx: 
1880         - Fixed type objects to have self passed into __init__
1881         - Added the Variant type
1882         - Add the ability to specify types or signatures for Array, Variant 
1883         and Dictionary
1884         (Connection::send_with_reply_handlers): return a PendingCall object
1885         (_pending_call_notification): handle the case when an error is returned 
1886         without an error message in the body
1887         (MessageIter::get_boolean): return True or False instead of an integer
1888         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1889         and add checks for objects with embeded signatures or types (Array, 
1890         Variant and Dictionary)
1891         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1892         (MessageIter::append_dict): handle embeded types or signatures
1893         (MessageIter::append_array): handle embeded types or signatures
1894         (MessageIter::append_variant): new method
1895         
1896         * python/proxies.py:
1897         (DeferedMethod): New. Dummy executable object used when queuing calls 
1898         blocking on introspection data
1899         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1900         or shorter timeouts for method calls
1901         (ProxyObject): Add first pass at an introspection state machine
1902         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1903         introspection. 
1904         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1905         the usual mechanisms for sending messages.  This is to avoid a deadlock
1906         where the Intospect call would be queued waiting for the Introspect 
1907         call to finish ;-)
1908         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1909         when introspection returns with no error
1910         (ProxyObject::_introspect_error_handler): New.  This method is called 
1911         when introspection encounters an error
1912         (ProxyObject::__getattr__): Code to handle different introspection 
1913         states.  Queue async calls or block blocking calls if we are 
1914         introspecting.  Pass through as normal if we are not or are done with 
1915         introspecting.
1916         
1917         * python/service.py: Import signal and method from decorators.py
1918
1919         * python/types.py: Add Variant type
1920
1921 2005-08-16  Colin Walters  <walters@verbum.org>
1922
1923         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1924         DBusError message is NULL.
1925
1926 2005-08-09  Havoc Pennington  <hp@redhat.com>
1927
1928         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1929         malloc'd copy of the name parameter
1930
1931 2005-08-09  Havoc Pennington  <hp@redhat.com>
1932
1933         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1934         warning if the reply serial is set to 0
1935
1936 2005-08-04  Colin Walters  <walters@verbum.org>
1937
1938         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1939         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1940         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1941         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1942         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1943         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1944         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1945         * glib/dbus-gvalue.h (dbus_g_value_types_init)
1946         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1947         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1948         
1949         Prefix name with _ to ensure they're not exported.  All callers
1950         updated.
1951
1952         * glib/dbus-gvalue.c (typecode_to_gtype)
1953         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1954         (signature_iter_to_g_type_dict)
1955         (signature_iter_to_g_type_array)
1956         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1957         (dbus_gtypes_from_arg_signature):
1958         Move to dbus-gsignature.c.
1959
1960         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1961         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1962         (dbus_binding_tool_output_glib_client): Ditto.
1963
1964         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1965         and dbus-gsignature.h
1966
1967         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1968         unused variable.
1969
1970 2005-08-03  Colin Walters  <walters@verbum.org>
1971
1972         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1973         catch any incompatible changes accidentally made.
1974
1975 2005-08-03  Havoc Pennington  <hp@redhat.com>
1976
1977         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1978         typo, from Julien Puydt
1979
1980         * bus/connection.c (bus_connection_disconnected): we were always
1981         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1982
1983 2005-08-01  Colin Walters  <walters@verbum.org>
1984
1985         Patch from Joe Markus Clarke:   
1986         
1987         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1988         use-after-free.
1989
1990 2005-08-01  Colin Walters  <walters@verbum.org>
1991         
1992         Patch from Joe Markus Clarke:   
1993         
1994         * tools/dbus-send.c (main): 
1995         
1996         Don't use C99 style initializers (bug #3933).
1997         
1998 2005-08-01  Colin Walters  <walters@verbum.org>
1999
2000         Patch from Joe Markus Clarke:   
2001
2002         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2003         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2004         * glib/dbus-gobject.c (write_interface):
2005
2006         Don't use C99 style initializers (bug #3933).
2007
2008 2005-07-31  Havoc Pennington  <hp@redhat.com>
2009
2010         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2011         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2012
2013 2005-07-30  Havoc Pennington  <hp@redhat.com>
2014
2015         * fix a bunch of Doxygen warnings and mistakes
2016
2017 2005-07-30  Havoc Pennington  <hp@redhat.com>
2018
2019         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2020         DBUS_BUILD_TESTS since it's now used in production code
2021
2022 2005-07-29  Havoc Pennington  <hp@redhat.com>
2023
2024         * test/glib/test-profile.c (write_junk): initialize the junk
2025         buffer so valgrind doesn't have a breakdown
2026
2027 2005-07-29  Havoc Pennington  <hp@redhat.com>
2028
2029         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2030         (match_rule_matches): remove unused arg
2031         (test_matching): add tests for match_rule_matches()
2032
2033         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2034         do arg0='foo' arg5='bar' in the match rules
2035         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2036
2037         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2038
2039 2005-07-29  Ross Burton  <ross@openedhand.com>
2040
2041         * dbus/dbus-connection.c:
2042         Don't create a DBusCondVar which is never used.
2043
2044 2005-07-27  Ross Burton  <ross@openedhand.com>
2045
2046         * dbus/dbus-message.c:
2047         Reduce the size of the maximum cached message to 10K.
2048
2049 2005-07-25  Ross Burton  <ross@openedhand.com>
2050
2051         * glib/dbus-gproxy.c:
2052         Remove matches when all proxies are unregistered.
2053
2054 2005-07-24  Colin Walters  <walters@verbum.org>
2055
2056         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2057         typedata; recursive arrays won't have it.
2058
2059         * test/glib/test-dbus-glib.c:
2060         * test/glib/test-service-glib.c:
2061         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2062         
2063 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2064
2065         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2066         proxies.py, service.py: Cleanup of code after running it through the
2067         pyflakes code checker mostly dealing with undefined names.  
2068         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2069
2070 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2071
2072         * NEWS: Update to 0.35.2
2073
2074 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2075
2076         * python/_dbus.py: Remove import of the dbus.services
2077         module as it no longer exists (patch from Dimitur Kirov)
2078
2079         * python/service.py (Object::__init__): Fixed typo
2080         s/name/bus_name (patch from Dimitur Kirov)
2081
2082         * python/examples/example-signal-emitter.py: import dbus.glib
2083         to get the main loop and use glib mainloop instead of gtk so
2084         X doesn't have to be running.
2085
2086         * python/examples/example-signal-recipient.py: import dbus.glib
2087         to get the main loop and use glib mainloop instead of gtk so
2088         X doesn't have to be running. Import the decorators module
2089         directly.
2090
2091         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2092         didn't pick up on but are needed to build
2093
2094         * configure.in: upped version to 0.35.2
2095
2096         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2097         added Colin Walters' SELinux API rename patch from head 
2098         s/unix sercurity context/selinux security context/
2099
2100 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2101
2102         * python/Makefile.am: dbus_binding.pxd.in should be included 
2103         in EXTRA_DIST not dbus_binding.pxd
2104         fix up $(srcdir) hopefully for the last time
2105
2106         * NEWS: Update to 0.35.1
2107
2108 2005-07-16  Colin Walters  <walters@verbum.org>
2109
2110         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2111         from bus_driver_handle_get_connection_unix_security_context.  Update for
2112         error usage.
2113         (message_handlers): Update for renames.
2114
2115         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2116         _dbus_string_init failure correctly.
2117         (bus_selinux_append_context): Convert SID to context.  Append it
2118         as a byte array.
2119         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2120         hasn't been called.
2121
2122         * bus/selinux.h: Update prototype.
2123
2124         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2125         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2126
2127 2005-07-15  Colin Walters  <walters@verbum.org>
2128
2129         * doc/TODO: Add note about convenience wrappers.
2130
2131 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2132
2133         * NEWS: Update to 0.35
2134
2135 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2136
2137         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2138         so distcheck doesn't fail
2139
2140         * glib/examples/Makefile.am: Add example-service.xml and 
2141         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2142
2143         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2144         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2145
2146         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2147         compiler looks in the right places during distcheck
2148
2149 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2150
2151         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2152         to fail
2153
2154 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2155
2156         * python/examples/example-service.py,
2157         python/examples/example-signal-emitter.py: Fixed up examples
2158         for API changes
2159
2160 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2161
2162         * python/__init__.py: Upped to version (0,42,0) because of
2163         the API change
2164
2165 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2166
2167         * ChangeLog: fix date in last entry
2168
2169         * configure.in, bus/system.conf.in: add the ability to configure 
2170         the system bus user at compiletime with the --with-dbus-user flag
2171         (patch from Kristof Vansant)
2172
2173 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2174
2175         * bus/dispatch.c, test/test-service.c: Add testcase
2176         for sending messages to oneself (TODO item).
2177
2178         * python/service.py (class Object): Swap ordering of bus_name 
2179         and object_path parameters to better support inheritance.
2180
2181         * doc/dbus-tutorial.xml: change Python docs to reflect change
2182         in parameter ordering and fix the inheritance section.
2183
2184         * doc/TODO: remove sending message to oneself TODO item
2185
2186 2005-07-15  Ross Burton  <ross@openedhand.com>
2187
2188         * glib/dbus-gproxy.c:
2189         Fix a leak when calling methods via the proxy.
2190
2191 2005-07-15  Colin Walters  <walters@verbum.org>
2192
2193         * bus/selinux.c (bus_selinux_append_context): Wrap in
2194         HAVE_SELINUX.
2195
2196 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2197
2198         * python/_dbus.py (Bus::remove_signal_receiver):
2199         don't add a callback to the match if none has been passed in
2200         
2201         * python/matchrules.py (SignalMatchTree::remove): if the rule
2202         being matched does not have a callback treat it as a wildcard
2203         fix matching logic
2204
2205         * doc/dbus-tutorial.xml: Add Python tutorial
2206
2207 2005-07-14  Colin Walters  <walters@verbum.org>
2208
2209         * bus/driver.c
2210         (bus_driver_handle_get_connection_unix_security_context): New function.
2211         (message_handlers): Add.
2212
2213         * bus/selinux.c (bus_selinux_append_context): New function; appends
2214         security context to message.
2215
2216         * bus/selinux.h: Prototype.
2217
2218         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2219
2220 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2221
2222         * bus/activation.c: clean up all tabs to be 8 spaces 
2223         (bus_activation_activate_service): make sure we clean up
2224         if activation fails
2225
2226         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2227         (check_shell_fail_service_auto_start): New function
2228         tests to make sure we get fail properly when trying to auto start a service
2229         with a faulty command line
2230         (check_shell_service_success_auto_start): New function tests to make sure
2231         auto started services get the arguments on the command line
2232
2233         * test/test-shell-service.c: Added service for testing auto-starting with 
2234         command line arguments
2235
2236         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2237         test/data/valid-service-files/debug-shell-echo-success.service.in:
2238         Added service files for testing auto-starting with command line arguments
2239
2240         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2241
2242 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2243
2244         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2245         
2246         * dbus/Makefile.am: added new files to build.
2247
2248         * bus/activation.c (bus_activation_activate_service): support
2249         activation commands with parameters.
2250
2251         * test/shell-test.c: added test program for the shell parsing
2252         code.
2253
2254 2005-07-13  David Zeuthen  <davidz@redhat.com>
2255
2256         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2257         64 bit signed and unsigned parameters
2258
2259 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2260
2261         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2262
2263         * python/service.py (class Name): renamed BusName to make it clearer
2264         what the object is for (a name on the bus)
2265
2266         * python/examples/example-service.py,
2267         python/examples/example-signal-emitter.py: change the Name object to
2268         BusName
2269
2270 2005-07-12  Colin Walters  <walters@verbum.org>
2271
2272         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2273
2274         * tools/dbus-launch.c: Include sys/select.h.
2275
2276 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2277         * python/dbus_bindings.pyx.in: removed
2278
2279         * python/dbus_bindings.pyx: Added.
2280         - Fixed some memleaks (patch from 
2281         Sean Meiners <sean.meiners@linspireinc.com>)
2282         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2283         own pxd file (Pyrex definition)
2284         - Broke out glib dependancies into its own pyx module
2285         
2286         * python/dbus_bindings.pdx: Added.
2287         - Defines C class Connection for exporting to other modules
2288
2289         * python/dbus_glib_bindings.pyx: Added.
2290         - New module to handle lowlevel dbus-glib mainloop integration
2291
2292         * python/glib.py: Added.
2293         - Registers the glib mainloop when you import this module
2294
2295         * python/services.py: Removed (renamed to service.py)
2296         
2297         * python/service.py: Added.
2298         - (class Server): renamed Name
2299
2300         * python/__init__.py: Bump ro version (0,41,0)
2301         -don't import the decorators or service module
2302         by default.  These now reside in the dbus.service namespace
2303
2304         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2305         setup function on creation 
2306
2307         * python/examples/example-service.py,
2308         python/examples/example-signal-emitter.py: update examples
2309
2310         * python/examples/gconf-proxy-service.py,
2311         python/examples/gconf-proxy-service2.py: TODO fix these up
2312
2313         * doc/TODO: Addition
2314         - Added a Python Bindings 1.0 section
2315         - added "Add match on args or match on details to match rules"
2316
2317
2318 2005-07-12  Colin Walters  <walters@verbum.org>
2319
2320         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2321         (statemachine-glue.h): 
2322         * glib/examples/Makefile.am (example-service-glue.h) 
2323         (example-signal-emitter-glue.h): 
2324         * glib/Makefile.am (dbus-glib-error-switch.h): 
2325         Add libtool --mode=execute so we use the built library instead
2326         of any installed one.
2327
2328 2005-07-11  Colin Walters  <walters@verbum.org>
2329
2330         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2331         (dbus_g_value_types_init): Remove assertion.
2332         (dbus_g_value_get_g_type, dbus_g_value_open)
2333         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2334         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2335         functions related to DBusGValue.  Now we marshal/demarshal
2336         structures as GValueArray.
2337         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2338         structures.
2339         (signature_iter_to_g_type_array): Don't call
2340         signature_iter_to_g_type_struct.
2341         (signature_iter_to_g_type_struct): Delete.
2342         (dbus_gvalue_to_signature): Delete.
2343         (dbus_gvalue_to_signature): New function with same name as other
2344         one; we can convert structures to signatures.
2345         (demarshal_valuearray): New function.
2346         (get_type_demarshaller): Use it.
2347         (demarshal_recurse): Delete.
2348         (marshal_proxy): New function.
2349         (marshal_map): Warn if we can't determine signature from type.
2350         (marshal_collection_ptrarray): Ditto.
2351         (marshal_collection_array): Ditto.
2352         (get_type_marshaller): Use marshal_valuearray.
2353         (marshal_recurse): Delete.
2354         (_dbus_gvalue_test): Add some tests.
2355
2356         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2357         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2358         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2359         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2360         (dbus_g_value_free): Remove prototypes.
2361
2362         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2363         G_TYPE_VALUE_ARRAY.
2364
2365         * glib/examples/example-service.c:
2366         * glib/examples/example-client.c: Implement GetTuple.
2367
2368         * test/glib/test-dbus-glib.c:
2369         * test/glib/test-service-glib.c:
2370         * test/glib/test-service-glib.xml: Add structure tests.
2371
2372 2005-07-10  Colin Walters  <walters@verbum.org>
2373
2374         * doc/TODO: Knock off some GLib items with this patch.
2375
2376         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2377         (_dbus_gvalue_signals_error): New functions.
2378
2379         * glib/dbus-gvalue-utils.h: Prototype them.
2380
2381         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2382         and change to not output const/retval flags for input args.  All
2383         callers updated.
2384         (invoke_object_method): Refactor to handle return values.  Add
2385         some more comments in various places.  Remove debug g_print.
2386
2387         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2388
2389         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2390         Handle G_TYPE_NONE.
2391         (compute_gsignature): New function; refactored from code from
2392         compute_marshaller and compute_marshaller_name.  Enhance to
2393         handle return values and async ops more cleanly.  Update for
2394         async ops returning NONE instead of BOOLEAN.
2395         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2396         and output appropriate string.
2397         (generate_glue): Handle return value annotation.  Also don't dump
2398         constness flag for input arguments.
2399
2400         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2401         files shared between installed library and utilities.
2402         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2403         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2404         binding tool can access gtype utility functions.
2405
2406         * test/glib/test-service-glib.c: 
2407         * test/glib/test-service-glib.xml: 
2408         * test/glib/test-dbus-glib.c: Add some tests for return values.
2409
2410 2005-07-09  Colin Walters  <walters@verbum.org>
2411
2412         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2413         argument if available, not method.
2414
2415         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2416         (invoke_object_method): First, remove some redundant
2417         GValues (object_value, error_value) in favor of working on
2418         array directly.  Second, rework constness to be less buggy.
2419         Now we iterate directly over the argument metadata instead
2420         of parallel iterating over output signature and metadata.
2421
2422         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2423
2424         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2425         annotation on input args.
2426         
2427 2005-07-09  Colin Walters  <walters@verbum.org>
2428
2429         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2430         Define.
2431
2432         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2433         annotation.
2434
2435         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2436         (method_dir_signature_from_object_info): Handle arg_iterate change.
2437         (write_interface): Ditto.
2438         (lookup_object_info): Don't barf if format_version is > 0.
2439         (invoke_object_method): Handle arg constness.
2440
2441         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2442         (arg_info_new): Create.
2443         (arg_info_unref): Destroy.
2444         (arg_info_get_annotations, arg_info_get_annotation) 
2445         (arg_info_add_annotation): New functions.
2446
2447         * glib/dbus-gidl.h: Prototype them.
2448
2449         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2450         args, disallow them in properties.
2451         (parse_annotation): Handle arg annotations.
2452
2453         * test/glib/test-service-glib.xml: 
2454         * test/glib/test-service-glib.c: Update to make some methods
2455         const.
2456
2457 2005-07-08  Colin Walters  <walters@verbum.org>
2458
2459         * test/glib/test-service-glib.xml: 
2460         * test/glib/test-service-glib.c:
2461         * test/glib/test-dbus-glib.c: Test a{sv}.
2462
2463         * glib/examples/statemachine/statemachine.c:
2464         * glib/examples/statemachine/statemachine-server.c:
2465         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2466         add progress bar, etc.
2467
2468         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2469         needed anymore due to generic array/map marshalling.
2470         (dbus_g_value_types_init): Don't register basic arrays or the
2471         string/string hash.
2472         (dbus_gtype_from_signature_iter): Don't try to recurse into
2473         variants.
2474         (dbus_gtype_to_signature): Check collection/map before type
2475         metadata.
2476         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2477         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2478         generic map creation/append functions instead of hash table
2479         specifically.
2480         (get_type_demarshaller): Handle maps.
2481         (demarshal_collection): Dispatch on collection type to either
2482         demarshal_collection_ptrarray or demarshal_collection_array.
2483         (get_type_marshaller): Handle maps.
2484         (marshal_collection): Dispatch collection type to either
2485         marshal_collection_ptrarray or marshal_collection_array.
2486         (_dbus_gvalue_test): New test.
2487
2488         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2489         (hash_free_from_gtype): Use it to free GValues.
2490         (hashtable_append): New function.
2491         (ptrarray_append): Fix prototype.
2492         (slist_append): Ditto.
2493         (_dbus_gvalue_utils_test): Extend tests.
2494
2495         * glib/dbus-gtype-specialized.c
2496         (dbus_g_type_specialized_init_append): Renamed from
2497         dbus_g_type_specialized_collection_init_append.  Remove const from
2498         value, since we steal it.
2499         (dbus_g_type_specialized_map_append): New function.
2500
2501         * glib/dbus-gtype-specialized.h: Update prototypes.
2502         Add DBusGTypeSpecializedMapAppendFunc.
2503
2504         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2505         _dbus_gvalue_test.
2506         
2507         * glib/dbus-gtest.h: Prototype it.
2508
2509 2005-07-08  Ross Burton  <ross@openedhand.com>
2510
2511         * dbus/dbus-glib.h:
2512         Add DBysGAsyncData for the async bindings.
2513
2514         * glib/dbus-binding-tool-glib.c:
2515         Re-enable the async bindings.
2516
2517         * test/glib/test-dbus-glib.c:
2518         Add a test for the generated async bindings.
2519
2520 2005-07-08  Colin Walters  <walters@verbum.org>
2521
2522         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2523         connection concept.
2524         
2525 2005-07-08  Colin Walters  <walters@verbum.org>
2526         
2527         * tools/Makefile.am: Kill of print-introspect in favor of using
2528         dbus-send --print-reply=literal.
2529
2530         * test/glib/test-service-glib.xml: 
2531         * test/glib/test-service-glib.c (my_object_get_objs): New test
2532         for "ao".
2533
2534         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2535         (main): Test GetObjs.
2536
2537         * glib/examples/statemachine/Makefile.am:
2538         * glib/examples/statemachine/sm-marshal.list:
2539         * glib/examples/statemachine/statemachine-client.c:
2540         * glib/examples/statemachine/statemachine-server.c:
2541         * glib/examples/statemachine/statemachine-server.xml:
2542         * glib/examples/statemachine/statemachine.c:
2543         * glib/examples/statemachine/statemachine.h:
2544         * glib/examples/statemachine/statemachine.xml:
2545
2546         New example.
2547
2548         * glib/examples/example-service.c (main): Move invocation
2549         of dbus_g_object_type_install_info earlier, to emphasize it
2550         should only be done once.
2551
2552         * glib/examples/example-signal-emitter.c (main): Ditto.
2553
2554         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2555
2556         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2557         (dbus_gvalue_marshal): Update prototypes.
2558
2559         * glib/dbus-gvalue.c: Update all marshalling functions to take
2560         const GValue instead of GValue.
2561         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2562         types.
2563         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2564         change.
2565         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2566         Return a newly-allocated string.
2567         (demarshal_proxy, demarshal_object_path, demarshal_object)
2568         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2569         we get the wrong types from message.
2570         (get_type_demarshaller): New function, extracted from
2571         dbus_gvalue_demarshal.
2572         (demarshal_collection): New function, demarshals generic
2573         collection.
2574         (dbus_gvalue_demarshal): Just invoke result of
2575         get_type_demarshaller.  Throw error if we don't have one.
2576         (marshal_garray_basic): Abort on OOM.
2577         (get_type_marshaller): New function, extracted from
2578         dbus_gvalue_marshal.
2579         (collection_marshal_iterator, marshal_collection): New functions;
2580         implements generic marshalling for an iteratable specialized
2581         collection.
2582         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2583
2584         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2585         G_TYPE_STRING.
2586         (ptrarray_value_from_gvalue): Ditto.
2587         (ptrarray_append, ptrarray_free): New functions.
2588         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2589         (slist_append, slist_end_append, slist_free): New functions.
2590         (dbus_g_type_specialized_builtins_init): Add append fuctions
2591         for GPtrArray and GSList.  Register GSList.
2592         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2593
2594         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2595         New.
2596         (dbus_g_type_specialized_collection_init_append)
2597         (dbus_g_type_specialized_collection_append)
2598         (dbus_g_type_specialized_collection_end_append): Prototype.
2599         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2600         end_append_func.
2601
2602         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2603         (dbus_g_type_specialized_collection_append) 
2604         (dbus_g_type_specialized_collection_end_append): New functions.
2605         (dbus_g_type_map_value_iterate): Take const GValue.
2606         (dbus_g_type_collection_value_iterate): Ditto.
2607
2608         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2609         _dbus_gvalue_utils_test.
2610         
2611         * glib/dbus-gtest.h: Prototype it.
2612
2613         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2614         using uninitialized owner_list.
2615         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2616         public API.
2617         (dbus_g_proxy_end_call_internal): Update to use error set
2618         from dbus_gvalue_demarshal instead of setting it here.
2619         (dbus_g_proxy_begin_call): Move return_if_fail here.
2620
2621         * glib/dbus-gobject.c (write_interface): Update for
2622         dbus_gtype_to_signature returning new string.
2623
2624         * configure.in: Add glib/examples/statemachine.
2625
2626 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2627
2628         * configure.in: Add a configure option, --with-console-auth-dir
2629         
2630         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2631         new setting.  Patch from Kay Sievers.
2632
2633 2005-07-06  Colin Walters  <walters@verbum.org>
2634
2635         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2636         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2637         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2638         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2639         Delete in favor of dbus_g_proxy_begin_call and
2640         dbus_g_proxy_cancel_call.
2641         (DBusGProxyCall, DBusGProxyCallNotify): New.
2642         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2643         data, and destroy function.  This replaces
2644         dbus_g_pending_call_set_notify.
2645         (dbus_g_proxy_cancel_call): Prototype.
2646         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2647
2648         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2649         pending_calls map.
2650         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2651         internal proxy for calls to the bus. Remove
2652         pending_nameowner_calls, now the internal proxy keeps track.
2653         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2654         pending_nameowner_calls.
2655         (got_name_owner_cb): Update prototype, and use
2656         dbus_g_proxy_end_call.
2657         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2658         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2659         favor of using internal proxy.
2660         (dbus_g_proxy_manager_unregister): Update to use
2661         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2662         (dbus_g_proxy_init): Initialize pending calls map.
2663         (dbus_g_proxy_constructor): New.
2664         (dbus_g_proxy_class_init): Add get/set property functions,
2665         constructor, and add NAME, PATH, and INTERFACE properties.
2666         (cancel_pending_call): New function.
2667         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2668         cancel them.
2669         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2670         (GPendingNotifyClosure): New structure.
2671         (d_pending_call_notify, d_pending_call_free): Moved here from
2672         dbus-glib.c.
2673         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2674         ordering.
2675         (manager_begin_bus_call): New internal function for talking to
2676         internal bus proxy.
2677         (dbus_g_proxy_new): Construct object using GObjet properties.
2678         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2679         Create closure of same, and insert call into map of pending calls.
2680         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2681         call.  Look up pending call in current set.  Remove it when we've
2682         completed.
2683         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2684         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2685         and destroy function directly.
2686         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2687         (dbus_g_proxy_call): Invoke with NULL callback.
2688         (dbus_g_proxy_cancel_call): New function, replaces
2689         dbus_g_pending_call_cancel.
2690
2691         * glib/dbus-gparser.c (validate_signature): Fix call to
2692         dbus_set_g_error.
2693
2694         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2695         New quark for attaching metadata to GType.
2696         (info_hash): Delete.
2697         (lookup_object_info): Look up using quark.
2698         (dbus_g_object_type_install_info): Check that a type is classed,
2699         not that it's an object.  Also just install type data using quark
2700         instead of using global hash.
2701
2702         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2703         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2704         (GPendingNotifyClosure): Delete.
2705         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2706         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2707
2708         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2709         client method generation until we can fix it...
2710         
2711         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2712         (load_from_service_thread_func): Ditto.
2713
2714         * tools/dbus-names-model.c (struct NamesModel): Hold
2715         DBusGProxyCall.
2716         (have_names_notify): Update prototype, use
2717         dbus_g_proxy_cancel_call.
2718         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2719
2720         * tools/dbus-monitor.c (filter_func): Update for print_message
2721         API change.
2722
2723         * test/glib/test-dbus-glib.c: Add more tests for async
2724         invocations.  Update many begin_call/end_call pairs to just use
2725         dbus_g_proxy_call.
2726
2727         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2728         allows us to dump print-introspect.c.
2729
2730         * tools/dbus-print-message.h (print_message): Add literal argument
2731         to print_message which is intended to allow printing arguments without
2732         metadata like "string=".
2733
2734         * tools/dbus-print-message.c (print_iter): Add literal argument.
2735         (print_message): Allow printing string messages literally.
2736
2737 2005-07-05  Colin Walters  <walters@verbum.org>
2738
2739         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2740         Remove value refcount leak, original patch from Jorn Baayen
2741         <jorn@openedhand.com>.  Also remove useless extra value in favor
2742         of prepending to value array directly.
2743
2744 2005-07-02  Colin Walters  <walters@verbum.org>
2745
2746         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2747
2748 2005-07-01  Colin Walters  <walters@verbum.org>
2749
2750         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2751         
2752         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2753         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2754         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2755         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2756
2757 2005-06-30  Colin Walters  <walters@verbum.org>
2758
2759         * test/glib/test-dbus-glib.c:
2760         * test/glib/test-service-glib.c:
2761         * test/glib/test-service-glib.xml: Update tests for new error
2762         setting bits, also add async tests (patch from Ross Burton).
2763
2764         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2765         DBUS_GLIB_THREADS_LIBS.
2766
2767         * glib/dbus-gproxy.c (get_name_owner)
2768         (dbus_g_pending_call_end_valist): Ditto.
2769
2770         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2771         domain (GQuark) to DBusGErrorInfo.  
2772         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2773         quark in error_metadata.  Take message interface as default
2774         error message interface.
2775         (gerror_to_dbus_error_message): Pass message interface.
2776         (dbus_set_g_error): Resurrected.
2777         (dbus_g_error_info_free): New function.
2778         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2779         of _peek to actually create the object class if it hasn't been
2780         created yet.
2781         (dbus_g_error_domain_register): New function.
2782
2783         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2784
2785         * glib/dbus-gparser.c (validate_signature): Ditto.
2786
2787         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2788         (dbus_g_error_domain_register): Prototype.
2789
2790         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2791         Update tests.
2792
2793 2005-06-29  Colin Walters  <walters@verbum.org>
2794
2795         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2796         DBUS_TYPE_G_OBJECT_PATH.
2797
2798         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2799         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2800         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2801         (dbus_g_object_path_get_g_type): New function.
2802         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2803         to DBUS_TYPE_G_OBJECT_PATH by default.
2804         (demarshal_proxy): Remove unused name variable.
2805         (demarshal_object_path, marshal_object_path): New functions.
2806         (demarshal_proxy_array, marshal_proxy_array): Delete.
2807         
2808         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2809         DBUS_TYPE_G_OBJECT_PATH to char *.
2810         (dbus_g_type_get_lookup_function): Map builtin
2811         DBUS_TYPE_G_OBJECT_PATH.
2812
2813         * test/glib/test-dbus-glib.c
2814         * test/glib/test-service-glib.c (my_object_objpath): 
2815         Adapt tests to new object path marshalling.
2816
2817 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2818
2819         * configure.in: force check for Python >= 2.4
2820
2821 2005-06-29  Colin Walters  <walters@verbum.org>
2822         
2823         Patch from Ross Burton <ross@openedhand.com>
2824         
2825         * glib/dbus-gobject.c (invoke_object_method): Unset object
2826         value in all cases, not only in async case.
2827
2828 2005-06-29  Colin Walters  <walters@verbum.org>
2829
2830         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2831         name_call for keeping track of any outgoing GetNameOwner call.
2832         Also add for_owner and associated.
2833         (struct _DBusGProxyManager): Add owner_names, which is hash table
2834         that maps a base name to a list of names it owns (that we're
2835         interested in).  Add pending_nameowner_calls which is a list of
2836         all outstanding GetNameOwner; avoids us having to iterate over
2837         every proxy.  Add unassociated_proxies which keeps track of name
2838         proxies with no associated name owner.
2839         (dbus_g_proxy_manager_unref): Destroy owner_names.
2840         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2841         name refcounts.
2842         (find_name_in_info, name_owner_foreach)
2843         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2844         (dbus_g_proxy_manager_monitor_name_owner)
2845         (dbus_g_proxy_manager_unmonitor_name_owner)
2846         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2847         New functions; they manipulate the owner_names mapping.
2848         (got_name_owner_cb): New function.
2849         (get_name_owner): New function, extracted from
2850         dbus_g_proxy_new_for_name_owner.
2851         (dbus_g_proxy_manager_register): For now we need to keep track of
2852         all NameOwnerChanged.  Also if the proxy is for a name, if we
2853         don't already know the name owner, queue a new GetNameOwner
2854         request and add it to our list of unassociated proxies.  Otherwise
2855         inc the refcount.
2856         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2857         cancel any pending GetNameOwner call, etc.
2858         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2859         the owner_names mapping to look up the current names for the
2860         signal source, and dispatch to any proxies for that name.
2861         (dbus_g_proxy_new): Initialize new members.
2862         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2863         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2864         (dbus_g_pending_call_end_valist): New function, extracted from
2865         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2866         but want to use the GLib infrastructure.  Also note how many
2867         arguments in reply were over.
2868         (dbus_g_pending_call_end): New function, just call
2869         dbus_g_pending_call_end_valist.
2870         (dbus_g_proxy_end_call_internal): Just call
2871         dbus_g_pending_call_end_valist.
2872
2873         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2874         of builtin marshaller for STRING_STRING_STRING.
2875
2876         * test/glib/test-dbus-glib.c: 
2877         * test/glib/test-service-glib.c:
2878         * test/glib/test-service-glib.xml:
2879         Extend tests to cover name proxies, destruction of owner proxies,
2880         etc.
2881         
2882         * glib/examples/example-signal-recipient.c
2883         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2884         
2885         * tools/dbus-send.c (main): Print D-BUS error name in addition
2886         to message.
2887
2888 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2889
2890         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2891         cmessage_function_handler): Patch from 
2892         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2893         by using the Py_GILState_Ensure/Release to synchronize with the
2894         python runtime.
2895         
2896 2005-06-28  Ray Strode  <rstrode@redhat.com>
2897
2898         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2899         babysitter helper process on last unref, bug #2813.
2900
2901 2005-06-27  Colin Walters  <walters@verbum.org>
2902
2903         * test/glib/test-dbus-glib.c: 
2904         * test/glib/test-service-glib.c:
2905         * test/glib/test-service-glib.xml:
2906         Test hash table signal emitting.
2907
2908         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2909         types to their fundamental basis types, since this is what
2910         marshallers operate on.  Also add an entry for VOID__BOXED.
2911         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2912
2913 2005-06-26  Havoc Pennington  <hp@redhat.com>
2914
2915         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2916         from Don Park
2917
2918 2005-06-26  Colin Walters  <walters@verbum.org>
2919
2920         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2921         (dbus_g_error_set): New public function from its ashes; used by
2922         both service-side method implementation and GLib bindings
2923         internals.
2924         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2925         (_dbus_glib_test): Add some tests.
2926
2927         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2928
2929         * test/glib/test-service-glib.c (my_object_throw_error): Use
2930         dbus_g_error_set.
2931
2932         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2933         errors thrown by dbus_g_error_set.
2934
2935         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2936
2937         * glib/dbus-gparser.c (validate_signature): Ditto.
2938
2939         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2940         (dbus_g_proxy_end_call_internal): Ditto.
2941
2942         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2943         converts DBUS_ERROR_x to DBUS_GERROR_x.
2944         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2945
2946         * doc/TODO: Remove error TODO.
2947
2948         * doc/dbus-tutorial.xml: Update with documentation about error
2949         handling.
2950
2951         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2952         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2953         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
2954
2955 2005-06-22  Colin Walters  <walters@verbum.org>
2956         
2957         Patch from Ross Burton <ross@openedhand.com>
2958
2959         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2960
2961 2005-06-20  Colin Walters  <walters@verbum.org>
2962
2963         * configure.in: Add glib/examples.
2964
2965         * glib/Makefile.am: Add examples/
2966
2967         * glib/examples/.cvsignore
2968         * glib/examples/Makefile.am
2969         * glib/examples/example-client.c
2970         * glib/examples/example-service.c
2971         * glib/examples/example-service.xml
2972         * glib/examples/example-signal-emitter.c
2973         * glib/examples/example-signal-emitter.xml
2974         * glib/examples/example-signal-recipient.c:
2975         New files; GLib binding examples, ported from
2976         python/examples.
2977
2978 2005-06-20  Colin Walters  <walters@verbum.org>
2979
2980         * dbus/dbus-glib.h: 
2981         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2982         dbus_g_proxy_call.
2983
2984         * glib/dbus-binding-tool-glib.c: 
2985         * doc/dbus-tutorial.xml: 
2986         * test/glib/test-dbus-glib.c: Update for rename.
2987         
2988 2005-06-20  Colin Walters  <walters@verbum.org>
2989
2990         Patch suggested by Ross Burton <ross@openedhand.com>
2991
2992         * glib/dbus-gobject.c (export_signals): Free signal name.
2993         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2994         memory leak.  Add a bit of documentation.
2995         (dbus_g_method_return_error): Free context, and note we do
2996         so.
2997
2998 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
2999
3000         * dbus/dbus-glib.h:
3001         * glib/dbus-gobject.c:
3002         * glib/dbus-gproxy.c:
3003         * glib/dbus-gvalue.c: Predeclare structs as 
3004         typedef struct _Something Something instead of 
3005         typedef struct Something Something, so we can 
3006         redeclare the prototypes. Other GNOME libraries 
3007         do this already.
3008
3009 2005-06-17  Colin Walters  <walters@verbum.org>
3010
3011         * tools/dbus-names-model.c (have_names_notify): Fix call
3012         to dbus_g_proxy_end_call.
3013         
3014 2005-06-17  Colin Walters  <walters@verbum.org>
3015
3016         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3017         spew warnings if we get malformed remote signals.
3018
3019         * glib/dbus-gobject.c (propsig_iterate): New function.
3020         (lookup_object_info): New function, extracted from
3021         lookup_object_and_method.
3022         (introspect_properties, introspect_signals): Delete; these
3023         are merged into write_interface.
3024         (write_interface): Write out signals and properties here;
3025         dump the org.gtk.object stuff and use the interface given
3026         in the introspection data blob.  Also fix up property XML.
3027         (lookup_values): New function.
3028         (introspect_interfaces): Gather a mapping from interface to a
3029         list of its methods, signals, and properties, then write out
3030         each interface.
3031         (lookup_object_and_method): Use lookup_object_info.
3032         (struct DBusGSignalClosure): Add interface.
3033         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3034         we can just use the constant data.
3035         (dbus_g_signal_closure_finalize): Don't free signal name.
3036         (signal_emitter_marshaller): Use interface from signal closure.
3037         (export_signals): Only export signals mentioned in introspection
3038         blob.
3039         (dbus_g_connection_register_g_object): Warn if we have no
3040         introspection data for an object.
3041         (funcsig_equal): Remove unused variable.
3042         (dbus_g_object_register_marshaller): Take varargs instead of
3043         list.
3044         (dbus_g_object_register_marshaller_array): New function,
3045         extracted from old dbus_g_object_register_marshaller.
3046
3047         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3048         signals and property data.
3049         (write_quoted_string): New function, extracted from generate_glue.
3050         (generate_glue): Write signals and properties to introspection
3051         blob.
3052
3053         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3054         exported_signals and exported_properties.
3055         (dbus_g_object_register_marshaller): Update prototype.
3056         (dbus_g_object_register_marshaller_array): Prototype.
3057         
3058         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3059
3060         * test/glib/test-service-glib.c: Add new test signals and method
3061         to emit them.
3062
3063         * test/glib/test-service-glib.xml: Add some test signals.
3064
3065         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3066         and my-object-marshal.h
3067         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3068         my-object-marshal.c.
3069         (my-object-marshal.c, my-object-marshal.h): Implement.
3070
3071         * test/glib/.cvsignore: Update.
3072
3073         * doc/TODO: Remove two GLib TODO items fixed by this
3074         patch.
3075
3076 2005-06-16  Colin Walters  <walters@verbum.org>
3077
3078         * doc/TODO: Update for GLib bindings.
3079         
3080 2005-06-16  Colin Walters  <walters@verbum.org>
3081
3082         * glib/dbus-binding-tool-glib.c:
3083         * glib/dbus-gobject.c:
3084         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3085         from Ross Burton, for his GLib bindings work.
3086
3087 2005-06-16  Colin Walters  <walters@verbum.org>
3088
3089         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3090         to iterate instead of walking to G_TYPE_INVALID.
3091
3092         Patch based on a patch from Ryan Gammon.
3093
3094 2005-06-16  Colin Walters  <walters@verbum.org>
3095
3096         * bus/bus.c (bus_context_new): Set parser to NULL
3097         after we unref it (Patch from Chris Boscolo, #2174).
3098         
3099 2005-06-16  Colin Walters  <walters@verbum.org>
3100
3101         * python/dbus_bindings.pyx.in: Import size_t,
3102         __int64_t, __uint64_t, and __signed.
3103
3104         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3105         Define cmsg struct, output it.
3106         (_dbus_read_credentials_unix_socket):
3107         Use cmsg struct.
3108         
3109         Patch from Joe Markus Clarke for FreeBSD support.
3110         
3111 2005-06-16  Colin Walters  <walters@verbum.org>
3112
3113         * tools/dbus-send.c (append_array): Use strtok.
3114         (append_dict): New function.
3115         (type_from_name): New function, extracted from main.
3116         (main): Handle sending dicts.
3117
3118         * tools/dbus-print-message.c (print_iter): Print dict
3119         entries.
3120         
3121 2005-06-16  Colin Walters  <walters@verbum.org>
3122
3123         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3124         values as the empty string (#2948).
3125         
3126 2005-06-16  Colin Walters  <walters@verbum.org>
3127
3128         * dbus/Makefile.am:
3129         * mono/doc/Makefile.am:
3130         * test/glib/Makefile.am:
3131
3132         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3133
3134 2005-06-16  Colin Walters  <walters@verbum.org>
3135
3136         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3137         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3138
3139         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3140         Increment pointer after swapping fixed array.  Add assertion
3141         for array length.
3142                 
3143 2005-06-15  Colin Walters  <walters@verbum.org>
3144
3145         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3146         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3147         
3148 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3149
3150         * NEWS: Update to 0.34
3151
3152 2005-06-15  David Zeuthen  <davidz@redhat.com>
3153
3154         * configure.in (LT_CURRENT): Revert back to 1 as the library
3155         hasn't changed and we've certainly not committed to protocol
3156         stability yet.  All this does is to break ABI. See commit note
3157         from hp@redhat.com 2005-05-05 for details.
3158         
3159 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3160
3161         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3162         (_dbus_connection_run_builtin_filters): New method
3163         (dbus_connection_dispatch): Run the builtin filters which in turn
3164         runs the peer filter which handles Ping messages.
3165
3166         * doc/TODO: 
3167          - Ping isn't handled: This patch fixes it
3168          
3169          - Add a test case for the Ping message: added TODO item
3170
3171 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3172
3173         * dbus/dbus-message.c:
3174         (dbus_message_has_path): New method
3175         (dbus_message_has_interface): New method
3176         (dbus_message_has_member): New method
3177
3178         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3179         New method
3180
3181         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3182         the keyring directory is private to the user
3183
3184         * doc/TODO:
3185          - The convenience functions in dbus-bus.h should perhaps have
3186          the signatures that they would have if they were autogenerated
3187          stubs. e.g. the acquire service function. We should also evaluate
3188          which of these functions to include, in light of the fact that
3189          GLib/Qt native stubs will probably also exist.: Punted
3190
3191          - add dbus_message_has_path(), maybe has_member/interface:
3192          fixed in this patch
3193
3194          - in dbus-keyring.c, enforce that the keyring dir is not
3195          world readable/writable: Fixed in this patch
3196
3197 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3198
3199         * dbus/dbus-marshal-validate.h: Added a new validation
3200         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3201         out of memory errors when validating signitures
3202
3203         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3204         in places where we previously used DBUS_VALID and a FALSE return 
3205         value to indicate OOM
3206         
3207         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3208         Use a stack to track the number of elements inside containers.  The 
3209         stack values are then used to validate that dict entries have only two
3210         elements within them.
3211         (validate_body_helper): check the reason for failure when validating
3212         varients
3213         
3214         * dbus/dbus-message.c (load_message): use 
3215         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3216         DBUS_VALID and a FALSE return value to indicate OOM
3217
3218         * doc/TODO: remove "- validate dict entry number of fields" as this
3219         patch fixes it
3220
3221 2005-06-14  David Zeuthen  <davidz@redhat.com>
3222
3223         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3224         watches (if applicable) and add new watches
3225
3226         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3227         (main): Setup SIGIO signal handler if using D_NOTIFY
3228
3229         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3230
3231         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3232         (merge_included): Also merge conf_dirs list
3233         (bus_config_parser_unref): Clear conf_dirs list
3234         (include_dir): Add directory to conf_dirs list
3235         (bus_config_parser_get_conf_dirs): New function
3236
3237         * bus/dir-watch.[ch]: New files
3238
3239         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3240
3241         * configure.in: Add checks for D_NOTIFY on Linux
3242
3243 2005-06-14  Colin Walters  <walters@verbum.org>
3244
3245         * glib/dbus-binding-tool-glib.c:
3246         * glib/dbus-gobject.c:
3247         * glib/dbus-gvalue.c: Fix indentation and brace style.
3248         
3249 2005-06-14  Ross Burton <ross@openedhand.com>.
3250
3251         * glib/dbus-glib.h: Make DBusGMethodInvocation
3252         a private structure.  Rearrange prototypes a bit.
3253         
3254         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3255         documentation for first_arg_type.
3256         
3257         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3258         here, add documentation.  Move dbus_g_method_return
3259         and dbus_g_method_return_error into public API
3260         section.
3261
3262 2005-06-14  Colin Walters  <walters@verbum.org>
3263
3264         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3265         Add missing return statements, noticed by Ross Burton.
3266         
3267 2005-06-13  Ross Burton <ross@openedhand.com>.
3268
3269         * glib/dbus-gobject.c: Handle errors on message
3270         demarshalling by sending error message back.
3271         * glib/dbus-gvalue.c: Initialize return variables.
3272
3273 2005-06-13  Colin Walters  <walters@verbum.org>
3274
3275         * glib/Makefile.am: Fix thinko in last patch.
3276
3277 2005-06-13  Colin Walters  <walters@verbum.org>
3278
3279         * glib/Makefile.am: Move dbus-gtype-specialized.c
3280         and dbus-gtype-specialized.h into a _HEADERS variable,
3281         install them.
3282
3283 2005-06-12  Colin Walters  <walters@verbum.org>
3284
3285         Async signals and various bugfixes and testing by
3286         Ross Burton <ross@openedhand.com>.
3287
3288         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3289         (dbus_gvalue_genmarshal_name_from_type)
3290         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3291         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3292         (dbus_g_value_types_init, dbus_gtype_from_signature)
3293         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3294         (dbus_gtypes_from_arg_signature): New function prototypes.
3295         (dbus_gvalue_demarshal): Take context and error arguments.
3296         (dbus_gvalue_demarshal_variant): New function.
3297         (dbus_gvalue_demarshal_message): New function.
3298         (dbus_gvalue_store): Delete.
3299
3300         * glib/dbus-gvalue.c:
3301
3302         File has been almost entirely rewritten; now we special-case
3303         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3304         hash tables correctly, etc.  Full support for recursive values
3305         is not yet complete.
3306
3307         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3308         argument of signal to G_TYPE_POINTER since we now pass a
3309         structure.
3310         (lookup_g_marshaller): Delete in favor of
3311         _dbus_gobject_lookup_marshaller.
3312         (marshal_dbus_message_to_g_marshaller): Use
3313         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3314         to handle remote signal callbacks.
3315         (dbus_g_proxy_new_from_proxy): New function; creates a new
3316         DBusGProxy by copying an existing one.
3317         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3318         (dbus_g_proxy_get_path): New functions.
3319         (dbus_g_proxy_marshal_args_to_message): New function;
3320         factored out of existing code.
3321         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3322         from a varargs array.
3323         (dbus_g_proxy_begin_call_internal): New function.
3324         (dbus_g_proxy_end_call_internal): New function.
3325         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3326         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3327         after collecting args into value array.
3328         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3329         invoke dbus_g_proxy_end_call_internal.
3330         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3331         end_call_internal.
3332         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3333         types.
3334         (array_free_all): New function.
3335         (dbus_g_proxy_add_signal): Take GTypes.
3336
3337         * glib/dbus-gobject.h:
3338         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3339         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3340         Prototype.
3341
3342         * glib/dbus-gobject.c: Add a global marshal_table hash which
3343         stores mappings from type signatures to marshallers.  Change lots
3344         of invocations of dbus_gtype_to_dbus_type to
3345         dbus_gtype_to_signature.
3346         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3347         (introspect_signals): Fix test for query.return_type.
3348         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3349         (invoke_object_method): Many changes.  Handle asynchronous
3350         invocations.  Convert arguments with
3351         dbus_gvalue_demarshal_message.  Handle errors.  Use
3352         DBusSignatureIter instead of strlen on args. Handle all arguments
3353         generically.  Special-case variants.
3354         (dbus_g_method_return, dbus_g_method_return_error): New function.
3355         (DBusGSignalClosure): New structure, closes over signal
3356         information.
3357         (dbus_g_signal_closure_new): New function.
3358         (dbus_g_signal_closure_finalize): New function.
3359         (signal_emitter_marshaller): New function; is special marshaller
3360         which emits signals on bus.
3361         (export_signals): New function; introspects object signals and
3362         connects to them.
3363         (dbus_g_object_type_install_info): Take GType instead of
3364         GObjectClass.
3365         (dbus_g_connection_register_g_object): Invoke export_signals.
3366         (dbus_g_connection_lookup_g_object): New function.
3367         (DBusGFuncSignature) New structure; used for mapping type
3368         signatures to marshallers.
3369         (funcsig_hash): New function; hashes DBusGFuncSignature.
3370         (funcsig_equal): New function; compares DBusGFuncSignature.
3371         (_dbus_gobject_lookup_marshaller): New function.
3372         (dbus_g_object_register_marshaller): New function; used to
3373         register a marshaller at runtime for a particular signature.
3374
3375         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3376
3377         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3378         which notes a server method implementation should be
3379         asynchronous.
3380
3381         * glib/dbus-binding-tool-glib.c
3382         (dbus_binding_tool_output_glib_server): Call
3383         dbus_g_value_types_init.
3384         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3385         variants specially.
3386         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3387         of a lookup function.
3388         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3389         (write_untyped_out_args): New method; write output arguments.
3390         (write_formal_declarations_for_direction): Function for
3391         writing prototypes.
3392         (write_formal_parameters_for_direction): Function for
3393         writing implementations.
3394         (write_typed_args_for_direction): Function for writing
3395         arguments prefixed with GTypes.
3396         (write_async_method_client): Write out async version
3397         of method.
3398
3399         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3400         (dbus_g_type_get_marshal_name): Move mapping from GType
3401         to marshal name into here.
3402         (dbus_g_type_get_c_name): Move into here.
3403         (compute_marshaller): Convert signature to type with
3404         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3405         (compute_marshaller_name): Ditto.
3406         (compute_marshaller): Handle async signal annotations.
3407         (gather_marshallers): Return if we don't have a known
3408         prefix.
3409         (generate_glue): Collect introspection blob here, and
3410         write all of the blob at the end.  This allows an object
3411         with multiple interfaces to work.
3412         Mark async methods in introspection blob.
3413
3414         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3415         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3416         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3417
3418         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3419         avoids people accidentally using DBUS_TYPE_* which should
3420         not be necessary anymore.
3421         Do include dbus-gtype-specialized.h, which are utilities
3422         for GLib container types.
3423         Add various #defines for types such as
3424         DBUS_TYPE_G_BOOLEAN_ARRAY.
3425         (DBusGValueIterator, DBusGValue): Define, not fully used
3426         yet.
3427         (dbus_g_value_get_g_type): Type for recursive value.
3428         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3429         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3430         (dbus_g_value_free): Prototypes.
3431         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3432         (dbus_g_proxy_set_interface): Prototype.
3433         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3434         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3435         types.
3436         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3437         Accessors.
3438         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3439         doing async invocations.
3440         (dbus_g_method_return, dbus_g_method_return_error):
3441         Prototypes.
3442         * doc/dbus-tutorial.xml: Update GLib section.
3443         
3444         * tools/dbus-viewer.c (load_child_nodes): Update
3445         for new invocation type of dbus_g_proxy_end_call.
3446         (load_from_service_thread_func): Ditto.
3447
3448         * tools/print-introspect.c (main): Ditto.
3449
3450         * tools/dbus-names-model.c (have_names_notify)
3451         (names_model_reload, names_model_set_connection)
3452         Use GTypes.
3453
3454         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3455         needed since Python bindings use GLib bindings.
3456
3457         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3458         Add --prefix argument.
3459
3460         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3461         unneeded --ignore-unsupported arg.
3462         
3463         * test/glib/test-service-glib.c: 
3464         * test/glib/test-service-glib.xml:
3465         * test/glib/test-dbus-glib.c: Add many more tests.
3466
3467 2005-06-06  David Zeuthen  <davidz@redhat.com>
3468
3469         * doc/TODO: Add item about need to remove deprecated functions.
3470
3471         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3472
3473         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3474         to repair the ABI which was broken with the last commit.
3475
3476 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3477
3478         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3479         (dbus_connection_disconnect): renamed to dbus_connection_close 
3480         for API symmetry with dbus_connection_open
3481         (_dbus_connection_open_internal): 
3482         s/dbus_connection_disconnect/dbus_connection_close
3483
3484         * dbus/dbus-bus.c (dbus_bus_get):
3485         s/dbus_connection_disconnect/dbus_connection_close
3486
3487         * bus/connection.c (bus_connections_unref, 
3488         bus_connections_setup_connection, bus_connections_expire_incomplete):
3489         s/dbus_connection_disconnect/dbus_connection_close
3490
3491         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3492         kill_client_connection_unchecked, check_hello_connection):
3493         s/dbus_connection_disconnect/dbus_connection_close
3494
3495         * bus/bus.c (new_connection_callback):
3496         s/dbus_connection_disconnect/dbus_connection_close
3497
3498         * tools/dbus-send.c (main):
3499         s/dbus_connection_disconnect/dbus_connection_close
3500
3501         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3502         s/dbus_connection_disconnect/dbus_connection_close
3503         
3504         * test/test-service.c (path_message_func, filter_func):
3505         s/dbus_connection_disconnect/dbus_connection_close
3506         
3507         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3508         
3509 2005-05-25  Colin Walters  <walters@verbum.org>
3510
3511         * dbus/dbus-protocol.h: Move various bus service #defines such
3512           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3513           dbus/dbus-shared.h.
3514         * dbus/dbus-shared.h: Various defines moved here.
3515         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3516
3517 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3518
3519         * python/__init__.py: Python bindings deserve a minor version
3520         update.  Upped to (0, 40, 2)
3521
3522 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3523
3524         * python/decorators.py: add explicitly_pass_message decorator
3525         for passing in the dbus message as keyword for edge case signal
3526         handling
3527
3528         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3529         to conform with what dbus expects for match rules
3530         (SignalMatchRule.execute): add the dbus message as a keyword
3531         if the signal handler has requested it
3532
3533         * python/examples/example/signal-recipient.py: added some more
3534         examples on how to hook up to signals
3535
3536 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3537
3538         * python/decorators.py: import dbus_bindings
3539
3540         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3541         SignalMatchNode): new classes that implement wildcard signal
3542         callback matching using a tree lookup. Heavily modified from a
3543         patch sent by Celso Pinto (fd.o bug #3241)
3544
3545         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3546         use new match classes to handle signals.
3547
3548 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3549         
3550         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3551
3552 2005-05-18  Havoc Pennington  <hp@redhat.com>
3553
3554         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3555         gettext. Not really worth requiring yet perhaps, but any
3556         production quality 1.0 would require it so we should go ahead and
3557         get things set up. We do have a couple token calls to
3558         bindtextdomain in the code already.
3559
3560 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3561
3562         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3563         when using recursive g_main_loops
3564
3565         * python/_dbus.py (class Bus): add the ProxyObjectClass
3566         alias for ProxyObject to make it easier for the Twisted 
3567         networking framework to integrate dbus.
3568
3569         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3570         alias for ProxyMethod to make it easier for the Twisted 
3571         networking framework to integrate dbus. 
3572
3573 2005-05-11  Ross Burton  <ross@openedhand.com>
3574
3575         * glib/dbus-glib-tool.c: Add --prefix argument.
3576         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3577         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3578         Add prefix argument.
3579         (generate_glue): Pass prefix argument down.
3580         (dbus_binding_tool_output_glib_server): Pass prefix to
3581         glib-genmarshal.
3582         
3583 2005-05-11  Colin Walters  <walters@verbum.org>
3584
3585         * tools/dbus-send.c (append_array): New function.
3586         (append_arg): Broken out from main.
3587         (main): Add cheesy hack to send arrays and variants.
3588         (usage): Update.
3589         * tools/dbus-print-message.c (print_iter): Broken out
3590         from main.
3591
3592 2005-05-11  Colin Walters  <walters@verbum.org>
3593
3594         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3595         New function, returns signature string for signature iter.
3596         * dbus/dbus-signature.h: Prototype it.
3597         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3598         New function, returns signature string for message iter.
3599         (dbus_message_iter_get_array_len): New function, returns
3600         length of array.
3601         (dbus_message_iter_get_fixed_array): Fix assertion; this
3602         function should be used when the iter is pointing to the
3603         contents of an array
3604         * dbus/dbus-message.h: Prototypes.
3605         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3606         New function; returns length of an array.
3607         * dbus/dbus-marshal-recursive.h: Prototype it.
3608         
3609 2005-05-11  Colin Walters  <walters@verbum.org>
3610
3611         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3612         compilation error.
3613         
3614 2005-05-08  Havoc Pennington  <hp@redhat.com>
3615
3616         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3617         daemon's pid, not the parent's pid, to the file descriptor.
3618         Reported by Taj Morton.
3619
3620 2005-05-05  Havoc Pennington  <hp@redhat.com>
3621
3622         * configure.in (LT_*): add notes on how the libtool versioning
3623         works to save thinking. Increment soname to indicate protocol
3624         breakage (though really the library interface hasn't changed I
3625         guess)
3626
3627         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3628         verify the GUID received from server matches what we were
3629         expecting, if we had an expectation
3630
3631         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3632         (_dbus_auth_get_guid_from_server): new function
3633         (send_begin): parse the OK args
3634
3635         * doc/dbus-specification.xml: add GUID to the auth protocol
3636
3637 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3638
3639         * Fix my name in previous changelog ;)
3640
3641         * python/proxies.py (ProxyObject.__getattr__): add further patch
3642         from Anthony Baxter to throw an AttributeError when python 
3643         __special__ functions are called instead of marshling them over 
3644         the bus (Bug#1685 comment 3).
3645
3646 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3647
3648         * python/Makefile.am: changed to use pyexecdir for the binding
3649         shared libraries (Bug#2494)
3650
3651         * python/exceptions.py: bring exceptions over from the bindings
3652         so they can be used in applications (Bug#2036)
3653         Make all exceptions derive from DBusException
3654
3655         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3656         of classes so that print obj doesn't throw an exception (Bug #1685)
3657
3658 2005-05-03  Ross Burton  <ross@openedhand.com>
3659
3660         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3661         Return if we get an error during registration.  Set up a
3662         weak reference on object to unregister if object is destroyed.
3663         (unregister_gobject): New function.
3664         
3665 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3666
3667         * python/dbus_bindings.pyx.in: 
3668         - added new type classes for hinting to the marashaler what type 
3669         to send over the wire
3670         - added int16 and uint16 marshalers
3671         - Fixed a bug in the type constants that caused int32 to go out
3672         as uint16 over the wire
3673         * python/dbus.py: split up into different files and renamed _dbus.py
3674         * python/__init__.py, python/_util.py, python/decorators.py, 
3675         python/exceptions.py, python/proxies.py, python/services.py,
3676         python/types.py: new files split off from dbus.py
3677         * python/Makefile.am: Add new files, remove dbus.py and 
3678         install all python files to <python module dir>/dbus
3679         * python/examples/*: Added #!/usr/bin/env python to the top of
3680         every example.  Patch provided by Tatavarty Kalyan
3681
3682 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3683
3684         * NEWS: Update to 0.33
3685
3686 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3687
3688         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3689         method for doing async calls
3690         (_pending_call_notification): New C function for handling pendning call
3691         callbacks
3692         (set_notify): New method for setting pending call notification
3693         
3694         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3695         Async capabilities added to remote method calls
3696         (Sender): class removed
3697         (RemoteService): class removed
3698         (ObjectTree): class removed for now
3699         (RemoteObject): Renamed to ProxyObject
3700         (RemoteMethod): Renamed to ProxyMethod
3701         (method): Decorator added for decorating python methods as dbus methods
3702         (signal): Decorator added for decorating python methods as signal emitters
3703         (ObjectType): Metaclass added for generating introspection data and the
3704         method callback vtable
3705         (Interface): Wrapper class added to wrap objects in a dbus interface
3706         (Object): Uses ObjectType as its metaclass and exports Introspect
3707         of the org.freedesktop.DBus.Introspectable interface
3708         (ValidationException, UnknownMethodException): new exceptions
3709
3710         * python/examples/*: Modified to fit with the new bindings
3711
3712 2005-04-23  Havoc Pennington  <hp@redhat.com>
3713
3714         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3715         reported by Tony Houghton
3716
3717         * test/test-service.c (main): test
3718         dbus_connection_get_object_path_data()
3719
3720         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3721         the exact_match
3722         (_dbus_object_tree_get_user_data_unlocked): new function used by
3723         dbus_connection_get_object_path_data()
3724         (do_register): add assertion test for get_user_data_unlocked
3725         (object_tree_test_iteration): more tests
3726
3727         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3728         new function from Dan Reed to let you get the user data from 
3729         dbus_connection_register_object_path()
3730
3731 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3732
3733         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3734         in numerous places that did not account for the NULL terminator
3735         (signature_from_seed): changed the manual string copy loop to 
3736         just use strcpy instead
3737         make check should now pass
3738
3739 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3740
3741         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3742         so that it allows messages that are not signals to pass in 
3743         NULL as the interface.
3744
3745 2005-04-18  David Zeuthen  <davidz@redhat.com>
3746
3747         * glib/dbus-gmain.c (io_handler_destroy_source): 
3748         (timeout_handler_destroy_source, connection_setup_free): 
3749         Also unref the source to avoid memory leaks.
3750
3751 2005-04-13  David Zeuthen  <davidz@redhat.com>
3752
3753         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3754         more reasonable, yet still totally arbitrary, value :-). 
3755
3756 2005-04-13  David Zeuthen  <davidz@redhat.com>
3757
3758         * doc/TODO: Added an "important for 1.0" item about selinux
3759         allow/deny messages
3760
3761 2005-04-13  David Zeuthen  <davidz@redhat.com>
3762
3763         * bus/selinux.c: Add c-file-style to top of file
3764         (log_audit_callback): Don't free the data here anymore
3765         (bus_selinux_check): Don't take spid and tpid since appending
3766         that to auxdata may OOM.
3767         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3768         to the caller if we are OOM by taking an error object.
3769         (bus_selinux_allows_send): -do-
3770
3771         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3772         and bus_selinux_allows_send
3773
3774         * bus/bus.c (bus_context_check_security_policy): Pass error and
3775         pass on OOM thrown by bus_selinux_allows_send()
3776
3777         * bus/services.c (bus_registry_acquire_service): Pass error and
3778         pass on OOM thrown by bus_selinux_allows_acquire_service()
3779
3780 2005-04-13  Havoc Pennington  <hp@redhat.com>
3781
3782         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3783         message at a time to avoid monopolizing the main loop, bug 
3784         #2953 from Benjamin Otte
3785
3786 2005-04-09  Havoc Pennington  <hp@redhat.com>
3787
3788         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3789         possible overlap, fix from Daniel Reed
3790         (fixup_alignment): fix signedness warnings
3791         (_dbus_string_append_unichar): ditto
3792
3793 2005-04-09  Havoc Pennington  <hp@redhat.com>
3794
3795         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3796
3797         * glib/dbus-glib-tool.c (main): fix warning
3798
3799         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3800
3801         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3802         add a new function that can be used in simple applications that
3803         don't have a main loop and are willing to block
3804
3805 2005-04-05  David Zeuthen  <davidz@redhat.com>
3806
3807         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3808
3809         * glib/dbus-gmain.c:
3810         (io_handler_destroy_source): Remove from list of IO handlers
3811         of the ConnectionSetup object
3812         (timeout_handler_destroy_source): -do- for timeout handlers
3813         (io_handler_source_finalized): Don't remove from list since
3814         we now do that in io_handler_destroy_source(). Renamed from
3815         io_handler_source_destroyed
3816         (timeout_handler_source_destroyed): -do- for timeout handlers
3817         (connection_setup_free): It is now safe to iterate over all
3818         IO and timeout handlers as the _destroy_source removes them
3819         from the list synchronously
3820
3821 2005-03-30  Havoc Pennington  <hp@redhat.com>
3822
3823         * configure.in: change check to gtk 2.4
3824
3825         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3826         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3827         to 2.4
3828
3829 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3830
3831         * News: Update 0.32
3832
3833         * HACKING: Fixed realease instructions.  configure.in should be updated to
3834           the next release by the person who made the last release.
3835
3836 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3837
3838         * python/lvalue_cast_post_process.py - removed.  Patch has been
3839           submitted to Pyrex maintainers that fixes gcc4.0 errors
3840
3841         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3842
3843 2005-03-24  Daniel Reed  <n@ml.org>
3844
3845         * tools/Makefile.am: Make print-introspect and
3846         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3847
3848 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3849
3850         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3851
3852         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3853           had in Red Hat packages for a while but for some reason never 
3854           got merged upstream
3855           (_dbus_is_a_number): New checks if a string
3856           can be converted to a number and does the conversion if it can
3857           (_dbus_user_database_lookup): Add check to see if the given username
3858           is a udi.  This allows udi's to be used instead of usernames in the
3859           config file.
3860           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3861           is a gdi.  This allows gdi's to be used instead of groupnames in the
3862           config file.
3863
3864 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3865
3866         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3867           code so that it compiles with gcc4.0
3868
3869         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3870           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3871           results back to dbus_binding.c
3872
3873 2005-03-20  Colin Walters  <walters@verbum.org>
3874
3875         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3876
3877         * configure.in: Require GTK+ 2.6.
3878         
3879 2005-03-20  Colin Walters  <walters@verbum.org>
3880
3881         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3882
3883 2005-03-17  Tom Parker  <palfrey@tevp.net>
3884
3885         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3886         print DBUS_UID_UNSET; instead print passed username.  Also
3887         be sure to actually use gid looked up in cache.
3888         
3889         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3890         for DBUS_GID_UNSET and groupname.
3891
3892 2005-03-17  Colin Walters  <walters@verbum.org>
3893
3894         * bus/print-introspect.c: Move to tools/.
3895         * bus/run-with-tmp-session-bus.sh: Ditto.
3896         
3897         * glib/Makefile.am (dbus-glib-bindings.h): Move
3898         generation to tools/Makefile.am.
3899
3900         * test/glib/run-test.sh: Update to handle move
3901         of run-with-tmp-session-bus.sh.
3902
3903         * test/glib/test-service-glib.c: Update to handle
3904         move of dbus-glib-bindings.h.
3905
3906         * tools/print-introspect.c: Moved here
3907         from bus/, and ported to GLib bindings.
3908
3909         * tools/run-with-tmp-session-bus.sh: Moved here
3910         from bus/.
3911
3912         * tools/Makefile.am: Generate dbus-glib-bindings.h
3913         and dbus-bus-introspect.xml here.
3914
3915         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3916         Update.
3917
3918 2005-03-17  Colin Walters  <walters@verbum.org>
3919
3920         * bus/driver.c (write_args_for_direction): Use
3921         _dbus_string_get_const_data to retrieve string;
3922         _dbus_string_get_const_data_len doesn't actually return
3923         a NULL-terminated substring.
3924
3925         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3926         (main): Change to use org_freedesktop_DBus_request_name
3927         instead of using g_proxy_begin_call/end_call.
3928
3929 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3930
3931         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3932         generating the finalizer.  Fixes from Ben Maurer.
3933
3934 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3935
3936         * mono/BusDriver.cs: Update method names: ListServices
3937         becomes ListNames; GetOwner becomes GetNameOwner.
3938
3939         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3940         onto the eval stack when removing the delegate.
3941
3942 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3943
3944         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3945         LT_CURRENT.  Set it to the autoconf variable.
3946                                                                                 
3947         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3948         classes that disconnects the signal handler delegate from the
3949         service object.  Fixes a big leak of proxy objects on the
3950         client side of things.  Patch from Ben Maurer
3951         <bmaurer@ximian.com>
3952
3953 2005-03-12  Colin Walters  <walters@verbum.org>
3954
3955         * bus/driver.c (write_args_for_direction): New function,
3956         parses a type signature into arguments and outputs to
3957         XML.
3958         (bus_driver_handle_introspect): Use it instead of
3959         hardcoding XML for certain signatures.
3960         
3961         * bus/Makefile.am (dbus-bus-introspect.xml): Add
3962         dependency on dbus-daemon.
3963
3964         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3965         argument, pass it to dbus_binding_tool_output_glib_client.
3966
3967         * glib/dbus-binding-tool-glib.c
3968         (generate_client_glue): Protect against multiple inclusion.
3969         (dbus_binding_tool_output_glib_client): Add
3970         G_BEGIN_DECLS/G_END_DECLS.
3971
3972         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3973         Change to just take iface prefix directly.
3974         (write_formal_parameters): Clarify error message.
3975         (check_supported_parameters): New function; checks to see type
3976         signatures of method parameters are supported.
3977         (generate_client_glue): Handle ignore_unsupported flag.
3978         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3979         parameter.
3980
3981         * glib/Makefile.am (dbus-glib-bindings.h): Pass
3982         --ignore-unsupported by default until glib bindings
3983         support arrays.
3984
3985 2005-03-11  Colin Walters  <walters@verbum.org>
3986
3987         * glib/Makefile.am: Generate dbus-glib-bindings.h and
3988         install it.
3989
3990         * bus/print-introspect.c: New file; prints introspection
3991         data for a given name and object path.
3992
3993         * bus/run-with-tmp-session-bus.sh: New file, refactored
3994         from test/glib/run-test.sh.  Creates a temporary session
3995         bus and runs another program.
3996
3997         * test/glib/run-test.sh: Refactor to invoke
3998         run-with-tmp-session-bus.sh.
3999
4000         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4001         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4002         macros instead of hardcoding.
4003
4004         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4005
4006 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4007
4008         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4009         this unref; it doesn't match up evenly in some codepaths.
4010         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4011         this evenly matches with the ref near the top of this function.
4012
4013 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4014
4015         * dbus/dbus-object-tree.c
4016         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4017         and we try to unregister a path that's not registered, still go
4018         through the process of unlocking and don't just return.
4019
4020 2005-03-09  Colin Walters  <walters@verbum.org>
4021
4022         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4023         to this are generated for client-side wrappers.  Invokes a
4024         D-BUS method and returns reply values.  
4025
4026         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4027         function; writes signature string for argument direction.
4028         (write_args_for_direction): Change to pass input values directly
4029         instead of via address, and fix indentation.
4030         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4031         make generated wrappers inlineable.
4032
4033         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4034         note about using dbus_type_is_fixed.
4035
4036         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4037         dbus/dbus-signature.c as dbus_type_is_fixed.
4038
4039         All callers updated.
4040
4041         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4042         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4043
4044         * dbus/dbus-signature.h: Prototype.
4045
4046         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4047         error printf code.
4048
4049         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4050         appropriate instead of just freeing it.
4051         (main): Free returned strings using g_free.
4052
4053         * test/glib/Makefile.am (test-service-glib-glue.h)
4054         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4055
4056         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4057         simply maps a simple D-BUS type to GType.
4058         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4059         GType.
4060         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4061         initialize the value with it.
4062         (dbus_gvalue_binding_type_from_type): Unused, delete.
4063         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4064         various types instead of unmarshalling to value data directly.
4065         Remove can_convert boolean.
4066         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4067         returning directly instead of using can_convert boolean.
4068         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4069         Stores a GValue in a pointer to a value of its corresponding C
4070         type.
4071
4072         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4073         add dbus_gvalue_store.
4074
4075 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4076
4077         Fix a bunch of lifecycle and memory management problems
4078         in the mono bindings.
4079
4080         * mono/Arguments.cs (Arguments): Implement IDisposable
4081
4082         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4083         strictly a static class.
4084
4085         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4086         delegates into this file.
4087         (Connection): Implement IDisposable.
4088         (Dispose): Disconnect the connection and set the raw connection
4089         pointer to IntPtr.Zero.
4090         (~Connection): Call Dispose().
4091         (RegisterObjectPath): Added.  Manages the registration of object
4092         paths so we can cleanly disconnect them at dispose/finalize time.
4093         (UnregisterObjectPath): Ditto.
4094         (set_RawConnection): Unregister all of the object paths when
4095         changing the underlying DBusConnection.  Add them back onto the
4096         new connection, if any.
4097
4098         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4099         more unmanaged resources anymore, so it's not necessary.  Move all
4100         the DBusObjectPathVTable stuff out of here.
4101         (Handler): Save references to our delegates so that they don't get
4102         finalized.  Call Connection.RegisterObjectPath() instead of
4103         dbus_connection_register_object_path() directly.
4104         (Message_Called): Dispose the message after we're finished with
4105         it.
4106
4107         * mono/Message.cs (Message): Implement IDisposable.
4108         (Dispose): Dispose the Arguments, and set the RawMessage to
4109         IntPtr.Zero.
4110         (SendWithReplyAndBlock): We own the ref to the reply that comes
4111         back from dbus_connection_send_with_reply_and_block() so add a
4112         comment about that and unref it after we've constructed a managed
4113         MethodReturn class around it.  Fixes a big, big leak.
4114
4115         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4116         method.
4117         (BuildSignalHandler): After we've sent the Signal message, dispose
4118         of it.
4119         (BuildMethod): Dispose of the method call and reply messages after
4120         we've sent the message and extracted the data we want from the
4121         reply.
4122
4123         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4124         anymore.
4125         (Service_FilterCalled): Dispose of the message after we're
4126         finished with it.
4127
4128 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4129
4130         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4131         After we attach our pending call to the connection, unref
4132         it.  Fixes a leak.
4133  
4134         * mono/Connection.cs (set_RawConnection): Disconnect our
4135         filter and match callbacks from the old connection and
4136         reconnect them to the new connection, if any.
4137
4138         * mono/DBusType/Array.cs: "Code" is a static member, so
4139         don't use "this" to refer to it.  Fix for stricter checking
4140         in Mono 1.1.4.
4141  
4142         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4143         object path that we pass into unmanaged code.
4144  
4145         * mono/DBusType/String.cs (Append): Don't leak the string
4146         that we pass into unmanged code.
4147
4148 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4149         * NEWS: Update for 0.31
4150
4151         * configure.in: Release 0.31
4152         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4153
4154         * qt/Makefile.am: fixed build
4155
4156         * dbus/Makefile.am: soname bump for libdbus
4157
4158         * glib/Makefile.am: soname bump for libdbus-glib
4159
4160 2005-03-05  Havoc Pennington  <hp@redhat.com>
4161
4162         * dbus/dbus-sysdeps.c:
4163         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4164         value
4165         (_dbus_generate_random_bytes_buffer): fix return value
4166
4167         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4168         checks actually work, from Tom Parker <fdo@tevp.net>
4169
4170 2005-03-01  Colin Walters  <walters@verbum.org>
4171
4172         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4173         functions copied from dbus-glib-tool.c.
4174         (main): Convert lots of error code to use them.
4175         Also add some testing for introspection bits.
4176
4177 2005-03-01  Colin Walters  <walters@verbum.org>
4178         
4179         * doc/TODO: Remove introspection signature TODO.
4180
4181 2005-02-27  Colin Walters  <walters@verbum.org>
4182
4183         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4184         Change return value to const char * instead of int so we can do
4185         full signatures.
4186         (struct PropertyInfo, struct ArgInfo): Store char *.
4187         (property_info_new, arg_info_new): Update parameters, strdup.
4188         (property_info_unref, arg_info_unref): Free.
4189
4190         * glib/dbus-gidl.h: Update prototypes.
4191
4192         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4193         (validate_signature): New function, just validates signature and
4194         sets GError.
4195         (parse_property, parse_arg): Invoke validate_signature.  Store
4196         signature instead of just type code.
4197
4198         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4199         function to return a primary type for a signature, dropping
4200         information about types in container types.
4201         (dbus_gvalue_genmarshal_name_from_type)
4202         (dbus_gvalue_binding_type_from_type)
4203         (dbus_gvalue_ctype_from_type): Update to take full signature
4204          instead of type code.
4205         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4206
4207         * glib/dbus-gvalue.h: Update prototypes for above.
4208
4209         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4210         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4211         (introspect_properties, introspect_signals, write_interface):
4212         Update to handle signatures, and remove usage of
4213         _dbus_gutils_type_to_string.
4214         (handle_introspect): Print out type codes instead of e.g. "string"
4215         in hardcoded introspection XML; also use x_AS_STRING constants
4216         instead of hardcoding in string.
4217
4218         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4219         to string.  Remove usage of _dbus_gutils_type_to_string.
4220
4221         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4222
4223         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4224         deletion.
4225         
4226         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4227         (compute_marshaller_name, generate_glue): Handle signature change
4228         to string.
4229         (write_formal_parameters, write_args_for_direction): Ditto, and
4230         remove FIXME.
4231
4232         * tools/dbus-tree-view.c (type_to_string): Delete.
4233         (info_set_func_text): Update to print full signatures.
4234
4235         * test/glib/test-service-glib.xml: Change types to new
4236         introspection format.
4237
4238 2005-02-26  Havoc Pennington  <hp@redhat.com>
4239
4240         * doc/TODO: remove the "guid" item
4241
4242         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4243         (with_bus_thread_func): use open_private
4244
4245         * dbus/dbus-connection.c (dbus_connection_open_private): new
4246         function that works like the old dbus_connection_open()
4247         (dbus_connection_open): now returns an existing connection if
4248         possible
4249
4250         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4251         through the GUID to the transport
4252
4253         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4254         GUID in hex-encoded form.
4255
4256         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4257         pass GUID argument in to the transport
4258
4259         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4260         guid argument
4261
4262         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4263
4264         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4265
4266 2005-02-25  Havoc Pennington  <hp@redhat.com>
4267
4268         * doc/dbus-specification.xml: document the GUID thing
4269
4270         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4271         globally unique ID for the server, and put a "guid=hexencoded"
4272         field in the address
4273
4274         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4275
4276         * dbus/dbus-message.c: ditto
4277
4278         * dbus/dbus-dataslot.c: ditto
4279
4280         * dbus/dbus-list.c: ditto
4281
4282         * dbus/dbus-internals.h: wait, just include
4283         dbus-threads-internal.h here
4284         
4285         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4286         use in main library
4287
4288         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4289
4290 2005-02-24  Colin Walters  <walters@verbum.org>
4291
4292         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4293
4294 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4295
4296         * glib/Makefile.am: added dbus-gobject.h to sources list
4297         so distcheck doesn't fail
4298         
4299 2005-02-24  Havoc Pennington  <hp@redhat.com>
4300
4301         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4302         you must disconnect before unref, since locking and other things
4303         are screwed up otherwise. Fix assorted other locking stuff.
4304
4305         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4306         fix compilation
4307
4308         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4309         into a private header and don't export from the library
4310
4311         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4312
4313 2005-02-24  Colin Walters  <walters@verbum.org>
4314         
4315         * dbus/dbus-signature.c: New file; implements various functions
4316         related to type signatures.  Includes an interator for parsing,
4317         validation functions.
4318         (dbus_type_is_basic): Moved here from
4319         dbus-marshal-basic.c:_dbus_type_is_basic.
4320         (dbus_type_is_container): Moved here from
4321         dbus-marshal-basic.c:_dbus_type_is_container.
4322
4323         All callers of _dbus_type_is_container and _dbus_type_is_basic
4324         updated, and include dbus-signature.h.
4325
4326         * dbus/dbus-signature.h: New file; prototypes for the above.
4327
4328         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4329         dbus-signature.h.
4330
4331         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4332         function factored out of _dbus_first_type_in_signature.
4333         (_dbus_first_type_in_signature_c_str): New function; returns first
4334         type code for a type signature character.
4335
4336         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4337         handle function moves.
4338
4339         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4340
4341         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4342         function; skips to next complete type in type signature.
4343         Implemented using previous skip_one_complete_type.  Now
4344         skip_one_complete_type just delegates to
4345         _dbus_type_signature_next.
4346
4347         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4348         to dbus-signature.c
4349         (_dbus_type_is_container): Ditto.
4350
4351         * doc/dbus-specification.xml: Update introspection sample to
4352         use real type signatures.
4353
4354         * dbus/dbus-test.h: Prototype signature test.
4355
4356         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4357         signature tests.
4358
4359         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4360
4361 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4362
4363         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4364         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4365
4366 2005-02-21  Colin Walters  <walters@verbum.org>
4367
4368         * dbus/dbus-test-main.c (main): Take optional specific test
4369         argument.
4370
4371         * dbus/dbus-test.c (run_test): New function, runs a test function
4372         with no data directory.
4373         (run_data_test): Like above, but takes data directory.
4374         (dbus_internal_do_not_use_run_tests): Take
4375         specific test argument.  Replace lots of cut n' paste code
4376         with run_test and run_data_test.
4377
4378         * dbus/dbus-test.h: Update prototype for
4379         dbus_internal_do_not_use_run_tests.
4380
4381 2005-02-20  Havoc Pennington  <hp@redhat.com>
4382
4383         Fix bugs reported by Daniel P. Berrange
4384         
4385         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4386         (protected_change_watch): new function
4387         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4388         (_dbus_server_add_watch): change to work like the
4389         dbus-connection.c equivalents; like those, probably kind of
4390         busted, but should at least mostly work for now
4391         (dbus_server_disconnect): drop the lock if we were already
4392         disconnected, patch from Daniel P. Berrange
4393
4394         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4395         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4396         same stuff
4397
4398         * doc/TODO: todo about unscrewing this mess
4399
4400 2005-02-19  Colin Walters  <walters@verbum.org>
4401
4402         * glib/dbus-binding-tool-glib.c
4403         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4404
4405         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4406         as errno.h and sys/stat.h.
4407         (lose): New function, prints error with
4408         newline and exits.
4409         (lose_gerror): Similar, but takes GError for message.
4410         (main): Add --output argument to specify output file to write to,
4411         instead of always printing to stdout.  In this mode, determine
4412         timestamps on source files to see whether any are newer than the
4413         target file.  If not, exit.  Also convert a number of error
4414         messages to use lose (since it's shorter), and switch to using
4415         g_io_channel_shutdown.
4416
4417 2005-02-19  Havoc Pennington  <hp@redhat.com>
4418
4419         * glib/dbus-gobject.c
4420         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4421
4422         * glib/dbus-glib.c: fix doxygen warnings
4423
4424         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4425         is found on an <arg>
4426
4427 2005-02-17  Colin Walters  <walters@verbum.org>
4428
4429         * glib/dbus-gobject.h: Don't export
4430         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4431         
4432         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4433         (invoke_object_method): Handle it.
4434
4435         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4436         Handle rename.
4437         
4438 2005-02-17  Colin Walters  <walters@verbum.org>
4439
4440         * bus/.cvsignore, doc/.cvsignore
4441         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4442         Update.
4443
4444 2005-02-17  Colin Walters  <walters@verbum.org>
4445         
4446         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4447         Rename to DBUS_SERVICE_DBUS.
4448         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4449         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4450         Change the value from "org.freedesktop.Local"
4451         to "org.freedesktop.DBus.Local".
4452         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4453         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4454         DBUS_INTERFACE_INTROSPECTABLE.
4455         Change the value from "org.freedesktop.Introspectable"
4456         to "org.freedesktop.DBus.Introspectable".
4457         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4458         DBUS_INTERFACE_PROPERTIES.
4459         Change the value from "org.freedesktop.Properties"
4460         to "org.freedesktop.DBus.Properties".
4461         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4462         DBUS_INTERFACE_PEER.
4463         Change the value from "org.freedesktop.Peer"
4464         to "org.freedesktop.DBus.Peer".
4465         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4466         DBUS_INTERFACE_LOCAL.
4467         Change the value from "org.freedesktop.Local"
4468         to "org.freedesktop.DBus.Local".
4469
4470         All other users of those constants have been changed.
4471
4472         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4473
4474         * glib/dbus-gobject.c (handle_introspect): Use constants.
4475
4476         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4477
4478 2005-02-17  Colin Walters  <walters@verbum.org>
4479
4480         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4481         (parse_node, parse_interface, parse_method, parse_signal)
4482         (parse_property, parse_annotation): Lose if we're currently in an
4483         annotation.
4484         (parse_annotation): New function.
4485         (parser_start_element, parser_end_element): Handle annotation.
4486         (parse_method, parse_interface): Remove support for c_name attribute,
4487         switch to annotations.
4488
4489         * glib/dbus-gidl.h (interface_info_get_binding_names)
4490         (method_info_get_binding_names)
4491         (interface_info_get_binding_name, method_info_get_binding_name)
4492         (interface_info_set_binding_name, method_info_set_binding_name):
4493         Remove.
4494         (interface_info_get_annotations, method_info_get_annotations)
4495         (interface_info_get_annotation, method_info_get_annotation)
4496         (interface_info_add_annotation, method_info_add_annotation):
4497         Prototype.
4498
4499         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4500         for "bindings".
4501         (struct MethodInfo): Ditto.
4502         Straightfoward conversion of binding methods into annotation methods
4503         as prototyped.
4504
4505         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4506
4507         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4508
4509         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4510         Use new annotation API.
4511
4512         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4513         annotation element.
4514         
4515         * doc/dbus-specification.xml: Discuss introspection annotations,
4516         include list of well-known annotations.
4517
4518         * test/glib/test-service-glib.xml: Make validate against new DTD.
4519
4520 2005-02-17  Colin Walters  <walters@verbum.org>
4521
4522         This patch is based on initial work from
4523         Paul Kuliniewicz <kuliniew@purdue.edu>.
4524
4525         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4526         initialization of GValue from dbus type to here.
4527         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4528         for the "glib-genmarshal" program from a DBus type.
4529         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4530         into the C name for it we use in the glib bindings.
4531         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4532         glib C type (not GValue).
4533         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4534
4535         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4536         from dbus-gobject.c.
4537
4538         * glib/dbus-gutils.h: Prototype it.
4539
4540         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4541         (marshal_dbus_message_to_g_marshaller): Use new shared function
4542         dbus_glib_marshal_dbus_message_to_gvalue_array.
4543
4544         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4545         Will be changed once we have annotations.
4546
4547         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4548         GStaticRWLock.  Callers updated.
4549         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4550         (string_table_next): New function for iterating over zero-terminated
4551         string value array.
4552         (string_table_lookup): New function; retrieves specific entry in
4553         array.
4554         (get_method_data): New function; look up method data in object data chunk.
4555         (object_error_domain_prefix_from_object_info)
4556         (object_error_code_from_object_info): New functions, but not implemented yet.
4557         (method_interface_from_object_info): New function; retrieve interface name.
4558         (method_name_from_object_info): New function; retrieve method name.
4559         (method_arg_info_from_object_info): New function; retrieve argument data.
4560         (arg_iterate): New function; iterates over serialized argument data.
4561         (method_dir_signature_from_object_info): New function; returns a
4562         GString holding type signature for arguments for just one
4563         direction (input or output).
4564         (method_input_signature_from_object_info)
4565         (method_output_signature_from_object_info): New functions.
4566         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4567         converts dbus message arguments into a GValue array.  Used for both
4568         signal handling and method invocation.
4569         (struct DBusGlibWriteIterfaceData): New utility structure.
4570         (write_interface): New function; generate introspection XML for
4571         an interface.
4572         (introspect_interfaces): New function; gathers all interface->methods,
4573         generates introspection XML for them.
4574         (handle_introspect): Invoke introspect_interfaces.
4575         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4576         (lookup_object_and_method): New function; examines an incoming message
4577         and attempts to match it up (via interface, method name, and argument
4578         signature) with a known object and method.
4579         (gerror_domaincode_to_dbus_error_name): New function; converts a
4580         GError domain and code into a DBus error name.  Needs GError data
4581         added to object introspection to work well.
4582         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4583         GError.
4584         (invoke_object_method): New function to invoke an object method
4585         looked up via lookup_object_and_method.  Parses the incoming
4586         message, turns it into a GValue array, then invokes the marshaller
4587         specified in the DBusGMethodInfo.  Creates a new message with
4588         either return values or error message as appropriate.
4589         (gobject_message_function): Invoke lookup_object_and_method and
4590         invoke_object_method.
4591
4592         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4593         (enum DBusBindingOutputMode): New enum for binding output modes.
4594         (pretty_print): Print binding names.
4595         (dbus_binding_tool_error_quark): GError bits.
4596         (version): Fix typo.
4597         (main): Create GIOChannel for output.  Parse new --mode argument,
4598         possible values are "pretty-print", "glib-server", "glib-client".
4599         Use mode to invoke appropriate function.
4600         
4601         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4602
4603         * glib/dbus-glib-tool.h: New header, just includes GError bits
4604         for now.
4605
4606         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4607         maps binding style to name.
4608         (struct MethodInfo): Ditto.
4609         (get_hash_keys, get_hash_key): Utility function, returns keys for
4610         a GHashTable.
4611         (interface_info_new, method_info_new): Initialize bindings.
4612         (interface_info_unref, method_info_unref): Destroy bindings.
4613         (method_info_get_binding_names, method_info_get_binding_name)
4614         (interface_info_get_binding_names, interface_info_get_binding_name):
4615         Functions for retrieving binding names.
4616         (method_info_set_binding_name, interface_info_set_binding_name):
4617         Functions for setting binding names.
4618
4619         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4620         for glib binding generation.
4621
4622         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4623         and client-side glib glue generation.
4624
4625         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4626         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4627         dbus-glib-tool.h.
4628
4629         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4630         of using GClosureMarshal directly.
4631         (struct DBusGObjectInfo): Add n_infos member.
4632
4633         * test/glib/test-service-glib.xml: New file; contains introspection data
4634         for MyTestObject used in test-service-glib.c.
4635
4636         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4637         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4638         (my_object_uppercase, my_object_many_args): New test methods.
4639         (main): Use dbus_g_object_class_install_info to include generated object
4640         info.
4641
4642         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4643         as well as client-side bindings.
4644
4645         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4646         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4647         using both the dbus_gproxy stuff directly as well as the generated bindings.
4648
4649 2005-02-15  Havoc Pennington  <hp@redhat.com>
4650
4651         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4652         complete a pending call, don't run filters first.
4653
4654         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4655         dbus_pending_call_steal_reply
4656
4657         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4658         _dbus_connection_block_pending_call
4659         (dbus_pending_call_get_reply): change to steal_reply and return a
4660         ref
4661
4662         * dbus/dbus-connection.c
4663         (dbus_connection_send_with_reply_and_block): port to work in terms
4664         of DBusPendingCall
4665         (_dbus_connection_block_pending_call): replace block_for_reply
4666         with this
4667
4668 2005-02-14  Havoc Pennington  <hp@redhat.com>
4669
4670         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4671         properly handle looking up group information by name; fix 
4672         from j@bootlab.org
4673
4674 2005-02-13  Havoc Pennington  <hp@redhat.com>
4675
4676         * dbus/dbus-connection.c (dbus_connection_return_message) 
4677         (dbus_connection_borrow_message): hold dispatch lock while message
4678         is outstanding
4679         (_dbus_connection_block_for_reply): hold dispatch lock while we
4680         block for the reply, so nobody steals our reply
4681         (dbus_connection_pop_message): hold the dispatch lock while we
4682         pluck the message
4683
4684 2005-02-13  Havoc Pennington  <hp@redhat.com>
4685
4686         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4687         (_dbus_connection_release_dispatch)
4688         (_dbus_connection_acquire_io_path)
4689         (_dbus_connection_release_io_path): make the mutex and condvar
4690         control access to the "acquired" flag. Drop the connection lock
4691         while waiting on the condvar. Hopefully these are baby steps in
4692         roughly the right direction.
4693
4694 2005-02-13  Havoc Pennington  <hp@redhat.com>
4695
4696         * dbus/dbus-connection.c: use separate mutexes for the condition
4697         variables; this is some kind of baseline for sanity, but the
4698         condition variables still aren't used correctly afaict
4699
4700 2005-02-13  Havoc Pennington  <hp@redhat.com>
4701
4702         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4703         fix a double-unlock
4704
4705         * dbus/dbus-connection.c
4706         (_dbus_connection_detach_pending_call_unlocked): add this
4707
4708         Initial semi-correct pass through to fix thread locking; there are
4709         still some issues with the condition variable paths I'm pretty
4710         sure
4711         
4712         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4713         lock/unlock calls
4714
4715         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4716         rename to add _unlocked
4717         (struct DBusConnection): move "dispatch_acquired" and
4718         "io_path_acquired" to use only one bit each.
4719         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4720         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4721         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4722         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4723         (_dbus_connection_remove_timeout) 
4724         (_dbus_connection_toggle_timeout): drop lock when calling out to
4725         user functions; done in a hacky/bad way.
4726         (_dbus_connection_send_and_unlock): add a missing unlock
4727         (_dbus_connection_block_for_reply): add a missing unlock
4728
4729         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4730         drop lock in a hacky probably unsafe way to call out to user
4731         function
4732
4733 2005-02-12  Havoc Pennington  <hp@redhat.com>
4734
4735         * tools/dbus-tree-view.c (info_set_func_text): display more
4736         details on args
4737
4738         * bus/driver.c (bus_driver_handle_list_services): list the bus
4739         driver
4740
4741         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4742
4743         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4744         (method_info_get_n_args): new function
4745
4746 2005-02-12  Havoc Pennington  <hp@redhat.com>
4747
4748         * bus/driver.c (bus_driver_handle_introspect): add introspection
4749         for bus driver
4750
4751 2005-02-12  Havoc Pennington  <hp@redhat.com>
4752
4753         * bus/driver.c: put the signature of each bus driver method in the
4754         table of handlers and check it on incoming calls; this isn't
4755         really useful, but going to add introspect support in a minute.
4756
4757 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4758
4759         * mono/Connection.cs: The unpredictability of finalizers in mono
4760         prevents us from deterministically disconnecting the filters from
4761         the Service class's finalizer, so move tracking of filters and
4762         matches here.  Add API for that.
4763
4764         * mono/Service.cs: Remove the code, add code which calls the
4765         methods now on the Connection class.
4766
4767 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4768
4769         * python/dbus.py (class Sender): added to support dbus signals better
4770         (Bus::add_signal_receiver): added expand_args parameter which defaults
4771         to True.  When expand args is True the signal handler will pass the 
4772         message arguments as parameters to the signal handler.  If False
4773         revert to previous behavior where the signal handler must get the
4774         argument list from the message.  This is to help port applications
4775         like HAL that have a tendancy to send variable length argument lists.
4776         self._match_rule_to_receivers is now a dict of dicts.
4777         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4778         removing it from a list
4779         (Bus::_signal_func): change signal handlers so that interface,
4780         signal_name, service, path and message are packed into a Sender
4781         object and that is passed to the handler.  If expand_args is True
4782         extract the args list from the message and append it to the parameter
4783         list
4784         
4785         * python/dbus_bindings.pyx.in (class Signature): added to support 
4786         signiature types
4787         (MessageIter::__init__): changed iteration limit to match D-BUS
4788         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4789         STRUCT and VARIENT type support
4790         (MessageIter::python_value_to_dbus_sig): made recursive to support
4791         recursive types
4792         (MessageIter::append*): added Signature, dict, tuple 
4793         support
4794
4795         * python/examples/example-client.py: added examples of getting tuples
4796         and dicts
4797
4798         * python/examples/example-service.py: added examples of sending tuples
4799         and dicts
4800
4801         * python/examples/example-signal-recipient.py: Fixed to handle new
4802         signal callback format
4803
4804 2005-02-10  Havoc Pennington  <hp@redhat.com>
4805
4806         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4807         (call dbus_g_proxy_add_signal)
4808
4809         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4810         escape the hostname
4811         (_dbus_server_new_for_domain_socket): escape the path
4812
4813         * dbus/dbus-address.c (dbus_address_escape_value): new
4814         (dbus_address_unescape_value): new
4815         (dbus_parse_address): unescape values
4816
4817         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4818
4819         * doc/dbus-specification.xml: explain how to escape values in
4820         addresses
4821
4822 2005-02-10  Havoc Pennington  <hp@redhat.com>
4823
4824         * dbus/dbus-message-factory.c (generate_special): modify test to
4825         avoid using a non-basic dict key
4826
4827         * dbus/dbus-marshal-validate-util.c: add test for the below
4828
4829         * doc/dbus-specification.xml: require that dict keys are a basic
4830         type
4831
4832         * dbus/dbus-marshal-validate.c
4833         (_dbus_validate_signature_with_reason): require that dict key is a
4834         basic type
4835
4836 2005-02-10  Havoc Pennington  <hp@redhat.com>
4837
4838         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4839         change to be _and_unlock instead of _unlocked
4840
4841         * dbus/dbus-connection.c
4842         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4843         have no_update so we can find this bug quickly in future
4844
4845 2005-02-10  Havoc Pennington  <hp@redhat.com>
4846
4847         * dbus/dbus-message-util.c (verify_test_message): tests for string
4848         array
4849
4850         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4851         support for arrays of string/signature/path
4852
4853 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4854
4855         * dbus/dbus-connection.c
4856         (_dbus_connection_queue_received_message_link,
4857         _dbus_connection_message_sent): Add the path to
4858         the verbose output.
4859         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4860         _dbus_connection_send_preallocated_unlocked(), updated the
4861         dispatch status, and unlocks.  Fixes a bug where certain
4862         situations (like a broken pipe) could cause a Disconnect message
4863         to not be sent, tricking the bus into thinking a service was still
4864         there when the process had quit.
4865         (_dbus_connection_send_preallocated): Call
4866         _dbus_connection_send_preallocated_and_unlock().
4867         (_dbus_connection_send_and_unlock): Added.  Calls
4868         _dbus_connection_send_preallocated_and_unlock().
4869         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4870         (dbus_connection_send_with_reply): Update the dispatch status and
4871         unlock.
4872
4873         * mono/Service.cs (~Service): Added.  Removes the filter so that
4874         we don't get unmanaged code calling back into a GCed delegate.
4875         (RemoveFilter); Added.
4876
4877 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4878
4879         * dbus/dbus-message.c (dbus_message_iter_open_container):
4880         - Removed check for iterator type being an array because
4881         get_arg_type does not work with writer iterators
4882         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4883
4884 2005-02-07  Havoc Pennington  <hp@redhat.com>
4885
4886         * doc/dbus-specification.xml: some more language cleanups; add
4887         stuff about how to deal with invalid protocol and extension
4888         points; add _ to allowed chars in auth commands; add EXTENSION_
4889         auth command prefix
4890
4891 2005-02-06  Havoc Pennington  <hp@redhat.com>
4892
4893         * s/expected/required/ in a couple places for clarity
4894
4895 2005-02-07  Colin Walters  <walters@verbum.org>
4896
4897         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4898         sender or proposed_recipient.
4899
4900 2005-02-06  Havoc Pennington  <hp@redhat.com>
4901
4902         * dbus/dbus-message-factory.c (generate_special): more tests
4903
4904         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4905         array length that exceeds the maximum
4906
4907 2005-02-05  Havoc Pennington  <hp@redhat.com>
4908
4909         * dbus/dbus-message-factory.c (generate_special): more test cases,
4910         increasing coverage
4911
4912         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4913         reason why a signature was invalid
4914
4915         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4916         skip the length of the string before we look at it in validation
4917
4918         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4919         equal_substring
4920
4921         * dbus/dbus-message.c (_dbus_message_loader_new): default
4922         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4923
4924 2005-02-05  Havoc Pennington  <hp@redhat.com>
4925
4926         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4927         if the signature of a variant was empty
4928         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4929         struct with no element type)
4930
4931         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4932         mangled messages to break things
4933
4934 2005-02-04  Havoc Pennington  <hp@redhat.com>
4935
4936         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4937         g_quark_try_string() so it actually can return 0
4938         (dbus_g_proxy_connect_signal): ditto
4939
4940 2005-02-04  Havoc Pennington  <hp@redhat.com>
4941
4942         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4943         bogus warning
4944         (tristring_from_message): assert cleanly on null path/interface
4945         (should not be possible though I decided later)
4946         (dbus_g_proxy_dispose): move proxy manager unregistration here
4947         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4948         g_return_if_fail() checks
4949
4950 2005-02-04  Havoc Pennington  <hp@redhat.com>
4951
4952         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4953
4954         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4955         (with some minor changes)
4956
4957         * doc/dbus-specification.xml: add deprecated attribute to
4958         introspection format
4959
4960 2005-01-31  Havoc Pennington  <hp@redhat.com>
4961
4962         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4963         think it's sort of right
4964
4965 2005-01-30  Havoc Pennington  <hp@redhat.com>
4966
4967         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4968
4969 2005-01-30  Havoc Pennington  <hp@redhat.com>
4970
4971         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4972
4973         * autogen.sh: change to autotools 1.9
4974
4975         * glib/dbus-gproxy.c: completely change how signals work
4976         (dbus_g_proxy_add_signal): new function to specify signature of a
4977         signal
4978         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4979         and g_warning if the incoming message has the wrong signature.
4980
4981 2005-01-30  Havoc Pennington  <hp@redhat.com>
4982
4983         * tools/dbus-names-model.c (have_names_notify): fix this
4984
4985         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4986         up the string array handling a bit 
4987
4988 2005-01-30  Havoc Pennington  <hp@redhat.com>
4989
4990         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4991         (dbus_g_pending_call_cancel): new function
4992
4993         * dbus/dbus-glib.h: move GType decls for connection/message here;
4994         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4995         here, just kind of rationalizing how we handle all that
4996
4997         * tools/dbus-names-model.c: new file for a tree model listing the
4998         services on a bus
4999
5000         * tools/dbus-tree-view.c (model_new): use proper typing on the
5001         model rows
5002
5003 2005-01-30  Havoc Pennington  <hp@redhat.com>
5004
5005         * glib/dbus-gmain.c: add a custom GSource back that just checks
5006         whether the message queue has anything in it; otherwise, there are 
5007         cases where we won't see messages in the queue since there was no 
5008         IO visible to the glib main loop
5009
5010         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5011         increase default message timeout to 25 seconds
5012
5013 2005-01-30  Havoc Pennington  <hp@redhat.com>
5014
5015         * test/glib/test-profile.c (no_bus_stop_server): remove the
5016         warning about the g_warning that I just fixed
5017
5018         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5019         custom source, seems to be a lot easier to understand and work
5020         better.
5021
5022 2005-01-30  Havoc Pennington  <hp@redhat.com>
5023
5024         I think this main loop thing is conceptually broken, but here are 
5025         some band aids. I'll maybe rewrite it in a minute.
5026         
5027         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5028         custom GSource, so don't pass it in; confusing
5029         (gsource_server_finalize, gsource_connection_finalize): add
5030         finalize handlers that remove all the watches.  
5031
5032 2005-01-30  Havoc Pennington  <hp@redhat.com>
5033
5034         * glib/dbus-gobject.c (introspect_properties): fix the XML
5035         generated
5036
5037         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5038         which effectively detects the use of freed messages
5039
5040         * glib/dbus-gobject.c (handle_introspect): modify and return the
5041         reply message instead of the incoming message
5042
5043         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5044         gee, maybe it should SEND THE XML instead of just making a string
5045         and freeing it again ;-)
5046
5047         * tools/dbus-print-message.c (print_message): improve printing of
5048         messages
5049
5050         * configure.in: add debug-glib.service to the output
5051
5052 2005-01-30  Havoc Pennington  <hp@redhat.com>
5053
5054         dbus-viewer introspected and displayed the bus driver
5055         
5056         * dbus/dbus-object-tree.c 
5057         (object_tree_test_iteration): add tests for a handler registered on "/"
5058
5059         * dbus/dbus-object-tree.c
5060         (_dbus_decompose_path): fix to handle path "/" properly
5061         (run_decompose_tests): add tests for path decomposition
5062         
5063         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5064         properly
5065
5066         * glib/dbus-gobject.c (handle_introspect): fix quotes
5067
5068         * test/glib/run-test.sh: support launching the bus, then running
5069         dbus-viewer
5070
5071         * test/glib/test-service-glib.c (main): put in a trivial gobject
5072         subclass and register it on the connection
5073
5074         * bus/driver.c (bus_driver_handle_introspect): implement
5075         introspection of the bus driver service
5076
5077         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5078         identifiers, doctype decl
5079
5080         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5081         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5082         returning the service unchanged.
5083         (bus_driver_handle_message): remove old check for reply_serial in
5084         method calls, now the message type deals with that
5085         (bus_driver_handle_message): handle NULL interface
5086
5087         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5088
5089         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5090         -1 for len
5091
5092         * tools/dbus-viewer.c: add support for introspecting a service on
5093         a bus
5094
5095         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5096         (dbus_g_pending_call_unref): add
5097
5098 2005-01-29  Havoc Pennington  <hp@redhat.com>
5099
5100         * tools/dbus-tree-view.c: add support for displaying properties.
5101         (run dbus-viewer with an introspect xml file as arg, then resize
5102         the window so the tree elements show up, not sure what that is)
5103
5104         * glib/dbus-gobject.c (handle_introspect): return
5105         org.freedesktop.Properties and org.freedesktop.Introspectable
5106         interfaces when we are introspected.
5107
5108         * doc/dbus-specification.xml: allow empty interface name when 
5109         Get/Set a property
5110
5111 2005-01-29  Havoc Pennington  <hp@redhat.com>
5112
5113         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5114         though it uses glib, it could be extended for any binding in
5115         principle
5116
5117         * glib/dbus-gobject.c (gobject_message_function): change to the
5118         new way properties work
5119
5120         * dbus/dbus-protocol.h: add the new interfaces
5121
5122         * doc/dbus-specification.xml: document the introspection format,
5123         Introspectable interface, and add an org.freedesktop.Properties
5124         interface.
5125
5126         * glib/dbus-gparser.c: add support for a <property> element
5127
5128         * glib/dbus-gidl.c: add PropertyInfo
5129
5130         * glib/dbus-gobject.c (handle_introspect): put the outermost
5131         <node> outside the signal and property descriptions.
5132         (introspect_properties): export properties as <property> rather
5133         than as method calls
5134
5135 2005-01-28  Havoc Pennington  <hp@redhat.com>
5136
5137         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5138         related to authentication protocol
5139
5140 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5141
5142         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5143                 - BUS_ACTIVATION -> BUS_STARTER
5144                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5145                 - class MessageIter (__init__): Added recursion checking 
5146                 so we throw a nice error instead of just disconnecting from the
5147                 bus.
5148                 (get): Added arg_type parameter for recursion.
5149                 Removed the nil type
5150                 Added signiture type placeholder (not implemented)
5151                 Added struct type placeholder (not implemented)
5152                 Added varient type placeholder (not implemented)
5153                 Commented out dict type for now     
5154                 (get_element_type): renamed from get_array_type
5155                 (get_*): changed to use the dbus_message_iter_get_basic API
5156                 (get_*_array): removed in favor of recursive get_array method
5157                 (get_array): new recursive method which calls get to marshal
5158                 the elements of the array
5159                 (value_to_dbus_sig): New method returns the corrasponding
5160                 dbus signiture to a python value
5161                 (append): Comment out dict handling for now
5162                 Handle lists with the new recursive API
5163                 Comment out None handling for now
5164                 (append_nil): removed
5165                 (append_*): changed to use dbus_message_iter_append_basic API
5166                 (append_*_array): removed in favor of recursive append_array 
5167                 method
5168                 (__str__): Make it easier to print out recursive iterators
5169                 for debugging
5170                 - class Message (__str__): moved type inspection to the
5171                 MessageIter class' __str__ method
5172                 (get_iter): Added an append parameter wich defaults to False
5173                 If True use the new API's to create an append iterator
5174
5175         * python/dbus.py: Update to use new bindings API
5176                 - TYPE_ACTIVATION -> TYPE_STARTER
5177                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5178                 - class ActivationBus -> class StarterBus
5179                 - class RemoteObject (__call__): get an append iterator
5180                 - (_dispatch_dbus_method_call): get an append iterator
5181                 - class Object (emit_signal): get an append iterator
5182
5183         * python/examples/: Fixed up the examples to work with the new API
5184                 
5185 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5186
5187         * configure.in: Bump version up to 0.30.
5188
5189         * HACKING: Add a release item to bump the version number up after 
5190         a release.
5191
5192 2005-01-28  Havoc Pennington  <hp@redhat.com>
5193
5194         * doc/dbus-specification.xml: update to describe 16-bit types and
5195         dict entries
5196
5197         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5198         assertion
5199
5200         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5201         type
5202
5203         * dbus/dbus-marshal-recursive.c: implement
5204
5205 2005-01-27  Havoc Pennington  <hp@redhat.com>
5206
5207         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5208
5209         * configure.in: find the right type for 16 and 32 bit ints as well
5210         as 64
5211
5212         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5213         the 16-bit types so people don't have to stuff them in 32-bit or
5214         byte arrays.
5215
5216 2005-01-27  Havoc Pennington  <hp@redhat.com>
5217
5218         * dbus/dbus-message.c: byteswap the message if you init an
5219         iterator to read/write from it
5220         
5221         * dbus/dbus-marshal-byteswap.c: new file implementing 
5222         _dbus_marshal_byteswap()
5223
5224         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5225
5226 2005-01-26  Havoc Pennington  <hp@redhat.com>
5227         
5228         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5229         build, apparently - nobody noticed?)
5230         
5231 2005-01-26  Havoc Pennington  <hp@redhat.com>
5232
5233         * dbus/dbus-marshal-recursive.h: remove todo comment
5234
5235 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5236
5237         * Land the mono binding changes to conform to the new APIs.
5238
5239         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5240         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5241
5242         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5243         type code as a string.
5244         (InitAppending): Rename dbus_message_append_iter_init() to
5245         dbus_message_iter_init_append().
5246
5247         * mono/BusDriver.cs: Rename ServiceEventHandler to
5248         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5249         Rename ServiceOwnerChanged to NameOwnerChanged.
5250
5251         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5252         underlying C call.
5253
5254         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5255
5256         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5257         dbus_bus_acquire_service() to dbus_bus_request_name().
5258
5259         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5260         of Type.UnderlyingSystemType to get the correct element type for
5261         the array.
5262         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5263         dbus_message_get_{element|arg}_type() instead of
5264         dbus_message_iter_init_array_iterator().
5265         (Append): Replace dbus_message_iter_append_array() with
5266         dbus_message_iter_open_container() and
5267         dbus_message_iter_close_container().
5268
5269         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5270         types have been removed.
5271         
5272         * mono/DBusType/*.cs: Replace calls of
5273         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5274         but specify the type in the DllImport extern declaration.  Ditto
5275         for dbus_message_iter_append_[type]() ->
5276         dbus_message_iter_append_basic().
5277
5278         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5279         NameOwnerChangedHandler.
5280
5281 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5282
5283         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5284                 - get_base_service -> get_unique_name
5285                 - bus_get_base_service -> bus_get_unique_name
5286                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5287                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5288                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5289                 - bus_activate_service -> bus_start_service_by_name
5290                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5291                 - bus_acquire_service -> bus_request_name
5292                 - dbus_bus_acquire_service -> dbus_bus_request_name
5293                 - bus_service_exists -> bus_name_has_owner
5294                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5295
5296         * python/dbus.py: Rename of methods
5297                 - activate_service -> start_service_by_name
5298                 - bus_acquire_service -> bus_request_name
5299                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5300                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5301
5302         
5303 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5304
5305         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5306         signature for the method that can't be found.
5307
5308         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5309         the message has any arguments, we need to call
5310         _dbus_type_reader_get_current_type(), not
5311         _dbus_type_reader_has_next().
5312
5313 2005-01-24  Havoc Pennington  <hp@redhat.com>
5314
5315         * dbus/dbus-message-factory.c: more testing of message validation
5316
5317         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5318         header
5319
5320 2005-01-23  Havoc Pennington  <hp@redhat.com>
5321
5322         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5323         get this all working, not many tests in the framework yet though
5324
5325 2005-01-22  Havoc Pennington  <hp@redhat.com>
5326
5327         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5328         tutorial, based on work from David Wheeler.
5329
5330 2005-01-21  Havoc Pennington  <hp@redhat.com>
5331
5332         * dbus/dbus-bus.c: add more return_if_fail checks
5333
5334         * dbus/dbus-message.c (load_message): have the "no validation"
5335         mode (have to edit the code to toggle the mode for now though)
5336
5337         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5338         skips all validation; I want to use this at least for benchmark
5339         baseline, I'm not sure if it should be a publicly-available switch.
5340
5341 2005-01-21  Havoc Pennington  <hp@redhat.com>
5342
5343         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5344         toplevel doxygen group as the low-level API stuff
5345
5346         * dbus/dbus.h: note that libdbus is the low-level API
5347
5348 2005-01-20  Havoc Pennington  <hp@redhat.com>
5349
5350         * update-dbus-docs.sh: script to update docs on the web site, only
5351         works for me though. neener.
5352
5353 2005-01-20  Havoc Pennington  <hp@redhat.com>
5354
5355         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5356         code can reveal bugs in it
5357
5358 2005-01-20  Havoc Pennington  <hp@redhat.com>
5359
5360         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5361         select() version, patches from Tor Lillqvist
5362
5363 2005-01-20  Havoc Pennington  <hp@redhat.com>
5364
5365         * doc/dbus-tutorial.xml: replace > with &gt;
5366
5367         * bus/services.c (bus_registry_acquire_service): validate the name
5368         and return a better error if it's no good.
5369
5370         * doc/dbus-specification.xml: note NO_AUTO_START change
5371
5372         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5373         from AUTO_START, we're toggling the default
5374
5375         * bus/dispatch.c: adapt the tests to change of auto-start default
5376
5377 2005-01-18  Havoc Pennington  <hp@redhat.com>
5378
5379         * rename dbus-daemon-1 to dbus-daemon throughout
5380
5381 2005-01-18  Havoc Pennington  <hp@redhat.com>
5382
5383         * Throughout, grand renaming to strip out the use of "service",
5384         just say "name" instead (or "bus name" when ambiguous).  Did not
5385         change the internal code of the message bus itself, only the
5386         programmer-facing API and messages.
5387         
5388         * doc/dbus-specification.xml: further update the message bus section
5389         
5390         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5391         in error case
5392
5393 2005-01-17  Havoc Pennington  <hp@redhat.com>
5394
5395         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5396         ever
5397
5398         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5399         "invalid name character" not only non-ASCII
5400
5401         * doc/dbus-specification.xml: further update spec, message bus 
5402         parts are still out-of-date but the marshaling etc. stuff is now
5403         accurate-ish
5404
5405 2005-01-17  Havoc Pennington  <hp@redhat.com>
5406
5407         * doc/dbus-specification.xml: partially update spec
5408
5409 2005-01-17  Havoc Pennington  <hp@redhat.com>
5410
5411         * Throughout, align variant bodies according to the contained
5412         type, rather than always to 8. Should save a fair bit of space in
5413         message headers.
5414         
5415         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5416         fix handling of case where p == end
5417
5418         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5419
5420 2005-01-17  Havoc Pennington  <hp@redhat.com>
5421
5422         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5423
5424         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5425         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5426         are marshaling/unmarshaling a boolean.
5427
5428 2005-01-16  Havoc Pennington  <hp@redhat.com>
5429
5430         This is about it on what can be disabled/deleted from libdbus
5431         easily, back below 150K anyhow. Deeper cuts are more work than 
5432         just turning the code off as I've done here.
5433         
5434         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5435         signed int convenience funcs
5436
5437         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5438         verbose mode
5439
5440         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5441         things out of libdbus
5442
5443         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5444         
5445         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5446         tests-enabled-only, though it should probably be deleted)
5447
5448         * dbus/dbus-message-util.c: same stuff
5449
5450         * dbus/dbus-auth-util.c: same stuff
5451
5452 2005-01-16  Havoc Pennington  <hp@redhat.com>
5453
5454         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5455
5456         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5457         way for stripping down dbus-userdb.c stuff included in libdbus.
5458         Rename _dbus_parse_uid for consistency.
5459
5460 2005-01-16  Havoc Pennington  <hp@redhat.com>
5461
5462         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5463         name the assertion failed in
5464
5465         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5466         (_dbus_return_val_if_fail): assert that the name of the function
5467         containing the check doesn't start with '_', since we only want to 
5468         use checks on public functions
5469         
5470         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5471         checks to assertions
5472
5473         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5474         change checks to asserts for private function
5475
5476         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5477         to asserts for private function
5478
5479         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5480         broken assertion that was breaking make check
5481         (_dbus_type_reader_array_is_empty): remove this rather than fix
5482         it, was only used in assertions
5483
5484 2005-01-16  Havoc Pennington  <hp@redhat.com>
5485
5486         * test/unused-code-gc.py: hacky script to find code that's used
5487         only by the bus (not libdbus) or used only by tests or not used at
5488         all. It has some false alarms, but looks like we can clean up a
5489         lot of size from libdbus.
5490
5491         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5492         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5493         
5494 2005-01-16  Havoc Pennington  <hp@redhat.com>
5495
5496         * Add and fix docs according to Doxygen warnings throughout
5497         source.
5498         
5499         * dbus/dbus-marshal-recursive.c
5500         (_dbus_type_reader_array_is_empty): change this to just call
5501         array_reader_get_array_len() and make it static
5502
5503         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5504         from get_array_type
5505         (dbus_message_iter_init_append): rename from append_iter_init
5506
5507         * dbus/dbus-marshal-recursive.c
5508         (_dbus_type_reader_get_element_type): rename from
5509         _dbus_type_reader_get_array_type
5510
5511 2005-01-15  Havoc Pennington  <hp@redhat.com>
5512
5513         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5514
5515         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5516         when DBUS_DISABLE_ASSERT
5517         (_dbus_marshal_set_basic): be sure we align for the string length
5518
5519         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5520         this look faster
5521
5522         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5523         inline macro version
5524         (_dbus_string_set_byte): provide inline macro version
5525
5526 2005-01-15  Havoc Pennington  <hp@redhat.com>
5527
5528         * Land the new message args API and type system.
5529
5530         This patch is huge, but the public API change is not 
5531         really large. The set of D-BUS types has changed somewhat, 
5532         and the arg "getters" are more geared toward language bindings;
5533         they don't make a copy, etc.
5534
5535         There are also some known issues. See these emails for details
5536         on this huge patch:
5537         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5538         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5539         
5540         * dbus/dbus-marshal-*: all the new stuff
5541
5542         * dbus/dbus-message.c: basically rewritten
5543
5544         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5545         freed blocks to be all non-nul bytes so using freed memory is less
5546         likely to work right
5547
5548         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5549         DBUS_FAIL_MALLOC=N environment variable, so you can do
5550         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5551         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5552         thorough.
5553
5554         * qt/message.cpp: port to the new message args API
5555         (operator<<): use str.utf8() rather than str.unicode()
5556         (pretty sure this is right from the Qt docs?)
5557
5558         * glib/dbus-gvalue.c: port to the new message args API
5559
5560         * bus/dispatch.c, bus/driver.c: port to the new message args API
5561
5562         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5563         "locked" flag to TRUE and align_offset to 0; I guess we never
5564         looked at these anyhow, but seems cleaner.
5565
5566         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5567         move allocation padding macro to this header; use it to implement
5568         (_DBUS_STRING_STATIC): ability to declare a static string.
5569
5570         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5571         change to return TRUE if the interface is not set.
5572
5573         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5574         to dbus-marshal-validate.[hc]
5575
5576         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5577         dbus-internals.c
5578
5579         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5580         to dbus-marshal-*.[hc]
5581
5582         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5583         function here from dbus-marshal.c
5584
5585 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5586
5587         * NEWS: Update for 0.23.
5588
5589         * configure.in: Release 0.23.
5590
5591 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5592
5593         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5594         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5595         behind.
5596
5597         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5598         uninstall"
5599
5600         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5601         is an enum, get the enum's underlying type.  Another mono
5602         1.1.3 fix.
5603
5604 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5605
5606         Patch from Sjoerd Simons <sjoerd@luon.net>
5607
5608         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5609         DESTDIR.  It breaks stuff.
5610
5611 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5612
5613         Patch from Tambet Ingo <tambet@ximian.com>
5614
5615         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5616         calling type.GetElementType().  The code previously depended on
5617         broken Mono behavior, which was fixed in Mono 1.1.3.
5618
5619         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5620         Activator.CreateInstance() so that the class's constructor is
5621         called with the right parameters.
5622
5623 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5624
5625         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5626
5627         * dbus/dbus-connection.c
5628         (_dbus_connection_queue_received_message_link): Call
5629         _dbus_connection_remove_timeout() instead of the _locked()
5630         variant, since it's always called from
5631         _dbus_connection_handle_watch(), which handles the locking.
5632         Removed the _locked() variant since it's no longer used.
5633
5634 2005-01-03  Havoc Pennington  <hp@redhat.com>
5635
5636         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5637         return
5638         
5639 2004-12-26  Havoc Pennington  <hp@redhat.com>
5640
5641         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5642
5643 2005-01-03  Havoc Pennington  <hp@redhat.com>
5644
5645         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5646         floating point
5647
5648         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5649
5650 2005-01-02  Havoc Pennington  <hp@redhat.com>
5651
5652         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5653
5654 2005-01-01  Havoc Pennington  <hp@redhat.com>
5655
5656         * configure.in: add -Wfloat-equal
5657
5658 2005-01-01  Havoc Pennington  <hp@redhat.com>
5659
5660         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5661         for a variety of reasons '==' doesn't do this.
5662
5663 2004-12-31  Havoc Pennington  <hp@redhat.com>
5664
5665         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5666         I keep wishing I had
5667
5668 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5669
5670         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5671
5672 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5673
5674         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5675         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5676         dbus-protocol.h.  Because they are defines and not enums they are not
5677         autogenerated.
5678
5679 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5680
5681         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5682         dbus_bus_activate_service
5683
5684         * python/dbus.py (Bus.activate_service): activate a service on the
5685         bus.
5686
5687 2004-12-24  Havoc Pennington  <hp@redhat.com>
5688
5689         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5690         file format has also changed and I haven't adapted to that yet
5691         
5692         * Makefile.am: load .gcno files from latest gcc
5693
5694 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5695         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5696
5697         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5698         lowlevel binding
5699
5700         * python/dbus.py (get_unix_user): Added binding to 
5701         call dbus_bindings.bus_get_unix_user
5702
5703         * python/extract.py: Modified the proto_pat regex to
5704         handle unsigned long
5705
5706 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5707
5708         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5709         better POSIX compliance.
5710
5711 2004-12-19  Havoc Pennington  <hp@redhat.com>
5712
5713         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5714         (_dbus_string_insert_8_aligned): new functions
5715
5716         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5717
5718 2004-12-18  Havoc Pennington  <hp@redhat.com>
5719
5720         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5721         macro
5722
5723         * dbus/dbus-message.c: fix a comment, and add a still-unused
5724         not-implemented function
5725
5726         * dbus/dbus-marshal.h: fix comment
5727
5728         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5729
5730 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5731
5732         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5733         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5734         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5735         Type.UnderlyingSystemType to get the actual system type
5736         underneath.  This code previously depended on the broken Mono
5737         behavior, which was fixed in 1.1.3.
5738
5739 2004-11-27  Havoc Pennington  <hp@redhat.com>
5740
5741         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5742         are disabled
5743         (_dbus_string_get_const_data): inline when asserts are disabled
5744
5745         * dbus/dbus-message.c: record the _dbus_current_generation of
5746         creation so we can complain if dbus_shutdown() is used improperly.
5747         Do this only if checks are enabled.
5748
5749         * dbus/dbus-connection.c: ditto
5750         
5751 2004-11-26  Havoc Pennington  <hp@redhat.com>
5752
5753         * test/glib/test-profile.c: add with_bus mode to profile echoes
5754         that go through the bus.
5755
5756         * test/glib/run-test.sh: add ability to run test-profile
5757
5758         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5759         config file reload.
5760
5761 2004-11-26  Havoc Pennington  <hp@redhat.com>
5762
5763         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5764         thing was implemented
5765
5766 2004-11-26  Havoc Pennington  <hp@redhat.com>
5767
5768         * test/glib/test-profile.c: tweak a bit, add support for some
5769         made-up minimal malloc overhead with plain sockets, since in 
5770         real life some sort of buffers are unavoidable thus we could 
5771         count them in the theoretical best case
5772
5773 2004-11-26  Havoc Pennington  <hp@redhat.com>
5774
5775         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5776         where I was trying to cache one too many messages
5777
5778 2004-11-26  Havoc Pennington  <hp@redhat.com>
5779
5780         * dbus/dbus-message.c: reimplement message cache as an array which 
5781         makes the cache about twice as fast and saves maybe 1.5% overall
5782
5783 2004-11-26  Havoc Pennington  <hp@redhat.com>
5784
5785         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5786         message cache lock here
5787
5788 2004-11-26  Havoc Pennington  <hp@redhat.com>
5789
5790         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5791         the "char byte_order" next to each other to save 4 bytes
5792         (dbus_message_new_empty_header): reduce preallocation, since the
5793         message cache should achieve a similar effect
5794         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5795         message cache that keeps a few DBusMessage around in a pool,
5796         another 8% speedup or so.
5797
5798         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5799
5800 2004-11-25  Havoc Pennington  <hp@redhat.com>
5801
5802         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5803         to write, without reading or blocking, try it before the poll()
5804         and skip the poll() if nothing remains to write. This is about a
5805         3% speedup in the echo client/server
5806
5807 2004-11-25  Havoc Pennington  <hp@redhat.com>
5808
5809         The primary change here is to always write() once before adding
5810         the write watch, which gives us about a 10% performance increase.
5811         
5812         * dbus/dbus-transport-unix.c: a number of modifications to cope
5813         with removing messages_pending
5814         (check_write_watch): properly handle
5815         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5816         messages_pending stuff
5817         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5818         AUTHENTICATED cases
5819         (unix_handle_watch): after writing, see if the write watch can be
5820         removed
5821         (unix_do_iteration): assert that write_watch/read_watch are
5822         non-NULL rather than testing that they aren't, since they 
5823         aren't allowed to be NULL. check_write_watch() at the end so 
5824         we add the watch if we did not finish writing (e.g. got EAGAIN)
5825
5826         * dbus/dbus-transport-protected.h: remove messages_pending call,
5827         since it resulted in too much inefficient watch adding/removing; 
5828         instead we now require that the transport user does an iteration 
5829         after queueing outgoing messages, and after trying the first
5830         write() we add a write watch if we got EAGAIN or exceeded our 
5831         max bytes to write per iteration setting
5832
5833         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5834         function
5835
5836         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5837         freed and then accessed, valgrind flagged this bug, fix it
5838
5839         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5840         as the last valid field plus 1, where really it is equal to the
5841         last valid field. Corrects some message corruption issues.
5842
5843         * dbus/dbus-mainloop.c: verbosity changes
5844
5845         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5846         instead of aborting in one of the test codepaths
5847
5848         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5849         caused not printing the pid ever again if a verbose was missing
5850         the newline at the end
5851         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5852
5853         * dbus/dbus-connection.c: verbosity changes; 
5854         (dbus_connection_has_messages_to_send): new function
5855         (_dbus_connection_message_sent): no longer call transport->messages_pending
5856         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5857         try to write() immediately, so we can avoid the write watch. This
5858         is the core purpose of this patchset
5859         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5860         dump the outgoing message queue, so nobody will get confused
5861         trying to send them or thinking stuff is pending to be sent
5862
5863         * bus/test.c: verbosity changes
5864
5865         * bus/driver.c: verbosity/assertion changes
5866
5867         * bus/dispatch.c: a bunch of little tweaks to get it working again
5868         because this patchset changes when/where you need to block.
5869
5870 2004-11-23  Havoc Pennington  <hp@redhat.com>
5871
5872         * test/glib/test-profile.c: modify to accept a plain_sockets
5873         argument in which case it will bench plain sockets instead of
5874         libdbus, for comparison purposes.
5875
5876 2004-11-22  Havoc Pennington  <hp@redhat.com>
5877
5878         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5879         threads for more time, so sysprof can get a grip on it.
5880
5881         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5882         pointless variable
5883
5884 2004-11-13  Havoc Pennington  <hp@redhat.com>
5885
5886         * test/glib/test-profile.c: fix this thing up a bit
5887
5888         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5889         preallocation sizes by a fair bit; not sure if this will be an
5890         overall performance win or not, but it does reduce reallocs.
5891
5892         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5893         the test hack that forced constant realloc if asserts are
5894         disabled, so we can profile sanely. Sprinkle in some
5895         _DBUS_UNLIKELY() which are probably pointless, but before I
5896         noticed the real performance problem I put them in.
5897         (_dbus_string_validate_utf8): micro-optimize this thing a little
5898         bit, though callgrind says it didn't help; then special-case
5899         ascii, which did help a lot; then be sure we detect nul bytes as
5900         invalid, which is a bugfix.
5901         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5902         superstition; use memset to nul the padding instead of a manual
5903         loop.
5904         (_dbus_string_get_length): inline this as a
5905         macro; it showed up in the profile because it's used for loop
5906         tests and so forth
5907
5908 2004-11-10  Colin Walters  <walters@verbum.org>
5909
5910         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5911         for extra paranoia.
5912
5913 2004-11-09  Colin Walters  <walters@verbum.org>
5914
5915         * dbus/dbus-string.c (_dbus_string_get_length): New
5916         function, writes DBusString to C buffer.
5917
5918         * dbus/dbus-string.h: Prototype it.
5919
5920         * dbus/dbus-message.c (dbus_message_type_to_string): New
5921         function, converts message type into C string.
5922
5923         * dbus/dbus-message.h: Prototype it.
5924
5925         * bus/selinux.c (bus_selinux_check): Take source pid,
5926         target pid, and audit data.  Pass audit data to
5927         avc_has_perm.
5928         (log_audit_callback): New function, appends extra
5929         audit information.
5930         (bus_selinux_allows_acquire_service): Also take
5931         service name, add it to audit data.
5932         (bus_selinux_allows_send): Also take message
5933         type, interface, method member, error name,
5934         and destination, and add them to audit data.
5935         (log_cb): Initialize func_audit.
5936         
5937         * bus/selinux.h (bus_selinux_allows_acquire_service)
5938         (bus_selinux_allows_send): Update prototypes 
5939
5940         * bus/services.c (bus_registry_acquire_service): Pass
5941         service name to bus_selinux_allows_acquire_service.
5942
5943         * bus/bus.c (bus_context_check_security_policy): Pass
5944         additional audit data.  Move assignment of dest
5945         to its own line.
5946
5947 2004-11-07  Colin Walters  <walters@verbum.org>
5948
5949         * dbus/dbus-transport-unix.c (do_authentication): Always
5950         initialize auth_completed.
5951         
5952 2004-11-07  Colin Walters  <walters@verbum.org>
5953
5954         * bus/bus.c (load_config): Break into three
5955         separate functions: process_config_first_time_only,
5956         process_config_every_time, and process_config_postinit.
5957         (process_config_every_time): Move call of
5958         bus_registry_set_service_context_table into
5959         process_config_postinit.
5960         (process_config_postinit): New function, does
5961         any processing that needs to happen late
5962         in initialization (and also on reload).
5963         (bus_context_new): Instead of calling load_config,
5964         open config parser here and call process_config_first_time_only
5965         and process_config_every_time directly.  Later, after
5966         we have forked but before changing UID,
5967         invoke bus_selinux_full_init, and then call
5968         process_config_postinit.
5969         (bus_context_reload_config): As in bus_context_new,
5970         load parse file inside here, and call process_config_every_time
5971         and process_config_postinit.
5972
5973         * bus/services.h, bus/services.c
5974         (bus_registry_set_service_context_table): Rename
5975         from bus_registry_set_sid_table.  Take string hash from config
5976         parser, and convert them here into SIDs.
5977
5978         * bus/config-parser.c (struct BusConfigParser): Have
5979         config parser only store a mapping of service->context
5980         string.
5981         (merge_service_context_hash): New function.
5982         (merge_included): Merge context string hashes instead
5983         of using bus_selinux_id_table_union.
5984         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5985         simply create a new string hash.
5986         (bus_config_parser_unref): Unref it.
5987         (start_selinux_child): Simply insert strings into hash,
5988         don't call bus_selinux_id_table_copy_over.
5989
5990         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5991         (bus_selinux_id_table_copy_over): Delete.
5992
5993 2004-11-03  Colin Walters  <walters@verbum.org>
5994
5995         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5996         variables.
5997         
5998 2004-11-03  Colin Walters  <walters@verbum.org>
5999
6000         * bus/test-main.c (test_pre_hook): Fix test logic,
6001         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6002
6003 2004-11-02  Colin Walters  <walters@redhat.com>
6004
6005         * bus/selinux.c (bus_selinux_init): Split into two functions,
6006         bus_selinux_pre_init and bus_selinux_post_init.
6007         (bus_selinux_pre_init): Just determine whether SELinux is
6008         enabled.
6009         (bus_selinux_post_init): Do everything else.
6010
6011         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6012         config file, and bus_selinux_post_init after.  This ensures that
6013         we don't lose the policyreload notification thread that
6014         bus_selinux_init created before forking previously.
6015         
6016         * bus/test-main.c (test_pre_hook): Update for split.
6017
6018 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6019
6020         Patch from Johan Fischer <linux@fischaz.com>
6021         
6022         * mono/doc/Makefile.am (install-data-local): Added directory
6023         install for DESTDIR
6024
6025 2004-10-29  Colin Walters  <walters@redhat.com>
6026
6027         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6028         parameter for fd to write pid to.       
6029
6030         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6031         
6032         * bus/bus.c (bus_context_new): Pass print_pid_fd
6033         to _dbus_become_daemon (bug #1720)
6034
6035 2004-10-29  Colin Walters  <walters@redhat.com>
6036
6037         Patch from Ed Catmur <ed@catmur.co.uk>
6038
6039         * mono/doc/Makefile.am (install-data-local): Handle
6040         DESTDIR.
6041
6042 2004-10-29  Colin Walters  <walters@redhat.com>
6043
6044         * bus/.cvsignore, qt/.cvsignore: Update.
6045
6046 2004-10-29  Colin Walters  <walters@redhat.com>
6047
6048         Patch from Kristof Vansant <de_lupus@pandora.be>
6049
6050         * configure.in: Detect Slackware.
6051         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6052         * bus/rc.messagebus.in: New file.
6053
6054 2004-10-29  Colin Walters  <walters@redhat.com>
6055
6056         * tools/dbus-monitor.c (filter_func): Return
6057         DBUS_HANDLER_RESULT_HANDLED in filter function
6058         for now.  See:
6059         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6060
6061 2004-10-29  Colin Walters  <walters@redhat.com>
6062
6063         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6064
6065         * bus/services.c (bus_registry_acquire_service): 
6066         Correctly retrieve service name from DBusString
6067         for printing.
6068
6069 2004-10-29  Colin Walters  <walters@redhat.com>
6070
6071         * dbus/dbus-glib.h: Update documentation to not
6072         refer to internal APIs.
6073
6074 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6075
6076         * mono/Arguments.cs (GetDBusTypeConstructor):
6077         type.UnderlyingSystemType will return "System.Byte" if you do it
6078         on "byte[]", which is not what we want.  So check the type.IsArray
6079         property and use System.Array instead.
6080
6081 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6082
6083         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6084         the DBusUserInfo structure since this is passed into the function.
6085         This would cause a double free when the function that allocated
6086         the structure would try to free it when an error occured.
6087
6088         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6089         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6090         for service activation to avoid 32bit/64bit parallel install issues
6091
6092 2004-10-21  Colin Walters  <walters@verbum.org>
6093
6094         * AUTHORS: Fix my email address, the @gnu.org one
6095         has been bouncing for some time.  Also add J5.
6096         
6097 2004-10-21  Colin Walters  <walters@verbum.org>
6098
6099         * dbus/dbus-transport-unix.c (do_authentication): Return
6100         authentication status to callers.
6101         (unix_handle_watch): If we completed authentication this round,
6102         don't do another read.  Instead wait until the next iteration,
6103         after we've read any pending data in the auth buffer.
6104         (unix_do_iteration): Ditto.
6105         (unix_handle_watch): Updated for new do_authentication prototype.
6106
6107 2004-10-18  Colin Walters  <walters@verbum.org>
6108
6109         * bus/selinux.c (bus_selinux_enabled): Handle
6110         --disable-selinux case.
6111         
6112 2004-10-18  Colin Walters  <walters@verbum.org>
6113
6114         * bus/selinux.h: Add bus_selinux_enabled.
6115         
6116         * bus/selinux.c (bus_selinux_enabled): Implement it.
6117         
6118         * bus/config-parser.c (struct include): Add
6119         if_selinux_enabled member.
6120         (start_busconfig_child): Parse if_selinux_enabled
6121         attribute for include.
6122         (bus_config_parser_content): Handle it.
6123
6124         * bus/session.conf.in, bus/system.conf.in: Add
6125         inclusion of context mapping to default config files;
6126         conditional on SELinux being enabled.
6127         
6128         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6129         
6130         * test/data/invalid-config-files/badselinux-1.conf, 
6131         test/data/invalid-config-files/badselinux-2.conf:
6132         Test files for bad syntax.
6133         
6134 2004-10-17  Colin Walters  <walters@verbum.org>
6135
6136         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6137         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6138         format specifier mismatches.
6139
6140 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6141
6142         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6143         format string.
6144
6145         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6146         pointer (bug #1540, Leonardo Boiko).
6147
6148 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6149
6150         * mono/BusDriver.cs: Changed BusDriver struct to remove
6151         the ServiceCreated and ServiceDeleted events and replace them
6152         with the new ServiceOwnerChanged event.
6153
6154         * mono/example/BusListener.cs: Added a new example program,
6155         which listens for and reports any ServiceOwnerChanged events
6156         on the bus driver.
6157
6158         * mono/example/Makefile.am (DESTDIR): Build changes for the
6159         new BusListener.cs example.
6160
6161 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6162
6163         * bus/signals.c (bus_match_rule_parse): validate the components of
6164         match rules (bug #1439).
6165
6166         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6167
6168 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6169
6170         * doc/dbus-specification.xml: document ServiceOwnerChanged
6171         signal.
6172         
6173         * bus/driver.c, bus/driver.h, bus/services.c: Use
6174         ServiceOwnerChanged signal instead of ServiceCreated and
6175         ServiceDeleted.
6176         
6177         * bus/dispatch.c: update testcase for the new signal.
6178
6179 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6180
6181         Patch from Nat Friedman <nat@novell.com>
6182
6183         * mono/Makefile.am: A number of small build fixes to allow "make
6184         distcheck" to succeed.
6185
6186         * mono/example/Makefile.am: "make distcheck" fixes.
6187
6188         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6189         key in @srcdir@.
6190
6191         * test/Makefile.am: "make distcheck" fixes.
6192
6193 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6194
6195         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6196
6197         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6198
6199         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6200         messages after the first one (bug #1389).
6201         
6202         * bus/dispatch.c (check_double_hello_message): add a test case for
6203         the double hello message bug.
6204         (check_existent_service_activation): fix check of spawning error.
6205         
6206 2004-09-16  David Zeuthen  <david@fubar.dk>
6207
6208         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6209
6210 2004-09-12  David Zeuthen  <david@fubar.dk>
6211
6212         Patch from Kay Sievers <kay.sievers@vrfy.org>
6213
6214         * bus/bus.c (bus_context_new):
6215         * bus/bus.h:
6216         * bus/main.c (usage)
6217         (main):
6218         Add commandline option --nofork to override configuration file
6219         setting.
6220
6221 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6222
6223         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6224         compilers don't like it (bug #974).
6225
6226 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6227
6228         * qt/connection.*: Applied patch by Jérôme Lodewyck
6229         <lodewyck@clipper.ens.fr> to integrate an existing
6230         connection into the Qt eventloop
6231
6232 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6233
6234         * mono/BusDriver.cs: Added.  This is a class for interacting with
6235         the org.freedesktop.DBus service.
6236
6237         * mono/Message.cs: Added a mechanism to expose the message that is
6238         currently being dispatched via the static Message.Current
6239         property.  Added Message.Sender and Message.Destination
6240         properties.
6241
6242         * mono/Handler.cs: Expose the dispatched message via
6243         Message.Current when handling method calls.
6244
6245         * mono/Service.cs: Expose the dispatched message via
6246         Message.Current when handling signal emissions.
6247         
6248         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6249         Connection.BaseService property.
6250
6251 2004-08-28  Havoc Pennington  <hp@redhat.com>
6252
6253         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6254
6255         More fixes from Steve Grubb
6256         
6257         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6258         (_dbus_listen_tcp_socket): fix fd leak
6259
6260         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6261         EINTR to a bit lower in the code
6262
6263 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6264
6265         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6266         TRUE if we are inquiring about the existence of the built-in
6267         org.freedesktop.DBus service.
6268
6269 2004-08-25  John Palmieri  <johnp@redhat.com>
6270         * bus/config-parser.c:
6271         (struct PolicyType): Add POLICY_CONSOLE
6272         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6273         (start_busconfig_child): Sets up console element when
6274         <policy at_console=""> is encountered in a policy file
6275         (append_rule_from_element): Convert console elements to console
6276         rules.
6277
6278         * bus/policy.c: 
6279         (bus_policy_create_client_policy): Add console rules to the client
6280         policy based on if the client is at the console
6281         (bus_policy_append_console_rule): New function for adding a
6282         console rule to a policy
6283         (bus_policy_merge): Handle console rule merging
6284
6285         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6286         where we check for console user files
6287         
6288         * dbus/dbus-sysdeps.c:
6289         (_dbus_file_exists): New function which checks if the given
6290         file exists
6291         (_dbus_user_at_console): New function which does the system
6292         specific process of checking if the user is at the console
6293
6294         * dbus/dbus-userdb.c:
6295         (_dbus_is_console_user): New function converts a UID to user name
6296         and then calls the system specific _dbus_user_at_console to 
6297         see if the user is at the console and therefor a console user
6298
6299 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6300
6301         * bus/config-parser.c (set_limit):
6302         * bus/dbus-daemon-1.1.in:
6303         * test/data/valid-config-files/many-rules.conf: set the
6304         max_match_rules_per_connection limt from the config file. 
6305
6306         * doc/busconfig.dtd: update the DTD.
6307
6308         * bus/driver.c: remove some unused variables.
6309
6310 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6311
6312         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6313         it's been replaced by dbus_g_bus_get
6314
6315 2004-08-23  Colin Walters  <walters@redhat.com>
6316
6317         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6318
6319         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6320
6321         * bus/selinux.c: Create a thread for policy reload notification.
6322         (bus_selinux_get_policy_root): Implement.
6323
6324         * bus/config-parser.c (start_busconfig_child)
6325         (bus_config_parser_content): Support SELinux-root relative
6326         inclusion.
6327
6328         * configure.in <HAVE_SELINUX>: Add -lpthread.
6329         
6330         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6331         (test_post_hook): Move memory checking into here.
6332         (test_pre_hook, test_post_hook): Move SELinux checks in
6333         here, but conditional on a DBUS_TEST_SELINUX environment
6334         variable.  Unfortunately we can't run the SELinux checks
6335         as a normal user, since they won't have any permissions
6336         for /selinux.  So this will have to be tested manually
6337         for now, until we have virtualization for most of
6338         libselinux.
6339         
6340 2004-08-23  Havoc Pennington  <hp@redhat.com>
6341
6342         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6343         drop supplementary groups, suggested by Steve Grubb
6344
6345 2004-08-20  Colin Walters  <walters@redhat.com>
6346
6347         * bus/config-parser.c (start_busconfig_child): Remove some unused
6348         variables.
6349         
6350         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6351         warning.
6352
6353 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6354
6355         * configure.in: If --enable-mono is passed in, if we can't find
6356         mono error out.
6357
6358         * mono/Makefile.am: Use /gacutil to install assemblies into the
6359         GAC and not /root.
6360
6361 2004-08-12  Havoc Pennington  <hp@redhat.com>
6362
6363         * NEWS: update for 0.22
6364
6365         * configure.in: release 0.22
6366
6367 2004-08-11  Colin Walters  <walters@redhat.com>
6368
6369         * tools/dbus-send.c (main, usage): Add --reply-timeout
6370         argument.
6371
6372 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6373
6374         * bus/bus.c (process_config_first_time_only): get rid of an unused
6375         DBusError that was causing a memoy leak (bug #989).
6376
6377         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6378         fix compilation on Solaris/Forte C (bug #974)
6379
6380         * bus/main.c (main): plug two minuscule memleaks.
6381
6382 2004-08-10  Havoc Pennington  <hp@redhat.com>
6383
6384         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6385
6386 2004-08-09  Havoc Pennington  <hp@redhat.com>
6387
6388         * COPYING: switch to Academic Free License version 2.1 instead of
6389         2.0, to resolve complaints about patent termination clause.
6390
6391 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6392
6393         * README: added documentation for the --enable-python 
6394         configure switch.
6395
6396 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6397
6398         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6399         _unref in the SELinux support.
6400
6401         * doc/busconfig.dtd: update DTD for SELinux support.
6402
6403         * bus/config-loader-libxml.c: fix error handler and parser
6404         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6405
6406         * configure.in: remove the warning about libxml2.
6407
6408         * dbus/dbus-bus.c: silence doxygen warning.
6409
6410 2004-07-31  Colin Walters  <walters@redhat.com>
6411
6412         * configure.in: Move #error in SELinux check to its own line.
6413
6414 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6415
6416         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6417         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6418         dbus_error_set.
6419
6420         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6421         broken by the change in the _SET_OOM macros.
6422
6423 2004-07-31  Colin Walters  <walters@redhat.com>
6424
6425         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6426         BUS_SET_OOM.
6427
6428 2004-07-31  Colin Walters  <walters@redhat.com>
6429
6430         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6431         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6432         AC_MSG_CHECKING.
6433
6434 2004-07-24  Havoc Pennington  <hp@redhat.com>
6435
6436         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6437
6438         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6439         functionality
6440
6441         * configure.in: add --enable-selinux
6442         
6443         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6444
6445         * bus/main.c (main): initialize and shut down selinux
6446
6447         * bus/connection.c: store SELinux ID on each connection, to avoid 
6448         repeated getting of the string context and converting it into 
6449         an ID
6450
6451         * bus/bus.c (bus_context_get_policy): new accessor, though it
6452         isn't used
6453         (bus_context_check_security_policy): check whether the security
6454         context of sender connection can send to the security context of
6455         recipient connection
6456
6457         * bus/config-parser.c: add parsing for <selinux> and <associate>
6458         
6459         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6460         implement dbus_connection_get_unix_fd()
6461
6462         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6463         function, used by the selinux stuff
6464         
6465 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6466
6467         * bus/config-loader-libxml.c: complete the implementation of
6468         libxml backend for config file loader. Doesn't work with full OOM
6469         test yet. 
6470         
6471         * configure.in: change error when selecting libxml into a warning.
6472         
6473         * test/data/invalid-config-files: add two non-well-formed XML
6474         files. 
6475         
6476         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6477         
6478         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6479         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6480         be necessary to read all the buffer. (bug #894)
6481
6482         * bus/activation.c (bus_activation_activate_service): fix a
6483         potential assertion failure (bug #896). Small optimization in the
6484         case of auto-activation messages.
6485
6486         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6487         add test case for byte-through-vararg bug (#901). patch by Kimmo
6488         Hämäläinen. 
6489
6490 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6491
6492         * python/dbus.py:
6493         * python/dbus_bindings.pyx.in:
6494         Add dbus.init_gthreads (), allow emit_signal to pass
6495         arguments to the signal.
6496         
6497 2004-07-24  Havoc Pennington  <hp@redhat.com>
6498
6499         * AUTHORS: add some people, not really comprehensively, let me
6500         know if I missed you
6501
6502 2004-07-24  Havoc Pennington  <hp@redhat.com>
6503
6504         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6505         Owen
6506
6507         * test/Makefile.am (DIST_SUBDIRS): here also
6508
6509 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6510
6511         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6512         breaking build on Solaris, reported by Farhad Saberi on the ML.
6513
6514         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6515         va_arg invocation to account for integer promotion in the case of
6516         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6517
6518         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6519         _dbus_list_get_first_link, not _dbus_list_get_first.
6520
6521         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6522
6523         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6524         handler functions so that the asserts in _dbus_object_subtree_unref
6525         do not fail.
6526
6527         * dbus/dbus-transport-unix.c (do_reading):
6528         _dbus_transport_queue_messages return value is of type
6529         dbus_bool_t, not DBusDispatchStatus.
6530         
6531 2004-07-19  David Zeuthen  <david@fubar.dk>
6532
6533         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6534
6535         * bus/dispatch.c:
6536         (check_get_connection_unix_user): Debug says GetProperty; but the
6537         method is called GetConnectionUnixUser
6538         (check_get_connection_unix_process_id): New function
6539         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6540         also call check_get_connection_unix_process_id()
6541         
6542         * bus/driver.c:
6543         (bus_driver_handle_get_connection_unix_process_id): New function,
6544         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6545         interface
6546         
6547         * dbus/dbus-auth.c:
6548         (handle_server_data_external_mech): Set pid from the credentials
6549         obtained from the socket
6550         
6551         * dbus/dbus-connection.c:
6552         (dbus_connection_get_unix_process_id): New function
6553         
6554         * dbus/dbus-connection.h: 
6555         Add prototype for dbus_connection_get_unix_process_id
6556         
6557         * dbus/dbus-transport.c:
6558         (_dbus_transport_get_unix_process_id): New function
6559         
6560         * dbus/dbus-transport.h:
6561         Add prototype for _dbus_transport_get_unix_process_id
6562         
6563 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6564
6565         * dbus/dbus-message.c: Message counter fix, patch by Christian
6566         Hammond <chipx86@gnupdate.org>
6567
6568 2004-07-18  Seth Nickell  <seth@gnome.org>
6569
6570         * python/dbus.py:
6571         * python/dbus_bindings.pyx.in:
6572         * python/tests/test-client.py:
6573
6574         Add dbus.ByteArray and dbus_bindings.ByteArray
6575         types so that byte streams can be passed back.
6576
6577         Give jdahlin the heaps of credit that are so
6578         rightfully his.
6579         
6580 2004-07-12  Seth Nickell  <seth@gnome.org>
6581
6582         * python/dbus.py:
6583
6584         Add message argument to the default object_method_handler
6585         function.
6586         
6587         * python/dbus_bindings.pyx.in:
6588
6589         Automatically return NIL when passed an empty list
6590         (we can't pass back a list since lists are typed
6591         and we don't have any idea what type the the client
6592         intended the list to be... :-( )
6593         
6594 2004-07-10  Seth Nickell  <seth@gnome.org>
6595
6596         * python/examples/Makefile.am:
6597
6598         Fix distcheck breakage caused by new examples.
6599
6600 2004-07-10  Seth Nickell  <seth@gnome.org>
6601
6602         * python/dbus.py:
6603
6604         Add "message" argument to service-side dbus.Object
6605         methods. This will break existing services written
6606         using the python bindings, but will allow extraction
6607         of all the message information (e.g. who its from).
6608
6609         Add improved "object oriented" signal handling/emission.
6610         
6611         * python/examples/example-service.py:
6612
6613         Nix this example.
6614         
6615         * python/examples/example-signal-emitter.py:
6616         * python/examples/example-signal-recipient.py:
6617
6618         Two new examples that show how to emit and receive
6619         signals using the new APIs.
6620         
6621         * python/examples/example-signals.py:
6622         * python/examples/gconf-proxy-service.py:
6623         * python/examples/gconf-proxy-service2.py:
6624
6625         Add "message" argument to service methods.
6626
6627 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6628
6629         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6630         * dbus/bus.c (dbus_bus_get_unix_user)
6631         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6632         method of org.freedesktop.DBus interface.
6633
6634         * bus/dispatch.c: test case
6635
6636 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6637
6638         * python/Makefile.am: switched include directory from glib/ to dbus/
6639         since dbus-glib.h moved
6640  
6641 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6642
6643         * configure.in: prevent building the gcj stuff and libxml loader
6644         since they are broken.
6645
6646 2004-06-20  Havoc Pennington  <hp@redhat.com>
6647
6648         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6649         codes from the dbus error names
6650         
6651         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6652         as dbus/dbus-glib.h and that breakage is now visible due to 
6653         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6654         
6655         * glib/dbus-glib.h: s/gproxy/g_proxy/
6656
6657         * dbus/dbus-shared.h: new header to hold stuff shared with
6658         binding APIs
6659         
6660         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6661         than dbus-errors.h
6662
6663         * glib/dbus-glib.h (dbus_set_g_error): move to
6664         dbus-glib-lowlevel.h
6665
6666         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6667         of stuff to enable this
6668
6669         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6670
6671         * a bunch of other changes with the same basic "separate glib 
6672         bindings from dbus.h" theme
6673         
6674 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6675
6676         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6677
6678         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6679
6680 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6681
6682         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6683         the reply value of the ServiceExists message.
6684
6685 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6686
6687         * python/dbus_bindings.pyx.in: No longer need to parse path
6688         elements and pass them as arrays of strings.  The C API now
6689         accepts plain path strings.
6690         (_build_parsed_path): removed 
6691
6692 2004-06-07  Havoc Pennington  <hp@redhat.com>
6693
6694         * doc/TODO: remove auto-activation item since it's done; sort
6695         items by importance/milestone
6696
6697 2004-06-07  Havoc Pennington  <hp@redhat.com>
6698
6699         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6700         random signature when using REQUIRED_FIELDS (this hack won't work
6701         in the long term)
6702
6703         * dbus/dbus-message.c: change the signature to be a header field,
6704         instead of message->signature special-case string. Incremental
6705         step forward. Then we can fix up code to send the signature in the
6706         message, then fix up code to validate said signature, then fix up
6707         code to not put the typecodes inline, etc.
6708         (load_one_message): don't make up the signature after the fact
6709         (decode_header_data): require signature field for the known
6710         message types
6711
6712         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6713
6714         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6715
6716 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6717
6718         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6719
6720         * mono/Handler.cs: Updated to follow new path argument for
6721         (un-)registering objects.
6722
6723         * mono/example/Makefile.am:
6724         * mono/Makefile.am:
6725         * configure.in: Bumped required version for mono and use new -pkg
6726         syntax for deps
6727
6728 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6729
6730         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6731         registration functions take the path argument as char* instead of
6732         char**.
6733
6734         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6735         split off the path decompostion part of
6736         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6737         warnings. 
6738
6739         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6740         
6741 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6742  
6743         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6744         machine approach.  A state is implemented as a function that
6745         handles incoming events as specified for that state.
6746         
6747         * doc/dbus-specification.xml: Update auth protocol state machine
6748         specification to match implementation.  Remove some leftover
6749         base64 examples.
6750
6751 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6752
6753         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6754         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6755         quiet doxygen.
6756
6757         * Doxyfile.in: remove deprecated options.
6758
6759         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6760         glib/test-thread.h, glib/test-thread-client.c,
6761         glib/test-thread-server.c, glib/test-profile.c,
6762         glib/test-dbus-glib.c: remove these unused files.
6763
6764 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6765
6766         * dbus/dbus-object-tree.c
6767         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6768         non-fallback handlers (bug #684).
6769         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6770         (find_subtree_recurse): report wether the returned subtree is an
6771         exact match or a "fallback" match higher up in the tree.
6772         (object_tree_test_iteration): update test case.
6773
6774 2004-06-01  Seth Nickell  <seth@gnome.org>
6775
6776         * python/dbus_bindings.pyx.in:
6777         * python/tests/test-client.py:
6778
6779         Round off basic type support. Add dicts (yay!), and 
6780         remaining array types.
6781
6782         Make MessageIter more general so it works for dicts too.
6783
6784         Mark all loop variables as C integers.
6785         
6786 2004-05-31  Havoc Pennington  <hp@redhat.com>
6787
6788         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6789         "in" before "out"
6790
6791         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6792
6793         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6794         option that runs the tests, and start filling in some code
6795         including for starters just dumping the interfaces to stdout
6796
6797         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6798
6799         * test/data/valid-introspection-files/lots-of-types.xml: test of
6800         an example introspection file
6801
6802         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6803         "node" (I think...)
6804
6805 2004-05-31  Seth Nickell  <seth@gnome.org>
6806
6807         * python/dbus_bindings.pyx.in:
6808         * python/tests/test-client.py:
6809
6810         Test Suite: 1
6811         Python Bindings: 0
6812
6813         Fix string array memory trashing bug... oops...
6814
6815 2004-05-30  Seth Nickell  <seth@gnome.org>
6816
6817         * python/dbus.py:
6818
6819         Add a nicer-but-less-flexible alternate API for handling 
6820         calls to virtual objects in dbus.ObjectTree.
6821
6822         Screw up the argument order to the dbus.Object constructor
6823         for consistency with dbus.ObjectTree (and to make dbus_methods
6824         optional for future extension)
6825         
6826         * python/examples/Makefile.am:
6827         * python/examples/gconf-proxy-service.py:
6828         * python/examples/gconf-proxy-service2.py:
6829
6830         Alternate implementation of gconf-proxy-service using the
6831         nicer dbus.ObjectTree API.
6832         
6833         * python/examples/example-service.py:
6834         * python/tests/test-server.py
6835
6836         Reverse the argument order to deal with dbus.Object constructor
6837         changes.
6838         
6839 2004-05-30  Seth Nickell  <seth@gnome.org>
6840
6841         * python/examples/example-client.py:
6842         * python/examples/example-service.py:
6843
6844         Take it back. Lists seem to work but they're broken
6845         in the test suite. Make the base examples use
6846         lists (works fine).
6847
6848 2004-05-30  Seth Nickell  <seth@gnome.org>
6849
6850         * python/dbus_bindings.pyx.in:
6851         * python/tests/test-client.py:
6852
6853         Add some more tests and fix errors that crop up.
6854         Unfortunately, currently it seems like marshalling
6855         and unmarshalling of lists is completely broken :-(
6856
6857 2004-05-30  Seth Nickell  <seth@gnome.org>
6858
6859         * python/dbus_bindings.pyx.in:
6860
6861         Add support for ObjectPath type.
6862
6863         * python/dbus.py:
6864
6865         Refactor message handling code to a common function.
6866         
6867         * python/tests/test-client.py:
6868         * python/tests/test-server.py:
6869
6870         Add tests that check to make sure values of all types
6871         can be echoed from a service w/o mangling.
6872         
6873 2004-05-29  Seth Nickell  <seth@gnome.org>
6874
6875         * python/dbus.py:
6876
6877         Add ObjectTree class which allows implementation
6878         of trees of "virtual" objects. Basically the python
6879         wrapper for "register_fallback".
6880         
6881         * python/examples/Makefile.am
6882         * python/examples/gconf-proxy-client.py:
6883         * python/examples/gconf-proxy-service.py:
6884
6885         Implement a simple GConf proxy service that supports
6886         get/set on string and int GConf keys using the ObjectTree.
6887         
6888 2004-05-29  Seth Nickell  <seth@gnome.org>
6889
6890         * python/dbus.py:
6891         * python/examples/example-client.py:
6892         * python/examples/example-service.py:
6893         * python/examples/list-system-services.py:
6894
6895         Add SessionBus, SystemBus and ActivationBus classes
6896         so you don't need to know the special little BUS_TYPE
6897         flag.
6898         
6899 2004-05-29  Havoc Pennington  <hp@redhat.com>
6900
6901         * bus/config-parser.c (process_test_valid_subdir): temporarily
6902         stop testing config parser OOM handling, since expat has issues
6903         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6904
6905         * bus/dbus-daemon-1.1.in: change requested_reply to
6906         send_requested_reply/receive_requested_reply so we can send the
6907         replies, not just receive them.
6908
6909         * bus/config-parser.c: parse the new
6910         send_requested_reply/receive_requested_reply
6911
6912         * bus/policy.c (bus_client_policy_check_can_send): add
6913         requested_reply argument and use it
6914
6915         * bus/bus.c (bus_context_check_security_policy): pass through
6916         requested_reply status to message send check
6917
6918         * bus/system.conf.in: adapt to requested_reply change
6919         
6920 2004-05-28  Havoc Pennington  <hp@redhat.com>
6921
6922         * test/glib/test-service-glib.c (main): remove unused variable
6923
6924         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6925
6926         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6927         from the enum, no longer in use.
6928
6929         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6930         works right.
6931
6932         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6933         whether error_name passed in is a valid error name.
6934
6935 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6936
6937         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6938         OBJECT_PATH and OBJECT_PATH_ARRAY
6939
6940 2004-05-28  Seth Nickell  <seth@gnome.org>
6941
6942         * python/examples/Makefile.am:
6943
6944         Forget to add Makefile.am. Do not pass go.
6945
6946 2004-05-28  Michael Meeks  <michael@ximian.com>
6947
6948         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
6949         fix no int64 case.
6950
6951         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6952
6953         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6954         (_dbus_message_iter_get_basic_type_array): impl.
6955         drastically simplify ~all relevant _get methods to use these.
6956         (_dbus_message_iter_append_basic_array),
6957         (dbus_message_iter_append_basic): impl
6958         drastically simplify ~all relevant _append methods to use these.
6959
6960         * dbus/dbus-message-builder.c (parse_basic_type) 
6961         (parse_basic_array, lookup_basic_type): impl.
6962         (_dbus_message_data_load): prune scads of duplicate /
6963         cut & paste coding.
6964
6965         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
6966         (_dbus_demarshal_basic_type): implement,
6967         (demarshal_and_validate_len/arg): beef up debug.
6968         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6969
6970 2004-05-27  Seth Nickell  <seth@gnome.org>
6971
6972         * configure.in:
6973         * python/Makefile.am:
6974
6975         Include the example python apps in the tarball.
6976         
6977         * python/examples/list-system-services.py
6978
6979         Add a python new example that fetches the list of services
6980         from the system bus.
6981         
6982 2004-05-27  Seth Nickell  <seth@gnome.org>
6983
6984         * python/dbus.py:
6985         * python/dbus_bindings.pyx.in:
6986
6987         Fix failure to notify that a signal was not handled,
6988         resulted in hung functions.
6989         
6990 2004-05-25  Colin Walters  <walters@redhat.com>
6991
6992         * tools/dbus-monitor.c (main): Monitor all types of messages.
6993
6994 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
6995
6996         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6997         which unregisters the object path and disposes the handler.
6998
6999 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7000  
7001         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7002          
7003         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7004         operands to && so we call dbus_message_iter_next () for the last
7005         argument also.
7006
7007 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7008
7009         * dbus/dbus-object-tree.c
7010         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7011         children even if the requested path isn't registered.
7012         (object_tree_test_iteration): test object_tree_list_registered.
7013
7014         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7015         it to 0.
7016         
7017 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7018
7019         * doc/TODO: Remove resolved items.
7020
7021         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7022         field.
7023         
7024         * bus/connection.c (bus_connections_expect_reply): Enforce the
7025         per-connection limit on pending replies.
7026         
7027         Patch from Jon Trowbridge <trow@ximian.com>:
7028  
7029         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7030         up a watch that triggers a config reload when one end of the pipe
7031         becomes readable.
7032         (signal_handler): Instead of doing the config reload in our SIGHUP
7033         handler, just write to the reload pipe and let the associated
7034         watch handle the reload when control returns to the main loop.
7035  
7036         * bus/driver.c (bus_driver_handle_reload_config): Added.
7037         Implements a ReloadConfig method for requesting a configuration
7038         file reload via the bus driver.
7039  
7040 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7041
7042         * HACKING: Updated release instructions concerning the wiki page.
7043
7044 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7045
7046         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7047         filter against auth->allowed_mechs; we only add allowed mechs in
7048         record_mechanisms().
7049  
7050         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7051         ALLOWED_MECHS to auth-script format so we can set the list of
7052         allowed mechanisms.
7053  
7054         * data/auth/client-out-of-mechanisms.auth-script: New test to
7055         check client disconnects when it is out of mechanisms to try.
7056  
7057         * dbus/dbus-auth.c (process_command): Remove check for lines
7058         longer that 1 MB; we only buffer up maximum 16 kB.
7059  
7060         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7061         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7062         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7063         assume there might be unused bytes.
7064  
7065         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7066         client-out-of-mechs, it is handled in process_reject(). Move check
7067         for max failures to send_rejected(), as it's a server-only thing.
7068
7069         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7070         send_auth(), send_data(), send_rejected(), send_error(),
7071         send_ok(), send_begin() and send_cancel().
7072
7073 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7074
7075         Remove base64 encoding, replace with hex encoding. Original patch
7076         from trow@ximian.com, added error handling.
7077
7078         * dbus/dbus-string.c (_dbus_string_base64_encode)
7079         (_dbus_string_base64_decode): Remove.
7080         (_dbus_string_hex_decode): Add end_return argument so we can
7081         distinguish between OOM and invalid hex encoding.
7082         (_dbus_string_test): Remove base64 tests and add test case for
7083         invalid hex.
7084
7085         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7086         Replace base64 with hex.
7087
7088         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7089         for invalid hex encoded data in auth protocol.
7090
7091 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7092
7093         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7094         leak.
7095
7096 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7097
7098         * mono/dbus-sharp.dll.config.in: Added for GAC
7099         * mono/dbus-sharp.snk: Added for GAC
7100         * mono/Assembly.cs.in: Added for GAC
7101         * mono/Makefile.am: Changes for GAC installation        
7102         * configure.in: Added refs for dbus-sharp.dll.config.in and
7103         Assembly.cs.in. More fixes for mono testing
7104         * mono/example/Makefile.am: Changed var to CSC
7105         * Makefile.am: Changed flag name to DBUS_USE_CSC
7106
7107 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7108
7109         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7110         * mono/doc/*: Added documentation framework
7111         * configure.in: Added monodoc check
7112         * README: Added description of mono configure flags
7113
7114 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7115
7116         * doc/dbus-specification.xml: Added a "Required" column to the 
7117         header fields table and changed the "zero or more" verbage in
7118         the above paragraph to read "The header must contain the required 
7119         named header fields and zero or more of the optional named header 
7120         fields".
7121         * test/data/invalid-messages/*.message: Added the required PATH 
7122         named header field to the tests so that they don't fail on 
7123         'Missing path field'
7124
7125 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7126
7127         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7128         the stack by implicitly defining variable and parameter types and
7129         removing the hack of defining C pointers as python objects and later
7130         casting them.
7131
7132 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7133
7134         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7135
7136 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7137
7138         * mono/DBusType/Dict.cs: Handle empty dicts
7139         * mono/DBusType/Array.cs: Handle empty arrays
7140         * mono/Arguments.cs: Handle empty arguments
7141
7142 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7143
7144         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7145         field
7146
7147 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7148
7149         * test/data/valid-messages/standard-*.message: Update message
7150         test scripts to new header field names.
7151
7152 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7153
7154         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7155         overflow to times_we_did_each_thing array which would chop off the
7156         first character of the failure_dir string. Increased the size of
7157         the array to 7 to reflect the number of random mutation functions
7158         we have.
7159
7160 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7161
7162         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7163         unix_server->watch here, it is unreffed in disconnect.
7164         (_dbus_server_new_for_tcp_socket): convert NULL host to
7165         "localhost" here so we don't append NULL to address.
7166         
7167         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7168         various addresses, including tcp with no explicit host.
7169
7170 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7171
7172         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7173         fix incorrect setting of .name_offset in the HeaderField (it was
7174         off by two bytes, positioned right after the name and typecode)
7175
7176         * bus/bus.c (bus_context_new, bus_context_unref): test before
7177         calling dbus_server_free_data_slot and _dbus_user_database_unref
7178         in case of an error.
7179
7180         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7181         by libdbus-gtool.
7182
7183 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7184
7185         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7186         _dbus_poll() instead of select().
7187
7188 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7189
7190         * bus/main.c (signal_handler): Reload the configuration files
7191         on SIGHUP.
7192         (main): Set up our SIGHUP handler.
7193
7194         * bus/bus.c (struct BusContext): Store the config file, user and
7195         fork flag in the BusContext.
7196         (process_config_first_time_only): Added.  Contains the code
7197         (previously in bus_context_new) for setting up the BusContext from
7198         the BusConfigParser that should only be run the first time the
7199         config files are read.
7200         (process_config_every_time): Added.  Contains the code (previously
7201         in bus_context_new) for setting up the BusContext from the
7202         BusConfigParser that should be run every time the config files are
7203         read.
7204         (load_config): Added.  Builds a BusConfigParser from the config
7205         files and passes the resulting structure off to
7206         process_config_first_time_only (assuming this is the first time)
7207         and process_config_every_time.
7208         (bus_context_new): All of the config-related code has been moved
7209         to process_config_first_time_only and process_config_every_time.
7210         Now this function just does the non-config-related initializations
7211         and calls load_config.
7212         (bus_context_reload_config): Added.
7213
7214 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7215
7216         * bus/driver.c (bus_driver_handle_get_service_owner):
7217         implement a GetServiceOwner method.
7218         * doc/dbus-specification.xml: document it.
7219         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7220         
7221         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7222         implement, using the bus GetServiceOwner method.
7223
7224         * test/glib/test-dbus-glib.c:
7225         use dbus_gproxy_new_for_service_owner so that we can receive the
7226         signal. 
7227
7228 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7229
7230         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7231         dbus/dbus-message.c, dbus/dbus-protocol.h
7232         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7233
7234         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7235         dbus/dbus-message.c, dbus/dbus-protocol.h
7236         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7237
7238         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7239         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7240         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7241
7242         * doc/dbus-specification.xml (Header Fields Table):
7243         s/SERVICE/DESTINATION
7244         s/SENDER_SERVICE/SENDER
7245
7246
7247 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7248
7249         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7250         a few seconds.
7251
7252 2004-04-13  Michael Meeks  <michael@ximian.com>
7253
7254         * glib/dbus-gobject.c (handle_introspect): split out
7255         (introspect_properties): this.
7256         (handle_introspect): implement this.
7257
7258         * test/glib/Makefile.am: use the absolute path so the bus
7259         daemon's chdir ("/") doesn't kill us dead.
7260
7261         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7262
7263 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7264
7265         * bus/config-parser.c (struct BusConfigParser): Added
7266         included_files field.
7267         (seen_include): Added.  Checks whether or not a file has already
7268         been included by any parent BusConfigParser.
7269         (bus_config_parser_new): Copy the parent's included_files.
7270         (include_file): Track which files have been included, and fail on
7271         circular inclusions.
7272         (process_test_valid_subdir): Changed printf to report if we are
7273         testing valid or invalid conf files.
7274         (all_are_equiv): Changed printf to be a bit clearer about
7275         what we are actually doing.
7276         (bus_config_parser_test): Test invalid configuration files.
7277
7278 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7279
7280         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7281         argument.  If non-null, the newly-constructed BusConfigParser will
7282         be initialized with the parent's BusLimits instead of the default
7283         values.
7284         (include_file): When including a config file, pass in
7285         the current parser as the parent and then copy the BusLimits
7286         from the included BusConfigParser pack to the current parser.
7287         (process_test_valid_subdir): Renamed from process_test_subdir.
7288         (process_test_equiv_subdir): Added.  Walks through a directory,
7289         descending into each subdirectory and loading the config files
7290         it finds there.  If any subdirectory contains two config files
7291         that don't produce identical BusConfigParser structs, fail.
7292         For now, the BusConfigParser's BusPolicies are not compared.
7293         (bus_config_parser_test): Call both process_test_valid_subdir and
7294         process_test_equiv_subdir.
7295
7296         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7297         argument and pass it along to the call to bus_config_parser_new.
7298         Also made a few small changes to allow this code to compile.
7299
7300         * bus/config-loader-expat.c (bus_config_load): Take a parent
7301         argument and pass it along to the call to bus_config_parser_new.
7302
7303         * bus/bus.c (bus_context_new): Load the config file
7304         with a NULL parent argument.
7305
7306 2004-03-29  Michael Meeks  <michael@ximian.com>
7307
7308         * glib/dbus-gobject.c (introspect_properties): split
7309         out, fix mangled 'while' flow control.
7310         (introspect_signals): implement.
7311         (handle_introspect): update.
7312
7313 2004-03-29  Michael Meeks  <michael@ximian.com>
7314
7315         * glib/dbus-gobject.c (set_object_property): split out / 
7316         re-work, use the property type, and not the message type(!)
7317         (get_object_property): ditto.
7318
7319         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7320         (dbus_gvalue_marshal): make this code re-usable, needed
7321         for signals too, also on both proxy and server side.
7322         Re-write for more efficiency / readability.
7323
7324 2004-03-29  Michael Meeks  <michael@ximian.com>
7325
7326         * dbus/dbus-message.c
7327         (dbus_message_new_error_printf): impl.
7328
7329         * dbus/dbus-connection.c
7330         (dbus_connection_unregister_object_path): fix warning.
7331
7332         * configure.in: fix no-mono-installed situation.
7333
7334 2004-03-27  Havoc Pennington  <hp@redhat.com>
7335
7336         Patch from Timo Teräs:
7337         
7338         * tools/dbus-send.c (main): if --print-reply, assume type is
7339         method call; support boolean type args
7340         
7341         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7342         bunch of memleak and logic bugs
7343         
7344 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7345
7346         * mono/Arguments.cs:
7347         * mono/Introspector.cs:
7348         * mono/Handler.cs:
7349         * mono/InterfaceProxy.cs:
7350         * mono/Message.cs
7351         * mono/ProxyBuilder.cs:
7352         * mono/Service.cs:
7353         Added InterfaceProxy class to avoid building proxies for every
7354         object.
7355
7356         * dbus-message.h:
7357         * dbus-message.c (dbus_message_append_args_valist)
7358         (dbus_message_iter_get_object_path)
7359         (dbus_message_iter_get_object_path_array)
7360         (dbus_message_iter_append_object_path)
7361         (dbus_message_iter_append_object_path_array):
7362         Added object_path iter functions to handle OBJECT_PATH arguments
7363         
7364 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7365
7366         First checkin of mono bindings.
7367         * configure.in:
7368         * Makefile.am:
7369         Build stuff for the bindings
7370         * dbus-sharp.pc.in: Added for pkgconfig
7371         
7372 2004-03-21  Havoc Pennington  <hp@redhat.com>
7373
7374         * test/test-service.c (main): remove debug spew
7375
7376 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7377
7378         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7379         arrays
7380
7381         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7382         (dbus_message_iter_init_array_iterator)
7383         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7384         indicate whether the iterator is empty
7385
7386         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7387         warnings
7388
7389 2004-03-19  Havoc Pennington  <hp@redhat.com>
7390
7391         * NEWS: 0.21 updates
7392
7393         * configure.in: 0.21
7394
7395         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7396         
7397         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7398         you don't need pyrex to make dist
7399
7400         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7401         sources; run moc
7402         
7403 2004-03-18  Richard Hult  <richard@imendio.com>
7404
7405         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7406         (dbus_message_set_auto_activation): Add doxygen docs.
7407
7408 2004-03-16  Richard Hult  <richard@imendio.com>
7409
7410         * bus/activation.c: (bus_activation_service_created),
7411         (bus_activation_send_pending_auto_activation_messages),
7412         (bus_activation_activate_service):
7413         * bus/activation.h:
7414         * bus/dispatch.c: (bus_dispatch),
7415         (check_nonexistent_service_auto_activation),
7416         (check_service_auto_activated),
7417         (check_segfault_service_auto_activation),
7418         (check_existent_service_auto_activation), (bus_dispatch_test):
7419         * bus/driver.c: (bus_driver_handle_activate_service):
7420         * bus/services.c: (bus_registry_acquire_service):
7421         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7422         (dbus_message_get_auto_activation):
7423         * dbus/dbus-message.h:
7424         * dbus/dbus-protocol.h: Implement auto-activation.
7425         
7426         * doc/dbus-specification.xml: Add auto-activation to the spec.
7427
7428 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7429
7430         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7431         fix a bug with CUSTOM types.
7432
7433         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7434         a unit test for this bug (used to fail).
7435
7436 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7437
7438         * bus/activation.c:
7439         (babysitter_watch_callback): notify all pending activations waiting for
7440           the same exec that the activation failed.
7441         (bus_activation_activate_service): shortcut the activation if we 
7442           already waiting for the same executable to start up.
7443
7444 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7445
7446         * bus/activation.c: 
7447         - Added service file reloading. 
7448           Each service files directory is kept in an hash table in 
7449           BusActivation and each BusActivationEntry knows what .service-file it
7450           was read from. So when you try to activate a service the bus will 
7451           check if it's been updated, removed or if new .service-files has 
7452           been installed.
7453         - Test code at the bottom for the service file reloading.
7454         * bus/test-main.c: (main):
7455         * bus/test.h:
7456         - added service reloading test.
7457         * dbus/dbus-sysdeps.c: 
7458         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7459
7460 2004-03-08  Michael Meeks  <michael@ximian.com>
7461
7462         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7463         bail immediately if disconnected, to avoid busy loop.
7464
7465         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7466         cleanup cut/paste/inefficiency.
7467
7468 2004-03-01  David Zeuthen  <david@fubar.dk>
7469
7470         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7471         bug where args were used twice. This bug resulted in a segfault
7472         on a Debian/PPC system when starting the messagebus daemon. Include
7473         dbus-sysdeps.h for DBUS_VA_COPY
7474
7475         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7476
7477         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7478         appropriate va_copy implementation. From GLib
7479         
7480 2004-02-24  Joe Shaw  <joe@ximian.com>
7481
7482         * bus/services.c (bus_registry_acquire_service): We need to pass
7483         in the service name to dbus_set_error() to prevent a crash.
7484
7485 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7486
7487         * AUTHORS: Reveal my True identity.
7488
7489 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7490
7491         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7492         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7493
7494 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7495
7496         * doc/TODO: Added not about better error check of configuration files.
7497
7498 2003-12-02  Richard Hult  <richard@imendio.com>
7499
7500         * Update AFL version to 2.0 throughout the source files to reflect
7501         the update that was done a while ago.
7502
7503 2003-12-02  Richard Hult  <richard@imendio.com>
7504
7505         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7506         wrote_dict_key to FALSE on the iter that the dict is appended to,
7507         just like when appending other types. Fixes a bug where a dict
7508         couldn't be put inside a dict.
7509         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7510         (message_iter_test, _dbus_message_test): Add test case for dict
7511         inside dict.
7512
7513 2003-12-01  David Zeuthen  <david@fubar.dk>
7514
7515         * python/dbus.py: Add the actual message when calling the reciever
7516         of a signal such that parameters can be inspected. Add the method
7517         remove_signal_receiver
7518         
7519 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7520
7521         * bus/*.[ch]:
7522         * dbus/*.[ch]:
7523         * glib/*.[ch]: Made ref functions return the pointer
7524
7525 2003-11-25  Zack Rusin  <zack@kde.org>
7526
7527         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7528
7529         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7530         wrappers,
7531
7532         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7533         the Integrator and to better fit with the server,
7534
7535 2003-11-24  Zack Rusin  <zack@kde.org>
7536
7537         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7538         the integrator handles it now
7539
7540         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7541         since QTimer wasn't really meant to be used the way DBusTimeout is
7542
7543 2003-11-24  Zack Rusin  <zack@kde.org>
7544
7545         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7546         Integrator class which integrates D-BUS with the Qt event loop,
7547
7548         * qt/connection.h, qt/connection.cpp: Move all the code which
7549         was dealing with D-BUS integration to the Integrator class,
7550         and start using Integrator,
7551
7552 2003-11-23  Zack Rusin  <zack@kde.org>
7553
7554         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7555         wrapper
7556
7557         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7558         switching namespaces to DBusQt, reworking the class,
7559
7560         * Makefile.cvs: switching dependencies so that it matches KDE 
7561         schematics,
7562         
7563         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7564         the library
7565
7566 2003-11-19  Havoc Pennington  <hp@redhat.com>
7567
7568         * NEWS: update
7569
7570         * configure.in: bump version to 0.20
7571
7572         * configure.in (have_qt): add yet another place to look for qt
7573         (someone hand trolltech a .pc file...)
7574
7575 2003-11-01  Havoc Pennington  <hp@redhat.com>
7576
7577         * doc/dbus-specification.xml: add state machine docs on the auth
7578         protocol; just a first draft, I'm sure it's wrong.      
7579
7580 2003-10-28  David Zeuthen  <david@fubar.dk>
7581
7582         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7583         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7584         
7585 2003-10-28  Havoc Pennington  <hp@redhat.com>
7586
7587         * dbus/dbus-message.c (get_next_field): delete unused function
7588
7589 2003-10-28  Havoc Pennington  <hp@redhat.com>
7590
7591         * bus/expirelist.c (do_expiration_with_current_time): detect
7592         failure of the expire_func due to OOM
7593
7594         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7595
7596         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7597         NoReply error that's now created by the bus when the service exits
7598
7599 2003-10-28  Havoc Pennington  <hp@redhat.com>
7600
7601         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7602         tests for set_path, set_interface, set_member, etc.
7603
7604         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7605
7606         * dbus/dbus-message.c (set_string_field): always just delete and
7607         re-append the field; accept NULL for deletion
7608         (re_align_fields_recurse): reimplement
7609         
7610 2003-10-26  Havoc Pennington  <hp@redhat.com>
7611
7612         * dbus/dbus-connection.c: fix docs to properly describe the
7613         disconnected message
7614         (_dbus_connection_notify_disconnected): remove this function; 
7615         we can't synchronously add the disconnected message, we have to 
7616         do it after we've queued any remaining real messages
7617         (_dbus_connection_get_dispatch_status_unlocked): queue the
7618         disconnect message only if the transport has finished queueing all
7619         its real messages and is disconnected.
7620         (dbus_connection_disconnect): update the dispatch status here
7621
7622 2003-10-22  Havoc Pennington  <hp@redhat.com>
7623
7624         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7625
7626         * bus/connection.c (bus_transaction_send_from_driver): set the
7627         destination to the connection's base service
7628
7629 2003-10-20  Havoc Pennington  <hp@redhat.com>
7630
7631         hmm, make check is currently not passing.
7632         
7633         * doc/dbus-specification.xml: add requirement that custom type
7634         names follow the same rules as interface names.
7635
7636         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7637         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7638         'map'
7639
7640         * doc/dbus-specification.xml: update type codes to match
7641         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7642         CUSTOM. Add type OBJECT_PATH to the spec.
7643
7644 2003-10-17  Havoc Pennington  <hp@redhat.com>
7645
7646         * bus/driver.c (create_unique_client_name): use "." as separator
7647         in base service names instead of '-'
7648
7649         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7650         byte at the end of the string
7651
7652         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7653         optimization macros since string validation seems to be a slow
7654         point.
7655         
7656         * doc/dbus-specification.xml: restrict valid
7657         service/interface/member/error names. Add test suite code for the
7658         name validation.
7659
7660         * dbus/dbus-string.c: limit service/interface/member/error names 
7661         to [0-9][A-Z][a-z]_
7662
7663         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7664         format arg to verbose spew
7665
7666         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7667         memory, return instead of g_error
7668
7669         * test/test-service.c (path_message_func): support emitting a
7670         signal on request
7671
7672         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7673         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7674         assuming the activation bus was the session bus so that services
7675         started manually will still register.
7676         (init_connections_unlocked): fix so that in OOM situation we get
7677         the same semantics when retrying the function
7678         
7679         * test/test-service.c (main): change to use path registration, to
7680         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7681         than DBUS_BUS_SESSION
7682
7683 2003-10-16  Havoc Pennington  <hp@redhat.com>
7684
7685         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7686
7687         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7688         coverage of the tests
7689         (coverage-report.txt): don't move the .da and .bbg files around
7690
7691 2003-10-16  Havoc Pennington  <hp@redhat.com>
7692
7693         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7694         to put there
7695
7696 2003-10-16  Havoc Pennington  <hp@redhat.com>
7697
7698         * bus/connection.c (bus_pending_reply_expired): either cancel or
7699         execute, not both
7700         (bus_connections_check_reply): use unlink, not remove_link, as we
7701         don't want to free the link; fixes double free mess
7702
7703         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7704         where no reply was received
7705
7706         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7707         fix a refcount leak
7708
7709         * bus/signals.c (match_rule_matches): add special cases for the
7710         bus driver, so you can match on sender/destination for it.
7711
7712         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7713         DBUS_PRINT_BACKTRACE is set
7714
7715         * dbus/dbus-internals.c: add pid to assertion failure messages
7716
7717         * dbus/dbus-connection.c: add message type code to the debug spew
7718
7719         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7720         sender=foo not service=foo
7721
7722         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7723         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7724         DBUS_ACTIVATION_ADDRESS instead
7725
7726         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7727         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7728
7729         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7730         context struct
7731
7732         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7733         (dbus_message_iter_get_object_path_array): new function (half
7734         finished, disabled for the moment)
7735         
7736         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7737         DBUS_MESSAGE_TYPE_ERROR
7738
7739         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7740         avoid redirecting stderr to /dev/null
7741         (babysit): close stdin if not doing the "exit_with_session" thing
7742
7743         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7744         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7745         stdout/stdin, so things don't get confused
7746         
7747         * bus/system.conf.in: fix to allow replies, I modified .conf
7748         instead of .conf.in again.
7749
7750 2003-10-14  David Zeuthen  <david@fubar.dk>
7751
7752         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7753         argtype to arg_type when raising unknown arg type exception.
7754         Changed type list to reflect the changes in dbus-protocol.h so 
7755         the bindings actually work.
7756
7757 2003-10-14  Havoc Pennington  <hp@redhat.com>
7758
7759         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7760         to have a bug keeping it from outputting the .da files sometimes
7761         (string_get_string): don't append garbage nul bytes to the string.
7762
7763 2003-10-15  Seth Nickell  <seth@gnome.org>
7764
7765         * python/Makefile.am:
7766
7767         Include dbus_h_wrapper.h in the dist tarball.
7768
7769 2003-10-14  Havoc Pennington  <hp@redhat.com>
7770
7771         * bus/bus.c (bus_context_check_security_policy): revamp this to
7772         work more sanely with new policy-based requested reply setup
7773
7774         * bus/connection.c (bus_transaction_send_from_driver): set bus
7775         driver messages as no reply
7776
7777         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7778         requested_reply attribute on allow/deny rules
7779
7780         * bus/system.conf: add <allow requested_reply="true"/>
7781
7782         * bus/driver.c (bus_driver_handle_message): fix check for replies
7783         sent to the bus driver, which was backward. How did this ever work
7784         at all though? I think I'm missing something.
7785
7786         * dbus/dbus-message.c (decode_header_data): require error and
7787         method return messages to have a reply serial field to be valid
7788         (_dbus_message_loader_queue_messages): break up this function;
7789         validate that reply serial and plain serial are nonzero; 
7790         clean up the OOM/error handling.
7791         (get_uint_field): don't return -1 from this
7792         (dbus_message_create_header): fix signed/unsigned bug
7793
7794         * bus/connection.c (bus_connections_expect_reply): save serial of
7795         the incoming message, not reply serial
7796
7797 2003-10-14  Havoc Pennington  <hp@redhat.com>
7798
7799         * bus/connection.c: implement pending reply tracking using
7800         BusExpireList
7801
7802         * bus/bus.c (bus_context_check_security_policy): verify that a
7803         reply is pending in order to allow a reply to be sent. Deny 
7804         messages of unknown type.
7805
7806         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7807
7808         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7809         (bus_context_get_reply_timeout): new
7810
7811 2003-10-13  Seth Nickell  <seth@gnome.org>
7812
7813         * python/Makefile.am:
7814
7815         Pass "make distcheck": remove a couple files from DIST_FILES
7816         that weren't included in the final version.
7817
7818 2003-10-12  Havoc Pennington  <hp@pobox.com>
7819
7820         Added test code that 1) starts an actual bus daemon and 2) uses
7821         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7822         more testing possible, but this is the basic framework.
7823         
7824         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7825         empty proxy lists from the proxy list hash
7826
7827         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7828         couple of return_if_fail checks
7829
7830         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7831         to allocate, so everything is cleared to NULL as it should be.
7832
7833         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7834         source as data to dbus_connection_set_timeout_functions() as the 
7835         timeout functions expected
7836
7837         * test/glib/run-test.sh: add a little script to start up a message
7838         bus and run tests using it
7839
7840         * tools/dbus-launch.1: updates
7841
7842         * tools/dbus-launch.c (main): add --config-file option
7843
7844         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7845         that could never be reached.
7846
7847         * dbus/dbus-message.c (dbus_message_new_method_return) 
7848         (dbus_message_new_error, dbus_message_new_signal): set the
7849         no-reply-expected flag on all these. Redundant, but may
7850         as well be consistent.
7851
7852 2003-10-11  Havoc Pennington  <hp@pobox.com>
7853
7854         * test/decode-gcov.c (function_solve_graph): make broken block
7855         graph a nonfatal error since it seems to be broken. Need to debug
7856         this.
7857
7858         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7859         can't just check type > INVALID < LAST anymore
7860
7861         * dbus/dbus-message.c (dbus_message_get_signature): new function
7862         (dbus_message_has_signature): new function
7863         (struct DBusMessage): add signature field (right now it isn't sent
7864         over the wire, just generated on the fly)
7865         (dbus_message_copy): copy the signature, and init strings to
7866         proper length to avoid some reallocs
7867         (dbus_message_iter_init_array_iterator): return void, since it
7868         can't fail
7869         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7870         (_dbus_message_loader_queue_messages): add silly temporary hack to
7871         fill in message->signature on load
7872
7873         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7874         characters, so they are relatively human-readable.
7875
7876 2003-10-11  Havoc Pennington  <hp@pobox.com>
7877
7878         * dbus/dbus-message.c (_dbus_message_test): add more test
7879         coverage, but #if 0 for now since they uncover a bug 
7880         not fixed yet; I think in re_align_field_recurse()
7881         (re_align_field_recurse): add FIXME about broken assertion
7882
7883         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7884
7885         * bus/connection.c: share a couple code bits with expirelist.c
7886
7887         * bus/expirelist.h, bus/expirelist.c: implement a generic
7888         expire-items-after-N-seconds facility, was going to share between
7889         expiring connections and replies, decided not to use for expiring
7890         connections for now.
7891
7892         * COPYING: include AFL 2.0 (still need to change all the file headers)
7893
7894 2003-10-09  Havoc Pennington  <hp@redhat.com>
7895
7896         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7897         gcc 3.3. Not that we do anything about it yet.
7898
7899         * bus/signals.c (bus_match_rule_parse): impose max length on the
7900         match rule text
7901
7902         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7903
7904 2003-10-09  Havoc Pennington  <hp@redhat.com>
7905
7906         Make matching rules theoretically work (add parser).
7907         
7908         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7909         the case where destination is explicitly specified as bus driver
7910         and someone else is eavesdropping.
7911         
7912         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7913         definition of eavesdropping and assertion
7914
7915         * tools/dbus-send.c (main): use dbus_message_type_from_string
7916
7917         * bus/signals.c (bus_match_rule_parse): implement
7918
7919         * dbus/dbus-message.c (dbus_message_type_from_string): new
7920
7921         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7922
7923 2003-10-02  Havoc Pennington  <hp@pobox.com>
7924
7925         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7926         dbus_gproxy_oneway_call
7927
7928         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7929         (dbus_server_setup_with_g_main): fix to allow calling them more
7930         than once on the same args
7931         (dbus_bus_get_with_g_main): new function
7932
7933 2003-10-02  Havoc Pennington  <hp@redhat.com>
7934
7935         * doc/dbus-tutorial.xml: write some stuff
7936
7937 2003-09-29  Havoc Pennington  <hp@pobox.com>
7938
7939         * configure.in: split checks for Doxygen from XML docs, check for
7940         xmlto
7941
7942         * doc/Makefile.am: XML-ify all the docs, and add a blank
7943         dbus-tutorial.xml
7944
7945 2003-09-29  Havoc Pennington  <hp@pobox.com>
7946
7947         * Merge dbus-object-names branch. To see the entire patch 
7948         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7949         it's huuuuge though.
7950         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7951         
7952 2003-09-28  Havoc Pennington  <hp@pobox.com>
7953
7954         * HACKING: update to reflect new server
7955
7956 2003-09-26  Seth Nickell  <seth@gnome.org>
7957
7958         * python/dbus.py:
7959         * python/examples/example-signals.py:
7960
7961         Start implementing some notions of signals. The API
7962         is really terrible, but they sort of work (with the
7963         exception of being able to filter by service, and to
7964         transmit signals *as* a particular service). Need to
7965         figure out how to make messages come from the service
7966         we registered :-(
7967         
7968         * python/dbus_bindings.pyx.in:
7969
7970         Removed duplicate message_handler callbacks.
7971         
7972 2003-09-25  Havoc Pennington  <hp@redhat.com>
7973
7974         * bus/session.conf.in: fix my mess
7975
7976 2003-09-25  Havoc Pennington  <hp@pobox.com>
7977
7978         * bus/session.conf.in: fix security policy, reported by Seth Nickell
7979
7980 2003-09-25  Seth Nickell  <seth@gnome.org>
7981
7982         * python/examples/example-service.py:
7983
7984         Johan notices complete wrong code in example-service, but
7985         completely wrong in a way that works exactly the same (!).
7986         Johan is confused, how could this possibly work? Example
7987         code fails to serve purpose of making things clear.
7988         Seth fixes.
7989
7990 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
7991
7992         * doc/dbus-specification.sgml: don't require header fields
7993         to be 4-byte aligned and specify that fields should be
7994         distinguished from padding by the fact that zero is not
7995         a valid field name.
7996         
7997         * doc/TODO: remove re-alignment item and add item to doc
7998         the OBJECT_PATH type.
7999         
8000         * dbus/dbus-message.c:
8001         (HeaderField): rename the original member to value_offset
8002         and introduce a name_offset member to keep track of where
8003         the field actually begins.
8004         (adjust_field_offsets): remove.
8005         (append_int_field), (append_uint_field),
8006         (append_string_field): don't align the start of the header
8007         field to a 4-byte boundary.
8008         (get_next_field): impl finding the next marhsalled field
8009         after a given field.
8010         (re_align_field_recurse): impl re-aligning a number of
8011         already marshalled fields.
8012         (delete_field): impl deleting a field of any type and
8013         re-aligning any following fields.
8014         (delete_int_or_uint_field), (delete_string_field): remove.
8015         (set_int_field), (set_uint_field): no need to re-check
8016         that we have the correct type for the field.
8017         (set_string_field): ditto and impl re-aligning any
8018         following fields.
8019         (decode_header_data): update to take into account that
8020         the fields aren't 4-byte aligned any more and the new
8021         way to distinguish padding from header fields. Also,
8022         don't exit when there is too much header padding.
8023         (process_test_subdir): print the directory.
8024         (_dbus_message_test): add test to make sure a following
8025         field is re-aligned correctly after field deletion.
8026         
8027         * dbus/dbus-string.[ch]:
8028         (_dbus_string_insert_bytes): rename from insert_byte and
8029         allow the insert of multiple bytes.
8030         (_dbus_string_test): test inserting multiple bytes.
8031
8032         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8033         warning note to docs about having to re-align any
8034         marshalled values following the string.
8035         
8036         * dbus/dbus-message-builder.c:
8037         (append_string_field), (_dbus_message_data_load):
8038         don't align the header field.
8039         
8040         * dbus/dbus-auth.c: (process_test_subdir): print the
8041         directory.
8042         
8043         * test/break-loader.c: (randomly_add_one_byte): upd. for
8044         insert_byte change.
8045         
8046         * test/data/invalid-messages/bad-header-field-alignment.message:
8047         new test case.
8048         
8049         * test/data/valid-messages/unknown-header-field.message: shove
8050         a dict in the unknown field.
8051
8052 2003-09-25  Seth Nickell  <seth@gnome.org>
8053
8054         * python/dbus.py:
8055         * python/dbus_bindings.pyx.in:
8056
8057         Handle return values.
8058         
8059         * python/examples/example-client.py:
8060         * python/examples/example-service.py:
8061
8062         Pass back return values from the service to the client.
8063         
8064 2003-09-24  Seth Nickell  <seth@gnome.org>
8065
8066         * python/dbus.py:
8067
8068         Connect Object methods (when you are sharing an object) up... pass
8069         in a list of methods to be shared. Sharing all the methods just
8070         worked out too weird. You can now create nice Services over the
8071         DBus in Python. :-)
8072         
8073         * python/dbus_bindings.pyx.in:
8074
8075         Keep references to user_data tuples passed into C functions so 
8076         Python doesn't garbage collect on us.
8077
8078         Implement MethodReturn and Error subclasses of Message for creating
8079         DBusMessage's of those types.
8080         
8081         * python/examples/example-client.py:
8082         * python/examples/example-service.py:
8083
8084         Simple example code showing both how create DBus services and objects,
8085         and how to use them.
8086
8087 2003-09-23  Havoc Pennington  <hp@pobox.com>
8088
8089         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8090
8091 2003-09-23  Havoc Pennington  <hp@redhat.com>
8092
8093         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8094         (dbus_gproxy_disconnect_signal): implement
8095         (dbus_gproxy_manager_remove_signal_match): implement
8096         (dbus_gproxy_manager_add_signal_match): implement
8097         (dbus_gproxy_oneway_call): implement
8098
8099 2003-09-23  Havoc Pennington  <hp@pobox.com>
8100
8101         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8102         subclass. This means dropping the transparent thread safety of the
8103         proxy; you now need a separate proxy per-thread, or your own
8104         locking on the proxy. Probably right anyway.
8105         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8106
8107 2003-09-22  Havoc Pennington  <hp@redhat.com>
8108
8109         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8110
8111 2003-09-21  Seth Nickell  <seth@gnome.org>
8112
8113         First checkin of the Python bindings.
8114         
8115         * python/.cvsignore:
8116         * python/Makefile.am:
8117         * python/dbus_bindings.pyx.in:
8118         * python/dbus_h_wrapper.h:
8119
8120         Pieces for Pyrex to operate on, building a dbus_bindings.so
8121         python module for low-level access to the DBus APIs.
8122         
8123         * python/dbus.py:
8124
8125         High-level Python module for accessing DBus objects.
8126
8127         * configure.in:
8128         * Makefile.am:
8129
8130         Build stuff for the python bindings.
8131
8132         * acinclude.m4:
8133
8134         Extra macro needed for finding the Python C header files.
8135
8136 2003-09-21  Havoc Pennington  <hp@pobox.com>
8137
8138         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8139         implementing the proxy manager, didn't get very far.
8140
8141         * dbus/dbus-bus.c (dbus_bus_add_match): new
8142         (dbus_bus_remove_match): new
8143
8144         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8145         path_name argument; adjust the other not-yet-implemented 
8146         gproxy constructors to be what I think they should be.
8147
8148 2003-09-21  Havoc Pennington  <hp@pobox.com>
8149
8150         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8151         by default for message bus connections.
8152
8153         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8154         exit_on_disconnect flag is set and we process the disconnected
8155         signal.
8156         (dbus_connection_set_exit_on_disconnect): new function
8157
8158 2003-09-21  Havoc Pennington  <hp@pobox.com>
8159
8160         Get matching rules mostly working in the bus; only actually
8161         parsing the rule text remains. However, the client side of
8162         "signal connections" hasn't been started, this patch is only the
8163         bus side.
8164         
8165         * dbus/dispatch.c: fix for the matching rules changes
8166         
8167         * bus/driver.c (bus_driver_handle_remove_match)
8168         (bus_driver_handle_add_match): send an ack reply from these
8169         method calls
8170
8171         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8172         arguments, reported by Seth Nickell
8173
8174         * bus/config-parser.c (append_rule_from_element): support
8175         eavesdrop=true|false attribute on policies so match rules 
8176         can be prevented from snooping on the system bus.
8177
8178         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8179         and "destination" in attribute names; fix some docs bugs; 
8180         add eavesdrop=true|false attribute
8181
8182         * bus/driver.c (bus_driver_handle_add_match)
8183         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8184         messages
8185
8186         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8187         rid of broadcast service concept, signals are just always broadcast
8188
8189         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8190         mostly implement matching rules stuff (currently only exposed as signal
8191         connections)
8192
8193 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8194
8195         * doc/dbus-specification.sgml: Change the header field name
8196         to be an enum and update the rest of the spec to reference
8197         the fields using the conventinal name.
8198
8199         * dbus/dbus-protocol.h: update to reflect the spec.
8200
8201         * doc/TODO: add item to remove the 4 byte alignment requirement.
8202         
8203         * dbus/dbus-message.c: Remove the code to generalise the
8204         header/body length and serial number header fields as named
8205         header fields so we can reference field names using the 
8206         protocol values.
8207         (append_int_field), (append_uint_field), (append_string_field):
8208         Append the field name as a byte rather than four chars.
8209         (delete_int_or_uint_field), (delete_string_field): reflect the
8210         fact that the field name and typecode now occupy 4 bytes instead
8211         of 8.
8212         (decode_string_field), (decode_header_data): update to reflect
8213         protocol changes and move the field specific encoding from
8214         decode_string_field() back into decode_header_data().
8215         
8216         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8217         Add utility to aid debugging.
8218         
8219         * dbus/dbus-message-builder.c:
8220         (append_string_field), (_dbus_message_data_load): Update to
8221         reflect protocol changes; Change the FIELD_NAME directive
8222         to HEADER_FIELD and allow it to take the field's conventional
8223         name rather than the actual value.
8224         
8225         * test/data/*/*.message: Update to use HEADER_FIELD instead
8226         of FIELD_NAME; Always align the header on an 8 byte boundary
8227         *before* updating the header length.
8228
8229 2003-09-15  Havoc Pennington  <hp@pobox.com>
8230
8231         * dbus/dbus-pending-call.c: add the get/set object data
8232         boilerplate as for DBusConnection, etc. Use generic object data
8233         for the notify callback.
8234
8235         * glib/dbus-gparser.c (parse_node): parse child nodes
8236
8237         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8238         
8239         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8240         contain functions shared between the convenience lib and the
8241         installed lib
8242
8243         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8244         -export-symbols-regex to the GLib library
8245
8246         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8247         fix the locking in here, and add a default handler for
8248         Introspect() that just returns sub-nodes.
8249
8250 2003-09-14  Havoc Pennington  <hp@pobox.com>
8251
8252         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8253         rather than gfoo consistent
8254
8255         * glib/dbus-gproxy.h: delete for now, move contents to
8256         dbus-glib.h, because the include files don't work right since we
8257         aren't in the dbus/ subdir.
8258         
8259         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8260         (dbus_gproxy_end_call): finish
8261         (dbus_gproxy_begin_call): finish
8262
8263         * glib/dbus-gmain.c (dbus_set_g_error): new
8264
8265         * glib/dbus-gobject.c (handle_introspect): include information
8266         about child nodes in the introspection
8267
8268         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8269         function to help in implementation of introspection
8270
8271         * dbus/dbus-object-tree.c
8272         (_dbus_object_tree_list_registered_and_unlock): new function
8273
8274 2003-09-12  Havoc Pennington  <hp@pobox.com>
8275
8276         * glib/dbus-gidl.h: add common base class for all the foo_info
8277         types
8278
8279         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8280         similar to kdcop
8281
8282         * test/Makefile.am: try test srcdir -ef . in addition to test
8283         srcdir = ., one of them should work (yeah lame)
8284         
8285         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8286         library
8287         
8288         * glib/dbus-gparser.h: make description_load routines return
8289         NodeInfo* not Parser*
8290
8291         * Makefile.am (SUBDIRS): build test dir after all library dirs
8292
8293         * configure.in: add GTK+ detection
8294
8295 2003-09-07  Havoc Pennington  <hp@pobox.com>
8296
8297         * Make Doxygen contented.
8298
8299 2003-09-07  Havoc Pennington  <hp@pobox.com>
8300
8301         * doc/dbus-specification.sgml: more updates
8302
8303 2003-09-06  Havoc Pennington  <hp@pobox.com>
8304
8305         * doc/dbus-specification.sgml: partial updates
8306
8307         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8308         zillionth time; hopefully I edited the right file this time.
8309
8310         * bus/config-parser.c (append_rule_from_element): support
8311         send_type, send_path, receive_type, receive_path
8312
8313         * bus/policy.c: add message type and path to the list of things
8314         that can be "firewalled"
8315
8316 2003-09-06  Havoc Pennington  <hp@pobox.com>
8317
8318         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8319         (dbus_connection_register_object_path): make this not handle
8320         messages to paths below the given path
8321
8322 2003-09-03  Havoc Pennington  <hp@pobox.com>
8323
8324         * test/glib/Makefile.am: add this with random glib-linked test
8325         programs
8326
8327         * glib/Makefile.am: remove the random test programs from here,
8328         leave only the unit tests
8329
8330         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8331         uscore/javacaps conversion, and fix     
8332         (get_object_property, set_object_property): change to .NET
8333         convention for mapping props to methods, set_FooBar/get_FooBar, 
8334         since one language has such a convention we may as well copy it. 
8335         Plus real methods in either getFooBar or get_foo_bar style won't 
8336         collide with this convention.
8337
8338 2003-09-01  Havoc Pennington  <hp@pobox.com>
8339
8340         * glib/dbus-gparser.c: implement
8341
8342         * glib/dbus-gobject.c: start implementing skeletons support
8343
8344         * configure.in: when disabling checks/assert, also define
8345         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8346
8347 2003-09-01  Havoc Pennington  <hp@pobox.com>
8348
8349         * glib/Makefile.am: rearrange a bunch of files and get "make
8350         check" framework set up
8351
8352 2003-08-31  Havoc Pennington  <hp@pobox.com>
8353
8354         * fix build with --disable-tests
8355
8356 2003-08-30  Havoc Pennington  <hp@pobox.com>
8357
8358         * dbus/dbus-connection.c: purge DBusMessageHandler
8359
8360         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8361         use callbacks everywhere
8362
8363 2003-08-30  Havoc Pennington  <hp@pobox.com>
8364
8365         * test/data/valid-config-files/system.d/test.conf: change to 
8366         root for the user so warnings don't get printed
8367
8368         * dbus/dbus-message.c: add dbus_message_get_path,
8369         dbus_message_set_path
8370         
8371         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8372         dispatching to a path
8373
8374         * dbus/dbus-string.c (_dbus_string_validate_path): add
8375
8376         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8377         (_dbus_marshal_object_path): implement
8378
8379         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8380         to contain the path to the target object
8381         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8382         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8383
8384 2003-08-30  Havoc Pennington  <hp@pobox.com>
8385
8386         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8387
8388 2003-08-29  Havoc Pennington  <hp@pobox.com>
8389
8390         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8391         registered
8392         (struct DBusObjectSubtree): shrink this
8393         a lot, since we may have a lot of them
8394         (_dbus_object_tree_free_all_unlocked): implement
8395         (_dbus_object_tree_dispatch_and_unlock): implement
8396
8397 2003-08-29  Havoc Pennington  <hp@pobox.com>
8398
8399         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8400
8401 2003-08-28  Havoc Pennington  <hp@pobox.com>
8402
8403         purge DBusObjectID
8404         
8405         * dbus/dbus-connection.c: port to no ObjectID, create a
8406         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8407
8408         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8409         everything except UnregisterFunction and MessageFunction
8410         
8411         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8412         add DBUS_TYPE_OBJECT_PATH
8413         
8414         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8415         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8416         path-based object IDs
8417
8418 2003-08-25  Havoc Pennington  <hp@pobox.com>
8419
8420         Just noticed that dbus_message_test is hosed, I wonder when I
8421         broke that. I thought make check was passing earlier...
8422         
8423         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8424         container tree, will replace most of dbus-object-registry
8425
8426         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8427         screwup
8428
8429 2003-08-19  Havoc Pennington  <hp@pobox.com>
8430
8431         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8432         (dbus_message_is_error): fix this function
8433
8434         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8435         match
8436
8437         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8438         reflect clarified man page
8439         (bus_client_policy_check_can_send): ditto
8440         
8441         * bus/session.conf.in: fixup
8442
8443         * bus/system.conf.in: fixup
8444
8445 2003-08-18  Havoc Pennington  <hp@redhat.com>
8446
8447         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8448
8449         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8450         dumb bug created earlier (wrong order of args to
8451         decode_header_data())
8452         
8453         * tools/dbus-send.c: port
8454
8455         * tools/dbus-print-message.c (print_message): port
8456
8457         * test/data/*messages: port all messages over
8458         
8459         * dbus/dbus-message-builder.c: support including 
8460         message type
8461         
8462         * bus/driver.c: port over
8463         
8464         * bus/dispatch.c: port over to new stuff
8465
8466         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8467         rename disconnect signal to "Disconnected"
8468
8469 2003-08-17  Havoc Pennington  <hp@pobox.com>
8470
8471         This doesn't compile yet, but syncing up so I can hack on it from
8472         work. What are branches for if not broken code? ;-)
8473         
8474         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8475         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8476         DBUS_HEADER_FIELD_ERROR_NAME
8477         
8478         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8479         for the interface+member pairs
8480         (string_hash): change to use g_str_hash algorithm
8481         (find_direct_function, find_string_function): refactor these to
8482         share most code.
8483         
8484         * dbus/dbus-message.c: port all of this over to support 
8485         interface/member fields instead of name field
8486
8487         * dbus/dbus-object-registry.c: port over
8488         
8489         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8490         from _dbus_string_validate_name
8491
8492         * bus/dbus-daemon-1.1: change file format for the 
8493         <deny>/<allow> stuff to match new message naming scheme
8494
8495         * bus/policy.c: port over
8496
8497         * bus/config-parser.c: parse new format
8498         
8499 2003-08-16  Havoc Pennington  <hp@pobox.com>
8500
8501         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8502         broken assertion
8503
8504         * glib/dbus-gproxy.c: some hacking
8505
8506 2003-08-15  Havoc Pennington  <hp@redhat.com>
8507
8508         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8509
8510         * dbus/dbus-connection.c
8511         (dbus_connection_send_with_reply_and_block): factor out internals;
8512         change to convert any error replies to DBusError instead of 
8513         returning them as a message
8514
8515 2003-08-15  Havoc Pennington  <hp@pobox.com>
8516
8517         * dbus/dbus-connection.c, 
8518         dbus/dbus-pending-call.c: Finish the pending call stuff
8519
8520 2003-08-14  Havoc Pennington  <hp@redhat.com>
8521
8522         * dbus/dbus-pending-call.c: start on new object that will replace
8523         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8524         replies
8525
8526         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8527         with remote interfaces
8528
8529         * dbus/dbus-gidl.c: do the boring boilerplate in here
8530         
8531 2003-08-12  Havoc Pennington  <hp@pobox.com>
8532
8533         * bus/dispatch.c (bus_dispatch): make this return proper 
8534         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8535
8536         * dbus/dbus-errors.c (dbus_set_error): use
8537         _dbus_string_append_printf_valist
8538
8539         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8540         (_dbus_string_append_printf): new
8541
8542         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8543         UNKNOWN_METHOD
8544
8545         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8546         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8547         message is unhandled.
8548
8549 2003-08-11  Havoc Pennington  <hp@pobox.com>
8550
8551         * bus/test.c (client_disconnect_handler): change to return
8552         HANDLED (would have been REMOVE_MESSAGE)
8553
8554         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8555         HANDLED/NOT_YET_HANDLED instead of
8556         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8557         should be used.
8558
8559 2003-08-10  Havoc Pennington  <hp@pobox.com>
8560
8561         * tools/dbus-send.c (main): add --type argument, for now
8562         supporting only method_call and signal types.
8563
8564         * tools/dbus-print-message.c: print message type
8565
8566         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8567         init connection->objects
8568
8569         * doc/dbus-specification.sgml: fix sgml
8570
8571         * bus/*.c: port over to object-instance API changes
8572
8573         * test/test-service.c: ditto
8574         
8575         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8576         name, we will have to fix up the rest of the code to also handle
8577         this
8578         (dbus_message_new): generic message-creation call
8579         (set_string_field): allow appending name field
8580
8581 2003-08-06  Havoc Pennington  <hp@pobox.com>
8582
8583         * dbus/dbus-object-registry.c: implement signal connection 
8584         and dispatch
8585
8586         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8587
8588         * dbus/dbus-internals.c (_dbus_memdup): new function
8589
8590 2003-08-02  Havoc Pennington  <hp@pobox.com>
8591
8592         * dbus/dbus-message.c (dbus_message_get_no_reply)
8593         (dbus_message_set_no_reply): add these and remove
8594         set_is_error/get_is_error
8595
8596         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8597         remove the ERROR flag, since there's now an ERROR type
8598
8599 2003-08-01  Havoc Pennington  <hp@pobox.com>
8600
8601         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8602         implement
8603
8604         * dbus/dbus-message.c (dbus_message_get_type): new function
8605
8606         * doc/dbus-specification.sgml: add "type" byte to messages
8607
8608 2003-08-01  Havoc Pennington  <hp@pobox.com>
8609
8610         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8611         a message type enum to distinguish kinds of message
8612         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8613         that need not be replied to
8614
8615 2003-08-01  Havoc Pennington  <hp@pobox.com>
8616
8617         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8618         (unpack_8_octets): fix no-64-bit-int bug
8619
8620         * dbus/dbus-object-registry.c (validate_id): validate the 
8621         connection ID bits, not just the instance ID.
8622
8623         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8624         the connection-global 33 bits of the object ID
8625
8626         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8627         object ID in the new way
8628
8629         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8630         define server/client/instance bits.
8631
8632 2003-07-30  Havoc Pennington  <hp@pobox.com>
8633
8634         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8635         build
8636
8637 2003-07-13  Havoc Pennington  <hp@pobox.com>
8638
8639         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8640         fields to DBusObjectVTable and DBusObjectInfo
8641
8642 2003-07-12  Havoc Pennington  <hp@pobox.com>
8643
8644         * dbus/dbus-object-registry.c: implement unit test,
8645         fix bugs discovered in process
8646
8647         * dbus/dbus-connection.c: remove handler_table and
8648         register_handler(), add DBusObjectRegistry usage
8649
8650         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8651         (dbus_object_id_set_null): new functions
8652
8653 2003-07-08  Havoc Pennington  <hp@pobox.com>
8654
8655         * dbus/dbus-object.c: implement some of this
8656
8657         * dbus/dbus-object-registry.c
8658         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8659         param
8660         (_dbus_object_registry_new): handle OOM
8661
8662 2003-07-08  Havoc Pennington  <hp@pobox.com>
8663
8664         * dbus/dbus-object.h: sketch out an API for registering objects
8665         with a connection, that allows us to use as little as 24 bytes
8666         per object and lets application code represent an object in 
8667         any conceivable way.
8668
8669         * dbus/dbus-object-registry.c: implement the hard bits of the
8670         DBusConnection aspect of object API. Not yet wired up.
8671         
8672 2003-07-06  Havoc Pennington  <hp@pobox.com>
8673
8674         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8675         (_dbus_marshal_object_id): new
8676         (_dbus_demarshal_object_id): new
8677         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8678         consolidate identical switch cases. Don't conditionalize handling
8679         of DBUS_TYPE_UINT64, need to handle the type always.
8680         (_dbus_marshal_validate_arg): consolidate identical cases, and
8681         handle DBUS_TYPE_OBJECT_ID
8682
8683         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8684
8685         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8686
8687 2003-09-28  Havoc Pennington  <hp@pobox.com>
8688
8689         * real 0.13 release
8690
8691 2003-09-28  Havoc Pennington  <hp@pobox.com>
8692
8693         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8694         to work with Debian db2html
8695
8696 2003-09-28  Havoc Pennington  <hp@pobox.com>
8697
8698         * configure.in: 0.13
8699
8700         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8701         stylesheet-images for benefit of Debian
8702         
8703         Change back to using filesystem-linked sockets for the system
8704         bus, so only root can create the default system bus address.
8705         
8706         * bus/system.conf.in: change to use
8707         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8708
8709         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8710         from here.
8711
8712         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8713         here, and AC_DEFINE DBUS_SYSTEM_PATH
8714
8715 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8716
8717         * doc/TODO:
8718         * doc/busconfig.dtd:
8719         Add busconfig DTD.
8720         
8721 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8722
8723         * doc/dbus-specification.sgml:
8724         Add activation reply values.
8725         
8726 2003-08-05  Havoc Pennington  <hp@redhat.com>
8727
8728         * configure.in: 0.12
8729
8730 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8731
8732         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8733         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8734         (add_watch), (remove_watch), (create_source):
8735         Refcount fds, fixes some reentrancy issues.
8736         
8737 2003-07-30  Havoc Pennington  <hp@redhat.com>
8738
8739         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8740         bus address to be abstract if we have abstract sockets
8741
8742         * NEWS: update
8743
8744 2003-07-28  Havoc Pennington  <hp@redhat.com>
8745
8746         * bus/messagebus.in: fix to avoid processname/servicename 
8747         confusion, from Michael Kearey
8748         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8749         
8750 2003-07-23  Havoc Pennington  <hp@pobox.com>
8751
8752         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8753         fix from Andy Hanton to remove broken "+1"
8754
8755 2003-07-16  Havoc Pennington  <hp@pobox.com>
8756
8757         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8758         babysitter process, as suggested by Thomas Leonard, so 
8759         an "eval `dbus-launch --exit-with-session`" will actually 
8760         return
8761
8762 2003-07-16  Havoc Pennington  <hp@pobox.com>
8763
8764         * configure.in: print out EXPANDED_* variables in the summary at
8765         the end; clean up the code that computes EXPANDED_ variables and
8766         get the ones using exec_prefix right. Should make things work
8767         when you build without --prefix
8768
8769 2003-06-29  Havoc Pennington  <hp@pobox.com>
8770
8771         * mono/Test.cs (class Test): fire up a main loop and run it
8772
8773         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8774         done once, the app has to do it
8775
8776 2003-06-26  Havoc Pennington  <hp@pobox.com>
8777
8778         * mono/Connection.cs: set up connection with the glib main loop
8779
8780 2003-07-01  Havoc Pennington  <hp@redhat.com>
8781
8782         * doc/dbus-specification.sgml: clarify the format of a type code,
8783         change suggested by Jim Blandy
8784
8785 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8786
8787         * doc/Makefile.am:
8788         * tools/Makefile.am: Don't assume srcdir == builddir.
8789
8790         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8791         the allocated block.
8792         (_dbus_memory_test): New function.
8793         * dbus/dbus-test.h: Add _dbus_memory_test ().
8794         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8795
8796         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8797         of %c%c%c%c.
8798         (dbus_message_new): Remove obsolete @todo.
8799
8800         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8801         (_dbus_marshal_set_uint64): Fix comment.
8802
8803         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8804         hardcode FIELD_REPLY_SERIAL.
8805
8806         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8807         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8808
8809         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8810         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8811
8812 2003-06-24  Havoc Pennington  <hp@pobox.com>
8813
8814         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8815
8816 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8817
8818         * configure.in:
8819         * gcj/.cvsignore:
8820         * gcj/Hello.java:
8821         * gcj/Makefile.am:
8822         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8823         * gcj/org/.cvsignore:
8824         * gcj/org/Makefile.am:
8825         * gcj/org/freedesktop/.cvsignore:
8826         * gcj/org/freedesktop/Makefile.am:
8827         * gcj/org/freedesktop/dbus/.cvsignore:
8828         * gcj/org/freedesktop/dbus/Makefile.am:
8829         * gcj/org/freedesktop/dbus/Message.java: (Message),
8830         (Message.Message):
8831         * gcj/org/freedesktop/dbus/natMessage.cc:
8832         Fix the build system.
8833
8834 2003-06-22  Havoc Pennington  <hp@pobox.com>
8835
8836         * mono/Connection.cs: add more bindings
8837
8838         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8839         more than once.
8840
8841 2003-06-22  Havoc Pennington  <hp@pobox.com>
8842
8843         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8844         Start wrapping more stuff.
8845
8846 2003-06-22  Havoc Pennington  <hp@pobox.com>
8847
8848         * mono/Message.cs: implement Message.Wrap() that ensures we only
8849         have a single C# wrapper per DBusMessage, assuming it works which
8850         it probably doesn't.
8851
8852         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8853         (dbus_message_free_data_slot): new
8854         (dbus_message_set_data): new
8855         (dbus_message_get_data): new
8856
8857 2003-06-22  Havoc Pennington  <hp@pobox.com>
8858
8859         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8860         (_dbus_data_slot_allocator_alloc): rework these to keep a
8861         reference count on each slot and automatically manage a global
8862         slot ID variable passed in by address
8863
8864         * bus/bus.c: convert to new dataslot API
8865
8866         * dbus/dbus-bus.c: convert to new dataslot API
8867
8868         * dbus/dbus-connection.c: convert to new dataslot API
8869
8870         * dbus/dbus-server.c: convert to new dataslot API
8871
8872         * glib/dbus-gmain.c: ditto
8873
8874         * bus/test.c: ditto
8875
8876         * bus/connection.c: ditto
8877
8878 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8879
8880         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8881         after the gcj checks so that the correct configuration tags
8882         will be added to libtool.
8883
8884         * dbus-glib-1.pc.in: No need to specify any includes since
8885         dbus-1.pc.in has those.
8886
8887 2003-06-22  Havoc Pennington  <hp@pobox.com>
8888
8889         * mono/*, gcj/*, configure.in, Makefile.am:
8890         Check in makefiles and subdirs for mono and gcj bindings.
8891         Neither binding actually exists, just trying to get through
8892         all the build and other boring bits.
8893
8894 2003-06-21  Philip Blundell  <philb@gnu.org>
8895
8896         * tools/dbus-monitor.1: Updated.
8897
8898         * tools/dbus-send.1: Likewise.
8899
8900 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8901
8902         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8903         for hangup and error after checking read so we won't discard
8904         pending data if both hangup and read are set.
8905
8906 2003-06-19  Philip Blundell  <philb@gnu.org>
8907
8908         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8909
8910         * tools/dbus-send.c: Accept both --system and --session.
8911
8912         * tools/dbus-monitor.c: Same here.
8913
8914 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8915
8916         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8917         from C++ (Patch by Miloslav Trmac).
8918
8919 2003-06-15  Joe Shaw  <joe@assbarn.com>
8920
8921         * configure.in: Check for socklen_t.
8922
8923         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8924
8925         * test/test-segfault.c: Add #include <sys/time.h>
8926
8927         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8928         dbus-launch needs it.
8929
8930 2003-06-09  Havoc Pennington  <hp@redhat.com>
8931
8932         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8933         SUN_LEN, it breaks abstract socket usage
8934
8935         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8936         starts of lines.
8937
8938 2003-06-04  Havoc Pennington  <hp@pobox.com>
8939
8940         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8941         using unix:abstract=/foo, and when listening in a tmpdir
8942         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8943
8944         * dbus/dbus-transport.c (_dbus_transport_open): support
8945         unix:abstract=/foo
8946
8947         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8948         support abstract sockets
8949
8950         * dbus/dbus-transport-unix.c
8951         (_dbus_transport_new_for_domain_socket): support abstract sockets
8952
8953         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8954         toggle as an argument, implement abstract namespace support
8955         (_dbus_listen_unix_socket): ditto
8956
8957         * configure.in: add --enable-abstract-sockets and implement
8958         a configure check for autodetection of the right value.
8959
8960 2003-06-01  Havoc Pennington  <hp@pobox.com>
8961
8962         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8963         in /tmp (though on Linux this will end up being useless,
8964         when we add abstract namespace support)
8965
8966         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8967         subst'ing it
8968
8969 2003-05-28  Colin Walters  <walters@verbum.org>
8970
8971         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8972
8973 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
8974
8975         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8976
8977 2003-05-17  Colin Walters  <walters@gnu.org>
8978
8979         * tools/dbus-send.c: Don't exit with an error code if --help was
8980         passed.  Default to using the session bus instead of the system
8981         one.
8982
8983         * tools/dbus-launch.c: Ditto.
8984
8985         * tools/dbus-monitor.c: Ditto.
8986
8987         * tools/dbus-send.1: Update with new arguments.
8988
8989         * tools/dbus-launch.c: Emit code to export variables.  New
8990         arguments -s and -c to specify shell syntax, and a bit of code to
8991         autodetect syntax.  Also, allow specifying a program to run.
8992
8993         * tools/dbus-launch.1: Update with new arguments.
8994
8995         * tools/dbus-send.1: Ditto.
8996
8997         * tools/dbus-monitor.1: Ditto.
8998
8999 2003-05-17  Havoc Pennington  <hp@pobox.com>
9000
9001         * bus/config-parser.c (merge_included): merge in policies from
9002         child configuration file.
9003
9004         * bus/policy.c (bus_policy_merge): function to merge two policies
9005         together
9006
9007 2003-05-16  Havoc Pennington  <hp@redhat.com>
9008
9009         * dbus/dbus-connection.c: disable verbose lock spew
9010
9011         * tools/dbus-send.c: add --print-reply command line option
9012
9013         * tools/dbus-print-message.h (print_message): new util function
9014         shared by dbus-send and dbus-monitor
9015
9016         * tools/dbus-monitor.c (handler_func): exit on disconnect
9017
9018         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9019         disconnected, don't try to use the read_watch
9020
9021         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9022         so we can find this bug more easily
9023
9024 2003-05-16  Havoc Pennington  <hp@redhat.com>
9025
9026         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9027         NULL as DBusHashTable is annoyingly likely to do.
9028
9029 2003-05-16  Colin Walters  <walters@verbum.org>
9030
9031         * tools/dbus-monitor.c: Add --session argument and usage()
9032         function.
9033
9034         * tools/dbus-monitor.1: Update with new --session arg.
9035
9036         * bus/Makefile.am (install-data-hook): Create
9037         $(libdir)/dbus-1.0/services so that the session bus is happy.
9038
9039 2003-05-15  Havoc Pennington  <hp@redhat.com>
9040
9041         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9042         on non-x86. ifdef's are evil.
9043
9044 2003-05-15  Havoc Pennington  <hp@redhat.com>
9045
9046         * configure.in: 0.11
9047
9048         * NEWS: update
9049
9050         * bus/Makefile.am (initddir): apparently we are supposed to put
9051         init scripts in /etc/rc.d/init.d not /etc/init.d
9052
9053         * bus/Makefile.am: remove the "you must --enable-tests to make
9054         check" as it broke distcheck
9055
9056         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9057
9058 2003-05-13  James Willcox  <jwillcox@gnome.org>
9059
9060         * configure.in:
9061         * bus/activation.c: (bus_activation_service_created),
9062         (bus_activation_activate_service):
9063         * bus/driver.c: (bus_driver_send_service_deleted),
9064         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9065         (bus_driver_send_service_acquired),
9066         (bus_driver_send_welcome_message),
9067         (bus_driver_handle_list_services):
9068         * bus/session.conf.in:
9069         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9070         (dbus_bus_service_exists), (dbus_bus_activate_service):
9071         * dbus/dbus-bus.h:
9072
9073         Add some convenience API which lets you activate a service, and did a
9074         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9075         and dbus_message_get_args()
9076
9077 2003-05-11  Havoc Pennington  <hp@pobox.com>
9078
9079         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9080         calling _dbus_marshal_validate_arg() for every byte in a byte
9081         array, etc.
9082
9083         * dbus/dbus-message-handler.c: use atomic reference counting to
9084         reduce number of locks slightly; the global lock in here sucks
9085
9086         * dbus/dbus-connection.c
9087         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9088         update_dispatch_status that can be called with lock held; then use
9089         in a couple places to reduce locking/unlocking
9090         (dbus_connection_send): hold the lock over the whole function
9091         instead of acquiring it twice.
9092
9093         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9094
9095         * bus/connection.c (bus_connections_setup_connection): fix access
9096         to already-freed memory.
9097
9098         * dbus/dbus-connection.c: keep a little cache of linked list
9099         nodes, to avoid using the global linked list alloc lock in the
9100         normal send-message case. Instead we just use the connection lock
9101         that we already have to take.
9102
9103         * dbus/dbus-list.c (_dbus_list_find_last): new function
9104
9105         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9106         change to use a struct for the atomic type; fix docs,
9107         they return value before increment, not after increment.
9108
9109         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9110         (_dbus_string_append_8_aligned): new functions to try to
9111         microoptimize this operation.
9112         (reallocate_for_length): break this out of set_length(), to
9113         improve profile info, and also so we can consider inlining the
9114         set_length() part.
9115
9116         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9117         strings with some preallocation, cuts down on our calls to realloc
9118         a fair bit. Though if we can get the "move entire string to empty
9119         string" optimization below to kick in here, it would be better.
9120
9121         * dbus/dbus-string.c (_dbus_string_move): just call
9122         _dbus_string_move_len
9123         (_dbus_string_move_len): add a special case for moving
9124         an entire string into an empty string; we can just
9125         swap the string data instead of doing any reallocs.
9126         (_dbus_string_init_preallocated): new function
9127
9128 2003-05-11  Havoc Pennington  <hp@pobox.com>
9129
9130         Write a "test-profile" that does echo client-server with threads;
9131         profile reveals lock contention, memcpy/realloc of buffers, and
9132         UTF-8 validation as hot spots. 20% of lock contention eliminated
9133         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9134         contention is global mempool locks for GList and DBusList.
9135
9136         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9137         x86 implementation
9138
9139         * dbus/dbus-connection.c (struct DBusConnection): use
9140         dbus_atomic_t for the reference count
9141
9142         * dbus/dbus-message.c (struct DBusMessage): declare
9143         dbus_atomic_t values as volatile
9144
9145         * configure.in: code to detect ability to use atomic integer
9146         operations in assembly, from GLib patch
9147
9148         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9149         time, tired of it being wrong in threads and forked processes
9150
9151         * glib/test-profile.c: a little program to bounce messages back
9152         and forth between threads and eat CPU
9153
9154         * dbus/dbus-connection.c: add debug spew macros for debugging
9155         thread locks; include config.h at top; fix deadlock in
9156         dbus_connection_flush()
9157
9158 2003-05-08  Havoc Pennington  <hp@pobox.com>
9159
9160         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9161         data from getting written, and there wasn't a good reason to
9162         use _exit really.
9163
9164         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9165         dbus_verbose lines in test coverage
9166         (main): add list of functions sorted by # of untested blocks
9167         to the coverage report
9168
9169         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9170
9171         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9172
9173         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9174         extend test coverage
9175
9176         * test/data/auth/cancel.auth-script: test canceling an
9177         authentication
9178
9179         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9180         aren't used. in CVS history if we end up needing them.
9181
9182 2003-05-04  Havoc Pennington  <hp@pobox.com>
9183
9184         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9185         unit test
9186
9187         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9188         function, which assumed length was in # of strings, not bytes
9189
9190         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9191         missing coverage
9192
9193         * dbus/dbus-connection.c
9194         (_dbus_connection_queue_received_message): disable function for
9195         now, we are only using it in test mode
9196
9197         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9198         remove a mistaken FIXME
9199
9200 2003-05-04  Havoc Pennington  <hp@pobox.com>
9201
9202         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9203         unlock mutex on successful return, patch from Anders Gustafsson
9204
9205 2003-05-04  Havoc Pennington  <hp@pobox.com>
9206
9207         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9208         Anders Gustafsson
9209
9210 2003-05-04  Havoc Pennington  <hp@pobox.com>
9211
9212         * tools/dbus-launch.c: implement
9213
9214         * bus/main.c (main), bus/bus.c (bus_context_new):
9215         implement --print-pid and --fork
9216
9217 2003-05-03  Havoc Pennington  <hp@redhat.com>
9218
9219         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9220         the address had no value, and add to test suite. Fix and
9221         regression test from Miloslav Trmac
9222
9223 2003-05-03  Havoc Pennington  <hp@pobox.com>
9224
9225         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9226         watch is invalid when handled
9227
9228         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9229         dbus-launch utility to launch the bus from a shell script.  Didn't
9230         actually implement dbus-launch yet, it's just a placeholder still.
9231
9232 2003-05-03  Havoc Pennington  <hp@pobox.com>
9233
9234         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9235         daemon; also documents daemon config file, so replaces
9236         doc/config-file.txt. Corrected some stuff from config-file.txt in
9237         the process of moving it.
9238
9239 2003-05-03  Havoc Pennington  <hp@pobox.com>
9240
9241         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9242         add some man pages
9243
9244 2003-05-03  Colin Walters  <walters@verbum.org>
9245
9246         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9247         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9248
9249         * Makefile.am: Update to use new .pc versioning scheme.
9250
9251 2003-05-02  Havoc Pennington  <hp@redhat.com>
9252
9253         * bus/system.conf.in: allow send/receive to/from message bus
9254         service
9255
9256 2003-04-30  Havoc Pennington  <hp@redhat.com>
9257
9258         * configure.in: print a note when building with unit tests and
9259         without assertions
9260
9261 2003-04-30  Havoc Pennington  <hp@redhat.com>
9262
9263         * Makefile.am: add a check-local that complains if you didn't
9264         configure with --enable-tests
9265
9266 2003-04-29  Havoc Pennington  <hp@redhat.com>
9267
9268         * glib/dbus-gmain.c: docs cleanups
9269
9270         * dbus/dbus-types.h: add docs on int64 types
9271
9272         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9273         public API docs section
9274
9275 2003-04-29  Havoc Pennington  <hp@redhat.com>
9276
9277         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9278         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9279         parallel install API version, not with the D-BUS package version.
9280
9281         * HACKING: move some of README over here
9282
9283         * README: updates, and document API/ABI policy
9284
9285         * configure.in: reindentation
9286
9287 2003-04-29  Havoc Pennington  <hp@redhat.com>
9288
9289         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9290         to use this library" to be sure people have the right
9291         expectations.
9292
9293 2003-04-28  Havoc Pennington  <hp@redhat.com>
9294
9295         * configure.in: add --enable-docs which by default is auto yes if
9296         doxygen and db2html found, no otherwise; but can be forced on/off
9297
9298         * doc/Makefile.am: conditionalize whether to build docs on
9299         --enable-docs
9300
9301 2003-04-28  Havoc Pennington  <hp@redhat.com>
9302
9303         * configure.in: 0.10
9304
9305         * NEWS: update
9306
9307         * bus/system.conf.in: add <includedir>system.d</includedir>
9308
9309         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9310         username was provided but not uid
9311
9312         * bus/config-parser.c (struct BusConfigParser): keep track of
9313         whether the parser is toplevel or was included; change some
9314         of the error handling if it's included.
9315
9316 2003-04-27  Havoc Pennington  <hp@pobox.com>
9317
9318         Unbreak my code...
9319
9320         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9321         report correct status if we finish processing authentication
9322         inside this function.
9323
9324         * bus/activation.c (try_send_activation_failure): use
9325         bus_transaction_send_error_reply
9326
9327         * bus/connection.c (bus_connection_get_groups): return an error
9328         explaining the problem
9329
9330         * bus/bus.c (bus_context_check_security_policy): implement
9331         restriction here that inactive connections can only send the
9332         hello message. Also, allow bus driver to send anything to
9333         any recipient.
9334
9335         * bus/connection.c (bus_connection_complete): create the
9336         BusClientPolicy here instead of on-demand.
9337         (bus_connection_get_policy): don't return an error
9338
9339         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9340         sender field in message being replied to
9341
9342         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9343         causing it to return FALSE always
9344
9345         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9346         we checked sender rather than destination
9347
9348 2003-04-25  Havoc Pennington  <hp@redhat.com>
9349
9350         test suite is slightly hosed at the moment, will fix soon
9351
9352         * bus/connection.c (bus_connections_expire_incomplete): fix to
9353         properly disable the timeout when required
9354         (bus_connection_set_name): check whether we can remove incomplete
9355         connections timeout after we complete each connection.
9356
9357         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9358         probably still broken.
9359
9360         * bus/services.c (bus_registry_acquire_service): implement max
9361         number of services owned, and honor allow/deny rules on which
9362         services a connection can own.
9363
9364         * bus/connection.c (bus_connection_get_policy): report errors here
9365
9366         * bus/activation.c: implement limit on number of pending
9367         activations
9368
9369 2003-04-25  Havoc Pennington  <hp@redhat.com>
9370
9371         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9372         where we used >= 0 instead of != DBUS_UID_UNSET.
9373
9374 2003-04-25  Havoc Pennington  <hp@redhat.com>
9375
9376         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9377         were toggled without add/remove, fix from Anders Gustafsson
9378
9379 2003-04-24  Havoc Pennington  <hp@redhat.com>
9380
9381         * test/data/valid-config-files/basic.conf: add <limit> tags to
9382         this test
9383
9384         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9385         <limit> tag in configuration file.
9386
9387 2003-04-24  Havoc Pennington  <hp@redhat.com>
9388
9389         * bus/dispatch.c: somehow missed some name_is
9390
9391         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9392         (_dbus_timeout_set_interval): new
9393
9394         * bus/connection.c (bus_connections_setup_connection): record time
9395         when each connection is first set up, and expire them after the
9396         auth timeout passes.
9397
9398 2003-04-24  Havoc Pennington  <hp@redhat.com>
9399
9400         * dbus/dbus-message.c (dbus_message_name_is): rename
9401         (dbus_message_service_is): rename
9402         (dbus_message_sender_is): rename
9403         (dbus_message_get_service): rename
9404
9405 2003-04-24  Havoc Pennington  <hp@redhat.com>
9406
9407         * configure.in: add --enable-checks
9408
9409         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9410
9411         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9412         to use thread locks.
9413         (_dbus_connection_handler_destroyed_locked): move some private
9414         functions into proper docs group
9415
9416         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9417         _dbus_return_val_if_fail
9418
9419         Throughout: use dbus_return_if_fail
9420
9421 2003-04-23  James Willcox  <jwillcox@gnome.org>
9422
9423         * glib/dbus-glib.h:
9424         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9425         (dbus_connection_setup_with_g_main),
9426         (dbus_server_setup_with_g_main):
9427         * glib/test-dbus-glib.c: (main):
9428         * glib/test-thread-client.c: (main):
9429         * glib/test-thread-server.c: (new_connection_callback), (main):
9430         * tools/dbus-monitor.c: (main):
9431
9432         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9433         and dbus_server_setup_with_g_main().
9434
9435 2003-04-20  Havoc Pennington  <hp@pobox.com>
9436
9437         * doc/dbus-specification.sgml: document the restrictions on
9438         message and service names
9439
9440 2003-04-22  Havoc Pennington  <hp@redhat.com>
9441
9442         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9443         support, and do some code cleanups to share more code and
9444         speed up array marshal/demarshal.
9445
9446         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9447
9448         * configure.in: generate dbus-arch-deps.h
9449
9450         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9451         64-bit typecodes
9452
9453 2003-04-22  Havoc Pennington  <hp@redhat.com>
9454
9455         * test/data/valid-messages/opposite-endian.message: fix test
9456         to use proper type for rply field
9457
9458         * test/data/invalid-messages: add tests for below validation
9459
9460         * dbus/dbus-message.c (decode_header_data): validate field types,
9461         and validate that named fields are valid names
9462         (decode_name_field): consider messages in the
9463         org.freedesktop.Local. namespace to be invalid.
9464
9465         * dbus/dbus-string.c (_dbus_string_validate_name): new
9466
9467 2003-04-19  Havoc Pennington  <hp@pobox.com>
9468
9469         * bus/driver.c (bus_driver_handle_hello): check limits and
9470         return an error if they are exceeded.
9471
9472         * bus/connection.c: maintain separate lists of active and inactive
9473         connections, and a count of each. Maintain count of completed
9474         connections per user. Implement code to check connection limits.
9475
9476         * dbus/dbus-list.c (_dbus_list_unlink): export
9477
9478         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9479         number of bytes in the message queue for a connection
9480
9481 2003-04-18  Havoc Pennington  <hp@pobox.com>
9482
9483         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9484
9485         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9486         memleaks
9487
9488         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9489         on realloc be sure to update the pointer in the keyring
9490
9491         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9492         offset to avoid writing to unallocated memory
9493
9494         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9495         try the next mechanism, so we properly handle OOM
9496
9497         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9498         on OOM.
9499         (_dbus_keyring_new): fix OOM bug
9500         (_dbus_keyring_new_homedir): always set error; impose a maximum
9501         number of keys we'll load from the file, mostly to speed up the
9502         test suite and make its OOM checks more useful, but also for
9503         general sanity.
9504
9505         * dbus/dbus-auth.c (process_error_server): reject authentication
9506         if we get an error from the client
9507         (process_cancel): on cancel, send REJECTED, per the spec
9508         (process_error_client): send CANCEL if we get an error from the
9509         server.
9510
9511 2003-04-18  Havoc Pennington  <hp@pobox.com>
9512
9513         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9514         debug spew
9515
9516         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9517         handling problem
9518
9519         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9520         about DBUS_TEST_HOMEDIR once
9521
9522         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9523         the environment
9524
9525         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9526         config file so we test the right thing
9527
9528         Throughout: assorted docs improvements
9529
9530 2003-04-18  Havoc Pennington  <hp@pobox.com>
9531
9532         * glib/dbus-gmain.c: adapt to watch changes
9533
9534         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9535
9536         * dbus/dbus-server.h: remove dbus_server_handle_watch
9537
9538         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9539
9540         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9541         like DBusTimeout, so we don't need dbus_connection_handle_watch
9542         etc.
9543
9544 2003-04-17  Havoc Pennington  <hp@redhat.com>
9545
9546         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9547         database usage so it all goes via the DBusUserDatabase cache.
9548
9549 2003-04-17  Havoc Pennington  <hp@redhat.com>
9550
9551         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9552         there was an OOM watch we skipped, we always return TRUE so we
9553         iterate again to have a look at it again. Fixes test suite hang.
9554         Code rearrangement also lets us lose some memset and only iterate
9555         over callbacks once.
9556
9557         * bus/driver.c (bus_driver_handle_message): sense of test for
9558         reply was backward
9559
9560 2003-04-16  Havoc Pennington  <hp@pobox.com>
9561
9562         * doc/dbus-specification.sgml: make spec say serials are unsigned
9563
9564         * dbus/dbus-message.h: change message serials to unsigned
9565
9566         * dbus/dbus-connection.c: adapt to message serials being unsigned
9567
9568 2003-04-15  Havoc Pennington  <hp@pobox.com>
9569
9570         * bus/bus.c: create and keep around a shared DBusUserDatabase
9571         object.
9572
9573         * bus/connection.c (bus_connection_get_groups): don't cache
9574         groups for user in the connection object, since user database
9575         object now does that.
9576
9577 2003-04-16  Havoc Pennington  <hp@redhat.com>
9578
9579         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9580         list of size counters
9581         (_dbus_message_loader_putback_message_link): put back a popped link
9582
9583         * dbus/dbus-connection.c
9584         (dbus_connection_set_max_live_messages_size): rename
9585         max_received_size
9586         (dbus_connection_get_outgoing_size): get size of outgoing
9587         queue
9588         (_dbus_connection_set_connection_counter): remove this cruft
9589
9590 2003-04-14  Havoc Pennington  <hp@redhat.com>
9591
9592         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9593         caching, but at some point we might want to be able to use a
9594         different database.
9595
9596         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9597         SHA1 conf file to test the sha1 auth mechanism, since the regular
9598         test always uses EXTERNAL when available.
9599
9600         * configure.in,
9601         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9602         add conf file that requires use of sha1 auth
9603
9604 2003-04-13  Havoc Pennington  <hp@pobox.com>
9605
9606         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9607         from Philip Blundell to send messages and monitor them.
9608
9609 2003-04-13  Havoc Pennington  <hp@pobox.com>
9610
9611         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9612         callbacks
9613
9614         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9615         users
9616
9617         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9618         fix to only recover unused bytes if we're already authenticated
9619         (_dbus_transport_get_is_authenticated): fix to still mark us
9620         authenticated if there are unused bytes.
9621
9622         * bus/dispatch.c: implement security policy checking
9623
9624         * bus/connection.c (bus_transaction_send_from_driver): new
9625
9626         * bus/bus.c (bus_context_check_security_policy): new
9627
9628         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9629         now we just set the DBusError and it gets converted to an error
9630         reply.
9631
9632         * bus/connection.c (allow_user_function): enable code using actual
9633         data from the config file
9634
9635         * bus/policy.c (list_allows_user): handle wildcard rules for
9636         user/group connection perms
9637
9638 2003-04-13  Havoc Pennington  <hp@pobox.com>
9639
9640         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9641
9642         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9643
9644         * bus/policy.c (bus_policy_append_mandatory_rule)
9645         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9646         (bus_policy_append_group_rule): new functions
9647
9648 2003-04-12  Havoc Pennington  <hp@pobox.com>
9649
9650         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9651
9652         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9653         the pid/gid/uid, just for paranoia.
9654
9655         * test/break-loader.c (randomly_do_n_things): find a byte
9656         containing a type code, and randomly change it to a different
9657         type code.
9658
9659 2003-04-12  Havoc Pennington  <hp@pobox.com>
9660
9661         * bus/policy.h: change BusPolicy to be the thing from the config
9662         file, and rename old BusPolicy to BusClientPolicy
9663
9664         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9665         match change in how policy works
9666
9667         * dbus/dbus-internals.h: mark assert_not_reached as
9668         __attribute((noreturn))__
9669
9670 2003-04-11  Havoc Pennington  <hp@redhat.com>
9671
9672         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9673         the broadcast service. Use boolean return for ServiceExists.
9674
9675 2003-04-11  Havoc Pennington  <hp@redhat.com>
9676
9677         * configure.in: add another directory to look for qt in.
9678
9679 2003-04-11  Havoc Pennington  <hp@redhat.com>
9680
9681         * AUTHORS: add Colin Walters
9682
9683 2003-04-11  Havoc Pennington  <hp@redhat.com>
9684
9685         * NEWS: update
9686
9687         * configure.in: 0.9
9688
9689 2003-04-11  Havoc Pennington  <hp@redhat.com>
9690
9691         * bus/messagebus.in: remove pid file when stopping the
9692         message bus, since the bus won't have privileges to remove it
9693         itself.
9694
9695 2003-04-11  Havoc Pennington  <hp@redhat.com>
9696
9697         * bus/bus.c (bus_context_new): move credentials change after
9698         creating pidfile
9699
9700 2003-04-11  Havoc Pennington  <hp@pobox.com>
9701
9702         * test/decode-gcov.c: add "below average functions" to the
9703         coverage report, and change how some of the code works.
9704
9705         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9706         not in the coverage stats.
9707
9708         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9709         couple places so running the test suite doesn't result in megaspam.
9710
9711 2003-04-11  Havoc Pennington  <hp@pobox.com>
9712
9713         * bus/dispatch.c (check_existent_service_activation): accept a no
9714         memory error in a place we didn't before
9715
9716         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9717         in case the first one failed," since the test suite is less
9718         broken now.
9719
9720 2003-04-10  Havoc Pennington  <hp@pobox.com>
9721
9722         * bus/dispatch.c (check_segfault_service_activation): add test
9723         for launching an executable that just crashes.
9724
9725         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9726         don't leave a million cores. We'll see how portable this is.
9727
9728 2003-04-10  Havoc Pennington  <hp@pobox.com>
9729
9730         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9731         the possible parent failures before we fork, so that we don't
9732         fail to create a babysitter after creating the child.
9733
9734         * bus/activation.c (bus_activation_activate_service): kill child
9735         if we don't successfully complete the activation.
9736
9737 2003-04-10  Havoc Pennington  <hp@redhat.com>
9738
9739         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9740         the connection if it's disconnected
9741
9742         * bus/activation.c (bus_activation_service_created): use new
9743         transaction features to roll back removal of pending activation if
9744         we don't successfully create the service after all. Don't remove
9745         pending activation if the function fails.
9746
9747         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9748         (_dbus_list_insert_after_link): new code to facilitate
9749         services.c fixes
9750
9751         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9752         new functionality, so we can preallocate the ability to insert
9753         into a hash table.
9754
9755         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9756         allowing us to put custom hooks in a transaction to be used for
9757         cancelling said transaction
9758
9759         * doc/dbus-specification.sgml: add some discussion of secondary
9760         service owners, and disallow zero-length service names
9761
9762         * bus/services.c (bus_registry_acquire_service): new function,
9763         splits out part of bus_driver_handle_acquire_service() and fixes
9764         a bug where we didn't remove the service doing the acquiring
9765         from the secondary queue if we failed to remove the current owner
9766         from the front of the queue.
9767
9768 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9769
9770         * doc/dbus-specification.sgml:
9771         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9772
9773 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9774
9775         * bus/.cvsignore:
9776         * glib/.cvsignore:
9777         * test/.cvsignore:
9778         Added files to cvsignore
9779
9780         * dbus/dbus-message.h:
9781         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9782         Make get_named() take two out argument and return a boolean.
9783         (dbus_message_iter_get_args_valist):
9784         Update usage of get_named().
9785         (dbus_message_iter_append_byte):
9786         Fix typo
9787         (dbus_message_iter_append_named)
9788         Fix typo
9789         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9790         More tests.
9791
9792 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9793
9794         * dbus/dbus-marshal.[ch]:
9795         Add array_type_pos argument to _dbus_marshal_validate_arg.
9796         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9797
9798         * dbus/dbus-message.[ch]:
9799         Multi-dimensional arrays have full type specification in the
9800         outermost array. Iter code re-arranged to handle this.
9801         Added some more iter tests.
9802
9803         * doc/dbus-specification.sgml:
9804         Add me to authors.
9805         Remove old FIXME.
9806         Update new array encoding description.
9807         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9808
9809         * test/data/invalid-messages/array-with-mixed-types.message:
9810         * test/data/valid-messages/array-of-array-of-uint32.message:
9811         Change to the new array format.
9812
9813         * test/data/invalid-messages/too-short-dict.message:
9814         Fix bug in test.
9815
9816         * test/data/valid-messages/recursive-types.message:
9817         Fix up and extend test.
9818
9819 2003-04-10  Havoc Pennington  <hp@pobox.com>
9820
9821         * bus/dispatch.c: lots of fixes
9822
9823         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9824         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9825         that was crack, broke the test service.
9826
9827         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9828         handling to avoid piling up errors if we get a failure on the
9829         first address.
9830
9831         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9832         pid in assertion failures.
9833
9834         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9835         to some fixed size of file descriptor array. Don't return TRUE
9836         anytime a timeout exists, that led to lots of busy loop silliness
9837         in the tests.
9838
9839 2003-04-09  Havoc Pennington  <hp@redhat.com>
9840
9841         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9842         I'd checked this in earlier but hadn't.
9843
9844 2003-04-09  Havoc Pennington  <hp@redhat.com>
9845
9846         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9847         the activation test (man this is getting old!)
9848
9849 2003-04-09  Havoc Pennington  <hp@redhat.com>
9850
9851         * test/test-utils.c: use dispatch status function to fix this up
9852
9853         * bus/connection.c (connection_watch_callback): don't dispatch
9854         from here
9855         (connection_timeout_callback): don't dispatch from here
9856         (bus_connections_setup_connection): set the dispatch status function
9857         (bus_connection_disconnected): unset it
9858
9859         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9860         used to add a connection to be dispatched
9861         (_dbus_loop_iterate): do the dispatching at the end of each
9862         iteration
9863
9864         * dbus/dbus-connection.c
9865         (dbus_connection_set_dispatch_status_function): new function
9866         allowing us to fix up main loop usage
9867         (_dbus_connection_last_unref): free all the various function
9868         user data
9869         (dbus_connection_dispatch): call the DispatchStatusFunction
9870         whenever this function returns
9871         (dbus_connection_handle_watch): call DispatchStatusFunction
9872         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9873         (reply_handler_timeout): call DispatchStatusFunction
9874         (dbus_connection_flush): call DispatchStatusFunction
9875
9876 2003-04-09  Havoc Pennington  <hp@redhat.com>
9877
9878         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9879         a memory leak
9880
9881         * bus/dispatch.c (check_service_activated): fix bug in test
9882
9883         * dbus/dbus-mainloop.c (check_timeout): fix this up
9884
9885         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9886         verbose output so we can sort out output from different processes,
9887         e.g. in the activation case.
9888
9889 2003-04-08  Colin Walters  <walters@gnu.org>
9890
9891         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9892         the pid file.
9893         (bus_context_new): Set it.
9894         (bus_context_unref): Use it to delete the pid file.
9895
9896 2003-04-08  Havoc Pennington  <hp@redhat.com>
9897
9898         * test/data/invalid-messages/array-with-mixed-types.message:
9899         regression test that fails for the moment
9900
9901         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9902         tests for convenience
9903
9904         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9905         array of nil, it broke things.
9906
9907         * test/data/invalid-messages/array-of-nil.message: regression test
9908
9909         * test/data/valid-messages/array-of-array-of-uint32.message:
9910         happened to write this so added it to suite
9911
9912 2003-04-08  Havoc Pennington  <hp@redhat.com>
9913
9914         * bus/driver.c (bus_driver_handle_acquire_service): init
9915         retval/reply before checking name
9916
9917         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9918         recursion depth argument
9919
9920         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9921         in the public struct for future extension
9922
9923         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9924         typo
9925
9926         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9927         message
9928
9929         * doc/dbus-specification.sgml: fix typo
9930
9931 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9932
9933         Implemented recursive types, named types and new-style iters
9934
9935         * bus/driver.c:
9936         * glib/test-thread-client.c: (thread_func):
9937         * glib/test-thread-server.c: (handle_test_message):
9938         * test/test-service.c: (handle_echo):
9939         Update to new api
9940
9941         * dbus/Makefile.am:
9942         * dbus/dbus-dict.c:
9943         * dbus/dbus-dict.h:
9944         * dbus/dbus.h
9945         Remove DBusDict
9946
9947         * dbus/dbus-internals.c: (_dbus_type_to_string):
9948         Update for new types.
9949
9950         * dbus/dbus-marshal.[ch]:
9951         Implement recursive types and the new marshalling format.
9952         Remove hardcoded dict marshalling.
9953         Marshal named types.
9954
9955         * dbus/dbus-message-builder.c:
9956         Add BYTE_ARRAY.
9957         Remove references to old types
9958
9959         * dbus/dbus-message.[ch]:
9960         New non-refcounted iter API that supports recursive iters.
9961         Use iters for appending, including support for recursive
9962         iters.
9963         Add byte and named type support.
9964         Update everything to new marshalling formats.
9965         Add tests for new API.
9966
9967         * dbus/dbus-protocol.h:
9968         Remove old array types.
9969         Add types: BYTE, ARRAY, DICT, NAMED
9970
9971         * dbus/dbus-string.c:
9972         * dbus/dbus-sysdeps.c:
9973         Make parse_double locale safe.
9974
9975         * dbus/dbus-test-main.c:
9976         Call setlocale.
9977
9978         * dbus/dbus-test.c:
9979         Kill dict test
9980
9981         * doc/dbus-specification.sgml:
9982         Update spec
9983
9984         * test/data/incomplete-messages/missing-body.message:
9985         * test/data/invalid-messages/bad-boolean.message:
9986         * test/data/invalid-messages/bad-boolean-array.message:
9987         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9988         * test/data/invalid-messages/boolean-has-no-value.message-raw:
9989         * test/data/invalid-messages/too-short-dict.message:
9990         * test/data/valid-messages/dict-simple.message:
9991         * test/data/valid-messages/dict.message:
9992         * test/data/valid-messages/emptiness.message:
9993         * test/data/valid-messages/lots-of-arguments.message:
9994         * test/data/valid-messages/no-padding.message:
9995         * test/data/valid-messages/recursive-types.message:
9996         Add missing NAME fields
9997         Fix up dicts & arrays
9998
9999         * test/data/invalid-messages/dict-with-nil-value.message:
10000         Removed, this is not invalid anymore.
10001
10002         * test/data/valid-messages/recursive-types.message:
10003         Add new test for deeply recursive types.
10004
10005 2003-04-07  Havoc Pennington  <hp@pobox.com>
10006
10007         * bus/driver.c (bus_driver_handle_acquire_service): return an
10008         error if you try to acquire a service that starts with ':'
10009
10010 2003-04-07  Havoc Pennington  <hp@redhat.com>
10011
10012         * doc/dbus-specification.sgml: require that base service names
10013         start with ':' and that the base service is created/deleted
10014         as first and last things a connection does on the bus
10015
10016         * bus/dispatch.c (check_existent_service_activation): lots more
10017         work on the activation test; it doesn't fully pass yet...
10018
10019         * test/test-service.c (main): fix so we don't memleak the
10020         connection to the message bus
10021         (filter_func): accept a message asking us to exit
10022
10023 2003-04-06  Havoc Pennington  <hp@pobox.com>
10024
10025         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10026         from Colin Walters
10027
10028         * configure.in: fixes to Qt detection from Colin Walters
10029
10030         * doc/Makefile.am: Only remove generated docbook dirs if they
10031         exist, from Colin Walters
10032
10033         * dbus/dbus-bus.c: change how we set well-known connections to
10034         NULL, so that it works if a single connection is stored in
10035         two well-known array slots.
10036
10037         * test/Makefile.am: remove a lot of stuff that isn't immediately
10038         useful, it's in CVS history if we want it.
10039
10040         * test/test-service.c: use dbus-mainloop instead of that
10041         watch.[hc] crack
10042
10043 2003-04-06  Havoc Pennington  <hp@pobox.com>
10044
10045         * dbus/Makefile.am: split lists of sources into stuff that goes in
10046         the library, util functions that go in the lib and are also used
10047         elsewhere, and util functions that are used in tests/daemon but
10048         don't go in the lib.
10049
10050         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10051         here so it can be used in test binaries also
10052
10053 2003-04-06  Havoc Pennington  <hp@pobox.com>
10054
10055         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10056         here in the parent process, so we can return an error if it
10057         fails. Also, move some of the code into the child so the parent
10058         is less hosed if we fail midway through.
10059
10060         * bus/bus.c (bus_context_new): move pidfile detection further up
10061         in the function, before we start overwriting sockets and such.
10062
10063         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10064
10065         * configure.in: add --with-system-pid-file and --with-system-socket
10066
10067 2003-04-06  Colin Walters  <walters@verbum.org>
10068
10069         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10070
10071         * bus/system.conf.in: Declare a pidfile.
10072
10073         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10074         create one (if appropriate).
10075
10076         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10077         (struct BusConfigParser) [pidfile]: New.
10078         (element_type_to_name, merge_included, start_busconfig_child)
10079         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10080         (bus_config_parser_unref): Free it.
10081         (bus_config_parser_get_pidfile): New function.
10082
10083         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10084
10085         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10086
10087         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10088
10089         * dbus/dbus-sysdeps.h: Prototype it.
10090
10091 2003-04-06  Havoc Pennington  <hp@pobox.com>
10092
10093         * bus/bus.c (bus_context_new): print the address in here, rather
10094         than in main(), because we need to do it before forking the daemon
10095
10096         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10097         on the service nonexistent error
10098
10099         * bus/driver.c (bus_driver_handle_acquire_service): set the
10100         sender on the AcquireService reply
10101
10102         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10103         server also listen on a UNIX socket so services can connect to it.
10104
10105 2003-04-06  Havoc Pennington  <hp@pobox.com>
10106
10107         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10108         so it detects deadlocks and also we actually init threads when
10109         debugging.
10110
10111 2003-04-06  Havoc Pennington  <hp@pobox.com>
10112
10113         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10114         save the domain socket name, and unlink it when we disconnect the
10115         server. Means that at least when we exit normally, we won't leave
10116         a bunch of junk in /tmp
10117
10118         * dbus/dbus-transport-unix.c
10119         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10120         memory management). (I was making a real change here but then
10121         didn't)
10122
10123 2003-04-06  Havoc Pennington  <hp@pobox.com>
10124
10125         * bus/bus.c (bus_context_new): fix wrong handling of
10126         server_data_slot_unref() in the error case.
10127
10128         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10129         "(condition) != 0" to _dbus_real_assert so that
10130         "_dbus_assert (pointer)" doesn't cause a warning
10131
10132         * bus/main.c (main): accept --print-address option to print out
10133         the message bus address
10134
10135         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10136
10137         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10138         "tmpdir" option to unix: address on client side
10139
10140         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10141         to unix: address
10142
10143         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10144         we can use to create sockets in the test suite.
10145
10146         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10147         cleanly. To be used for testing.
10148
10149         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10150
10151         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10152
10153         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10154         handle trying to call this when there's no servers active
10155
10156 2003-04-05  Havoc Pennington  <hp@pobox.com>
10157
10158         * NEWS: update
10159
10160         * configure.in: 0.8
10161
10162 2003-04-05  Havoc Pennington  <hp@pobox.com>
10163
10164         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10165         crash on startup. Need to get "try starting the daemon"
10166         in the test suite I guess. ;-)
10167
10168         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10169         tracked the number of open connections; it's better done in
10170         application-specific code as you want it to span all servers etc.
10171
10172 2003-04-05  Havoc Pennington  <hp@pobox.com>
10173
10174         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10175         patch from Colin Walters
10176
10177 2003-04-05  Havoc Pennington  <hp@pobox.com>
10178
10179         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10180         reality; in fact multiple mechanisms are allowed.
10181
10182         * dbus/dbus-internals.c (_dbus_real_assert)
10183         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10184         _dbus_assert_not_reached() into functions, so that they don't show
10185         up in basic block counts for test coverage, and don't use up as
10186         much disk space. Does mean slower execution speed though, so
10187         assumes --disable-asserts is the normal production case.
10188
10189 2003-04-05  Havoc Pennington  <hp@pobox.com>
10190
10191         * test/Makefile.am (dist-hook): also dist *.in files
10192
10193         * NEWS: update
10194
10195         * configure.in: 0.7
10196
10197 2003-04-05  Havoc Pennington  <hp@pobox.com>
10198
10199         * dbus/dbus-string.c: docs warning
10200
10201         * dbus/dbus-spawn.c: missing docs
10202
10203         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10204
10205 2003-04-05  Havoc Pennington  <hp@pobox.com>
10206
10207         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10208         magic from GLib
10209
10210         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10211         to -1 once we've reaped the babysitter
10212         (_dbus_babysitter_handle_watch): do as much work as we can, not
10213         just one go of it
10214
10215         * bus/activation.c: add code using DBusBabysitter so that we
10216         handle it when a service fails to start up properly.
10217         (bus_activation_service_created): don't remove the activation
10218         entries as we go, just let them get removed when we free the pending
10219         activation. Unref reply messages after sending them.
10220
10221 2003-04-05  Havoc Pennington  <hp@pobox.com>
10222
10223         * test/decode-gcov.c (main): print per-directory stats in the report
10224
10225         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10226
10227 2003-04-05  Havoc Pennington  <hp@pobox.com>
10228
10229         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10230
10231         * test/decode-gcov.c: hack up a little program to suck data
10232         out of gcov files. Yes this is sort of silly.
10233
10234         * configure.in: define something in config.h and do an
10235         AM_CONDITIONAL when gcov is enabled
10236
10237 2003-04-04  Havoc Pennington  <hp@redhat.com>
10238
10239         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10240         return a "babysitter" object that is used to monitor the status of
10241         the spawned process and reap it when required.
10242
10243         * test/test-segfault.c, test/test-exit.c,
10244         test/test-sleep-forever.c: binaries that do various lame things,
10245         used in the test suite.
10246
10247         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10248
10249 2003-04-03  Havoc Pennington  <hp@pobox.com>
10250
10251         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10252         in preparation for modifying it, dbus-sysdeps is getting
10253         a bit unmanageable.
10254
10255 2003-04-03  Havoc Pennington  <hp@redhat.com>
10256
10257         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10258         have multiple ones
10259
10260         * bus/*.[hc]: adapt to mainloop change
10261
10262 2003-04-03  Havoc Pennington  <hp@redhat.com>
10263
10264         * bus/activation.c (load_directory): fix up memleaks
10265         (bus_activation_entry_free): free the entry
10266
10267         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10268         we get one from the message bus; fix memleaks.
10269
10270         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10271
10272 2003-04-03  Havoc Pennington  <hp@pobox.com>
10273
10274         * bus/config-parser.c (bus_config_parser_unref): free
10275         list of mechanisms, bug discovered by test suite enhancements
10276         (putting system.conf and session.conf into suite)
10277
10278         * test/Makefile.am, test/test-service.c: add placeholder for a
10279         test service that we'll activate as part of test suite. Doesn't
10280         do anything yet.
10281
10282         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10283         setting NULL value, and use system malloc not dbus_malloc()
10284         when we have unavoidable memleakage.
10285
10286         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10287         didn't work, and support DBUS_BUS_ACTIVATION.
10288
10289         * bus/activation.c (child_setup): pass our well-known bus type to
10290         the child
10291
10292         * bus/config-parser.c: support <type> to specify well-known type
10293
10294         * doc/dbus-specification.sgml: document the env variables to
10295         locate well-known buses and find service activator
10296
10297 2003-04-02  Havoc Pennington  <hp@redhat.com>
10298
10299         * test/Makefile.am (all-local): add a rule to copy tests to
10300         builddir, so we can have generated tests. Use this to remove the
10301         silly hack for testing system.conf and session.conf. Will use this
10302         shortly to generate .service files pointing to test binaries.
10303
10304 2003-04-02  Havoc Pennington  <hp@redhat.com>
10305
10306         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10307         current alloc and needed new length, not max of the doubled
10308         allocation and needed new length. Also, when building tests,
10309         don't do the double-allocation stuff, just realloc every time.
10310
10311 2003-04-02  Havoc Pennington  <hp@redhat.com>
10312
10313         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10314         in error messages
10315         (_dbus_string_get_dirname): new
10316         (_dbus_sysdeps_test): new
10317         (_dbus_directory_open): include dirnames in error messages
10318
10319         * bus/config-parser.c: interpret <include> and <includedir> and
10320         <servicedir> relative to config file location if the given
10321         filename is not absolute.
10322
10323         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10324
10325 2003-04-02  Havoc Pennington  <hp@redhat.com>
10326
10327         * bus/connection.c (bus_transaction_send_error_reply): set sender
10328         service for the error, and unref the reply on success
10329
10330         * bus/activation.c: convert to use BusTransaction so OOM can be
10331         handled correctly
10332         (bus_activation_service_created): set sender of the message
10333
10334 2003-04-01  Havoc Pennington  <hp@redhat.com>
10335
10336         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10337         <includedir> (at least mostly)
10338
10339         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10340         first, then the user ID
10341
10342 2003-04-01  Havoc Pennington  <hp@pobox.com>
10343
10344         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10345         function
10346
10347         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10348
10349         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10350
10351         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10352         socket 0777, and unlink any existing socket.
10353
10354         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10355         the configuration file so specifies; set up auth mechanism
10356         restrictions
10357
10358         * bus/config-parser.c (bus_config_parser_content): add support
10359         for <fork> option and fill in code for <auth>
10360
10361         * bus/system.conf.in: add <fork/> to default configuration,
10362         and limit auth mechanisms to EXTERNAL
10363
10364         * doc/config-file.txt (Elements): add <fork>
10365
10366         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10367         (_dbus_change_identity): new function
10368
10369 2003-03-31  Havoc Pennington  <hp@redhat.com>
10370
10371         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10372         (_dbus_listen_unix_socket): fix off-by-one error in null
10373         termination spotted by Nalin
10374
10375 2003-03-31  Havoc Pennington  <hp@redhat.com>
10376
10377         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10378         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10379         having a real home directory available.
10380
10381 2003-03-31  Havoc Pennington  <hp@redhat.com>
10382
10383         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10384
10385         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10386
10387         * configure.in: add support for specifying a style of init script
10388         to install
10389
10390 2003-03-31  Havoc Pennington  <hp@redhat.com>
10391
10392         Fix some annoying DBusString API and fix all affected code.
10393
10394         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10395         max_length argument
10396         (_dbus_string_get_data): change to return string instead of using
10397         an out param
10398         (_dbus_string_get_const_data): ditto
10399         (_dbus_string_get_data_len): ditto
10400         (_dbus_string_get_const_data_len): ditto
10401
10402 2003-03-31  Havoc Pennington  <hp@redhat.com>
10403
10404         * bus/main.c (main): fix up the command line arguments to be nicer
10405
10406 2003-03-31  Havoc Pennington  <hp@redhat.com>
10407
10408         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10409         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10410         final location that lands in the config file
10411
10412         * bus/config-loader-expat.c (bus_config_load): fix type of
10413         XML_Parser variable
10414
10415         * doc/TODO: remove TODO item for dbus_bus_get()
10416
10417         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10418
10419 2003-03-31  Havoc Pennington  <hp@pobox.com>
10420
10421         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10422         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10423         argument since they are always client side
10424
10425         * dbus/dbus-server.c (dbus_server_get_address): new function
10426
10427         * bus/main.c (main): take the configuration file as an argument.
10428
10429         * test/data/valid-config-files/debug-allow-all.conf: new file to
10430         use with dispatch.c tests for example
10431
10432         * bus/test-main.c (main): require test data dir
10433
10434         * bus/bus.c (bus_context_new): change this to take a
10435         configuration file name as argument
10436
10437         * doc/config-file.txt (Elements): add <servicedir>
10438
10439         * bus/system.conf, bus/session.conf: new files
10440
10441         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10442         well-known socket if none set
10443
10444         * configure.in: create system.conf and session.conf
10445
10446 2003-03-30  Havoc Pennington  <hp@pobox.com>
10447
10448         * bus/config-parser.c: hacking
10449
10450         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10451         to shut down, since it could cause weirdness with the DBusList
10452         lock
10453
10454         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10455         link-oriented stack routines
10456         (alloc_link): free the mempool if the first alloc from it fails
10457
10458         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10459
10460         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10461         from GLib
10462         (_dbus_string_skip_white): new
10463
10464         * doc/config-file.txt (Elements): add <includedir>
10465
10466 2003-03-28  Havoc Pennington  <hp@pobox.com>
10467
10468         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10469         (_dbus_string_copy_data): new functions
10470
10471 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10472
10473         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10474         * dbus/dbus-bus.h:
10475         Add dbus_bus_get.
10476
10477         * dbus/dbus-memory.c:
10478         Fix a doc comment.
10479
10480 2003-03-28  Havoc Pennington  <hp@pobox.com>
10481
10482         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10483         I think it may have just been superstition. Not sure.
10484
10485         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10486         failures that were not being handled.
10487
10488         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10489
10490         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10491         row that will fail on out-of-memory.
10492
10493         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10494         function for testing out-of-memory handling.
10495
10496         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10497         allocation functions, they do map exactly to the expat ones.
10498
10499 2003-03-27  Havoc Pennington  <hp@redhat.com>
10500
10501         * bus/config-loader-libxml.c (bus_config_load): add another error
10502         check
10503
10504 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10505
10506         * doc/TODO:
10507         Add note about automatic service activation.
10508
10509         * doc/dbus-specification.sgml:
10510         Rename the specification and clarify a few things.
10511
10512 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10513
10514         * Doxyfile.in:
10515         * dbus/dbus-address.c:
10516         * dbus/dbus-dict.c:
10517         * dbus/dbus-marshal.c:
10518         * dbus/dbus-server-debug-pipe.c:
10519         * dbus/dbus-transport-unix.c:
10520         Fix documentation warnings.
10521
10522 2003-03-26  Havoc Pennington  <hp@pobox.com>
10523
10524         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10525         after every test so it's quick and easy to see which leaked, and
10526         so we test multiple dbus_shutdown() calls
10527
10528         * configure.in: change configure.in XML stuff to also support
10529         expat
10530
10531         * config-loader-libxml.c: some hacking
10532
10533         * config-loader-expat.c: some hacking
10534
10535         * config-parser.c: some hacking, plus tests
10536
10537 2003-03-25  Havoc Pennington  <hp@redhat.com>
10538
10539         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10540
10541         * configure.in: add --with-xml option to specify XML library,
10542         right now only libxml is supported.
10543
10544         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10545         nonworking code between home and work, still just stubs
10546
10547 2003-03-24  Havoc Pennington  <hp@redhat.com>
10548
10549         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10550         file
10551
10552         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10553         NULL argument for "message" if the error is a well-known one,
10554         fill in a generic message in this case.
10555
10556         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10557         favor of DBusError
10558
10559         * bus/test.c (bus_test_flush_bus): add
10560
10561         * bus/policy.c (bus_policy_test): test code stub
10562
10563 2003-03-24  Havoc Pennington  <hp@pobox.com>
10564
10565         * bus/connection.c (bus_connections_setup_connection): set up
10566         the "can this user connect" function, but it always returns
10567         TRUE until we have a config file parser so we can have a config
10568         file that allows connections.
10569
10570 2003-03-23  Havoc Pennington  <hp@pobox.com>
10571
10572         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10573         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10574         the mutex, so we can check for proper memory management
10575         and OOM handling.
10576
10577         * dbus/dbus-dataslot.c: remove the mutex from
10578         DBusDataSlotAllocator and lock it manually when using it,
10579         to simplify fitting it into the global slots framework.
10580
10581         * dbus/dbus-threads.c (init_static_locks): rework how we're
10582         handling global locks so they are easily shut down.
10583
10584         * bus/policy.c (bus_policy_append_rule): fix
10585
10586         * bus/test-main.c (main): check for memleaks
10587
10588         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10589         test suite check for memleaks
10590
10591         * dbus/dbus-memory.c: add support in test mode for tracking
10592         number of outstanding blocks
10593
10594 2003-03-23  Havoc Pennington  <hp@pobox.com>
10595
10596         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10597         policies code
10598
10599         * dbus/dbus-hash.h: add ULONG hash keys
10600
10601         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10602         (_dbus_get_group_id): new function
10603
10604 2003-03-20  Havoc Pennington  <hp@redhat.com>
10605
10606         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10607         new function
10608         (dbus_connection_get_unix_user): new function
10609
10610 2003-03-20  Havoc Pennington  <hp@pobox.com>
10611
10612         * bus/connection.c (bus_connection_send_oom_error): assert that
10613         message has a sender
10614         (connection_execute_transaction): ditto
10615         (bus_connection_preallocate_oom_error): fix to set the sender, and
10616         set recipient to the destination service, not the bus driver
10617
10618         * bus/policy.c: hacking
10619
10620         * dbus/dbus-message.c (dbus_message_service_is): new function
10621         (dbus_message_sender_is): new
10622
10623 2003-03-19  Havoc Pennington  <hp@redhat.com>
10624
10625         * bus/policy.c: start sketching code for policy restrictions on
10626         what connections can do.
10627
10628 2003-03-18  Havoc Pennington  <hp@redhat.com>
10629
10630         * doc/TODO: some notes on high-level todo items. Little nitpick
10631         stuff is all in @todo, so no need to add it here.
10632
10633         * doc/config-file.txt: some notes on how config file might look
10634
10635 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10636
10637         * configure.in: 0.6
10638
10639         * NEWS: Update.
10640
10641 2003-03-17  Havoc Pennington  <hp@redhat.com>
10642
10643         * dbus/dbus-internals.h: add gcc attributes so that
10644         our printf-style functions warn on bad arguments to
10645         format
10646
10647         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10648         format bug
10649
10650         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10651         printf format bug
10652
10653 2003-03-17  Havoc Pennington  <hp@redhat.com>
10654
10655         * bus/test-main.c (main): make it print something as it runs
10656         so make check doesn't look stuck
10657
10658         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10659         from CVS, now obsolete
10660
10661 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10662
10663         * bus/dispatch.c: (bus_dispatch):
10664         Refetch the service name since it may have been reallocated
10665         when dbus_message_set_sender was called.
10666
10667         * dbus/dbus-sysdeps.c: (_dbus_accept):
10668         Add address and address length variables and use them to stop
10669         valgrind from complaining.
10670
10671 2003-03-17  Havoc Pennington  <hp@pobox.com>
10672
10673         All tests pass, no memleaks, no valgrind complaints.
10674
10675         * bus/test.c: refcount handler_slot
10676
10677         * bus/connection.c (bus_connections_new): refcount
10678         connection_data_slot
10679
10680         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10681         bytes so that auth scripts pass.
10682
10683         * bus/dispatch.c: init message_handler_slot so it gets allocated
10684         properly
10685
10686         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10687
10688         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10689         dealloc server_pipe_hash when no longer used for benefit of
10690         leak checking
10691
10692         * dbus/dbus-auth.c (process_command): memleak fix
10693
10694         * bus/dispatch.c (check_hello_message): memleak fix
10695
10696 2003-03-16  Havoc Pennington  <hp@pobox.com>
10697
10698         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10699
10700 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10701
10702         * bus/activation.c (bus_activation_activate_service): Append
10703         the pending activation entry to the list of pending activations.
10704
10705 2003-03-16  Havoc Pennington  <hp@pobox.com>
10706
10707         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10708         connections
10709
10710         * dbus/dbus-address.c (create_entry): fix OOM handling when
10711         failing to alloc entry->method
10712
10713 2003-03-16  Havoc Pennington  <hp@pobox.com>
10714
10715         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10716         the watch
10717
10718         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10719         add some missing dbus_set_result
10720
10721         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10722         alloc the DBusMessageHandler
10723
10724         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10725         the transport here, since we call this from the finalizer; it
10726         resulted in a double-finalize.
10727
10728         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10729         where we tried to use transport->connection that was NULL,
10730         happened when transport was disconnected early on due to OOM
10731
10732         * bus/*.c: adapt to handle OOM for watches/timeouts
10733
10734         * dbus/dbus-transport-unix.c: port to handle OOM during
10735         watch handling
10736
10737         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10738         reference to unused bytes instead of a copy
10739
10740         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10741         out of memory
10742
10743         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10744         FALSE on OOM
10745
10746         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10747         of memory
10748
10749 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10750
10751         * doc/dbus-specification.sgml:
10752         Document reply message for ActivateService.
10753
10754 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10755
10756         * bus/activation.c: (bus_pending_activation_entry_free),
10757         (bus_pending_activation_free), (bus_activation_new),
10758         (bus_activation_unref), (bus_activation_service_created),
10759         (bus_activation_activate_service):
10760         * bus/activation.h:
10761         * bus/bus.c: (bus_context_new):
10762         * bus/desktop-file.c: (new_section):
10763         * bus/driver.c: (bus_driver_send_service_deleted),
10764         (bus_driver_handle_activate_service):
10765         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10766         * bus/services.h:
10767         * dbus/dbus-connection.c:
10768         (dbus_connection_send_with_reply_and_block):
10769         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10770         * dbus/dbus-protocol.h:
10771         Make activation work better. Now pending activations will be queued
10772         and the daemon won't try to activate services that are already registered.
10773
10774 2003-03-16  Havoc Pennington  <hp@pobox.com>
10775
10776         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10777         connection data
10778
10779         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10780         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10781
10782 2003-03-16  Havoc Pennington  <hp@pobox.com>
10783
10784         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10785         this. always run the test suite before commit...
10786
10787         * bus/*: adapt to DBusConnection API changes
10788
10789         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10790         requires renaming stuff to avoid dbus_connection_dispatch name
10791         conflict.
10792
10793         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10794         function
10795
10796         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10797         separate from _dbus_message_loader_return_buffer()
10798
10799         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10800         this, because it's now always broken to use; the number of
10801         messages in queue vs. the number still buffered by the message
10802         loader is undefined/meaningless. Should use
10803         dbus_connection_get_dispatch_state().
10804         (dbus_connection_dispatch): rename from
10805         dbus_connection_dispatch_message
10806
10807 2003-03-16  Havoc Pennington  <hp@pobox.com>
10808
10809         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10810         implementation
10811
10812 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10813
10814         * dbus/dbus-connection.c:
10815         (dbus_connection_send_with_reply_and_block):
10816         Decrease connection->n_incoming when removing an entry
10817         from the list.
10818         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10819         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10820         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10821         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10822         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10823         (dbus_dict_get_byte_array):
10824         Handle NULL arrays and strings. Also add support for byte arrays.
10825
10826         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10827         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10828         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10829         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10830         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10831         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10832         * dbus/dbus-marshal.h:
10833         Add support for marshalling and demarshalling empty arrays and strings.
10834
10835         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10836         (dbus_message_append_string_array),
10837         (dbus_message_iter_get_boolean),
10838         (dbus_message_iter_get_boolean_array),
10839         (dbus_message_iter_get_int32_array),
10840         (dbus_message_iter_get_uint32_array),
10841         (dbus_message_iter_get_double_array),
10842         (dbus_message_iter_get_byte_array),
10843         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10844         (check_message_handling):
10845         Add support for getting empty arrays and dicts.
10846
10847         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10848         Don't do any validation at all for now, that's better than just checking
10849         for ASCII.
10850
10851         * test/data/valid-messages/emptiness.message:
10852         New test message with lots of empty arrays.
10853
10854 2003-03-16  Havoc Pennington  <hp@pobox.com>
10855
10856         * dbus/dbus-connection.c
10857         (_dbus_connection_queue_received_message_link): new function that
10858         can't fail due to OOM
10859
10860         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10861         new function pops a message together with a list link
10862         containing it.
10863
10864         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10865         message queuing functions to avoid needing to alloc memory
10866
10867 2003-03-16  Havoc Pennington  <hp@pobox.com>
10868
10869         Oops - test code was only testing failure of around 30 of the
10870         mallocs in the test path, but it turns out there are 500+
10871         mallocs. I believe this was due to misguided linking setup such
10872         that there was one copy of dbus_malloc etc. in the daemon and one
10873         in the shared lib, and only daemon mallocs were tested. In any
10874         case, the test case now tests all 500+ mallocs, and doesn't pass
10875         yet, though there are lots of fixes in this patch.
10876
10877         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10878         this so that it doesn't need to allocate memory, since it
10879         has no way of indicating failure due to OOM (and would be
10880         annoying if it did).
10881
10882         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10883
10884         * bus/Makefile.am: rearrange to create two self-contained
10885         libraries, to avoid having libraries with overlapping symbols.
10886         that was resulting in weirdness, e.g. I'm pretty sure there
10887         were two copies of global static variables.
10888
10889         * dbus/dbus-internals.c: move the malloc debug stuff to
10890         dbus-memory.c
10891
10892         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10893         empty.
10894
10895         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10896
10897         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10898         on failure.
10899
10900         * bus/dispatch.c (bus_dispatch_add_connection): free
10901         message_handler_slot when no longer using it, so
10902         memory leak checkers are happy for the test suite.
10903
10904         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10905
10906         * bus/bus.c (new_connection_callback): disconnect in here if
10907         bus_connections_setup_connection fails.
10908
10909         * bus/connection.c (bus_connections_unref): fix to free the
10910         connections
10911         (bus_connections_setup_connection): if this fails, don't
10912         disconnect the connection, just be sure there are no side
10913         effects.
10914
10915         * dbus/dbus-string.c (undo_alignment): unbreak this
10916
10917         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10918         leaking
10919         (_dbus_auth_new): fix the order in which we free strings
10920         on OOM failure
10921
10922         * bus/connection.c (bus_connection_disconnected): fix to
10923         not send ServiceDeleted multiple times in case of memory
10924         allocation failure
10925
10926         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10927         get the base service name
10928         (dbus_bus_register_client): don't return base service name,
10929         instead store it on the DBusConnection and have an accessor
10930         function for it.
10931         (dbus_bus_register_client): rename dbus_bus_register()
10932
10933         * bus/dispatch.c (check_hello_message): verify that other
10934         connections on the bus also got the correct results, not
10935         just the one sending hello
10936
10937 2003-03-15  Havoc Pennington  <hp@pobox.com>
10938
10939         Make it pass the Hello handling test including all OOM codepaths.
10940         Now to do other messages...
10941
10942         * bus/services.c (bus_service_remove_owner): fix crash when
10943         removing owner from an empty list of owners
10944         (bus_registry_ensure): don't leave service in the list of
10945         a connection's owned services if we fail to put the service
10946         in the hash table.
10947
10948         * bus/connection.c (bus_connection_preallocate_oom_error): set
10949         error flag on the OOM error.
10950
10951         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10952         handle _dbus_transport_set_connection failure
10953
10954         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10955         to create watches up front and simply enable/disable them as
10956         needed.
10957         (unix_connection_set): this can now fail on OOM
10958
10959         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10960         of enabling/disabling a watch or timeout.
10961
10962         * bus/loop.c (bus_loop_iterate): don't touch disabled
10963         watches/timeouts
10964
10965         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10966
10967 2003-03-15  Havoc Pennington  <hp@pobox.com>
10968
10969         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10970         write useful test code, after all that futzing around ;-)
10971
10972         Test does not yet pass because we can't handle OOM in
10973         _dbus_transport_messages_pending (basically,
10974         dbus_connection_preallocate_send() does not prealloc the write
10975         watch). To fix this, I think we need to add new stuff to
10976         set_watch_functions, namely a SetEnabled function so we can alloc
10977         the watch earlier, then enable it later.
10978
10979         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10980         dbus-memory.c to the convenience lib
10981
10982         * bus/test.c: rename some static functions to keep them clearly
10983         distinct from stuff in connection.c. Handle client disconnection.
10984
10985 2003-03-14  Havoc Pennington  <hp@pobox.com>
10986
10987         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10988         transport, tests more of the real codepath. Set up clients
10989         with bus_setup_debug_client.
10990
10991         * bus/test.c (bus_setup_debug_client): function to set up debug
10992         "clients" on the main loop
10993
10994         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10995         support
10996
10997         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10998         server type
10999
11000         * dbus/dbus-server-debug.c: support a debug server based on pipes
11001
11002         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11003         (_dbus_close): new function
11004
11005         * configure.in: check for socketpair
11006
11007 2003-03-14  Havoc Pennington  <hp@redhat.com>
11008
11009         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11010         cheesy hack
11011
11012         * dbus/dbus-transport-debug.c: rework this a good bit to be
11013         less complicated. hopefully still works.
11014
11015         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11016         manually
11017
11018         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11019         after running it
11020
11021         * dbus/dbus-message.c (dbus_message_copy): rename from
11022         dbus_message_new_from_message, fix it up to copy
11023         all the message fields, add test case
11024
11025         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11026         not quite passing yet
11027
11028 2003-03-14  Havoc Pennington  <hp@pobox.com>
11029
11030         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11031         until no work remains" in test code. (the large diff here
11032         is just code movement, no actual changes)
11033
11034         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11035         1, no point waiting around for test code.
11036         (_dbus_server_debug_accept_transport): unref the timeout
11037         after adding it (right?)
11038
11039         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11040
11041 2003-03-13  Havoc Pennington  <hp@redhat.com>
11042
11043         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11044         out of memory
11045
11046         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11047         of memory
11048
11049         * dbus/dbus-connection.h: Make AddWatchFunction and
11050         AddTimeoutFunction return a bool so they can fail on out-of-memory
11051
11052         * bus/bus.c (bus_context_new): set up timeout handlers
11053
11054         * bus/connection.c (bus_connections_setup_connection): set up
11055         timeout handlers
11056
11057         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11058         can fail
11059
11060         * bus/bus.c (bus_context_new): adapt to changes
11061
11062         * bus/connection.c: adapt to changes
11063
11064         * test/watch.c: adapt to DBusWatch changes
11065
11066         * bus/dispatch.c (bus_dispatch_test): started adding this but
11067         didn't finish
11068
11069 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11070
11071         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11072
11073 2003-03-13  Havoc Pennington  <hp@pobox.com>
11074
11075         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11076         set up a test framework as for the library
11077
11078 2003-03-12  Havoc Pennington  <hp@pobox.com>
11079
11080         Throughout: purge global variables, introduce BusActivation,
11081         BusConnections, BusRegistry, etc. objects instead.
11082
11083         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11084         message bus object
11085
11086         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11087         going to redo this a bit differently I think
11088
11089 2003-03-12  Havoc Pennington  <hp@redhat.com>
11090
11091         Mega-patch that gets the message bus daemon initially handling
11092         out-of-memory. Work still needed. Also lots of random
11093         moving stuff to DBusError instead of ResultCode.
11094
11095         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11096
11097         * dbus/dbus-connection.c
11098         (dbus_connection_send_with_reply_and_block): use DBusError
11099
11100         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11101         DBusResultCode
11102
11103         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11104         code here, as the only failure possible is OOM.
11105
11106         * bus/connection.c (bus_connection_disconnect):
11107         rename bus_connection_disconnected as it's a notification only
11108
11109         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11110         "name" on get_args failure, should be done by get_args;
11111         don't disconnect client for bad args, just return an error.
11112         (bus_driver_handle_service_exists): ditto
11113
11114         * bus/services.c (bus_services_list): NULL-terminate returned array
11115
11116         * bus/driver.c (bus_driver_send_service_lost)
11117         (bus_driver_send_service_acquired): send messages from driver to a
11118         specific client to the client's unique name, not to the broadcast
11119         service.
11120
11121         * dbus/dbus-message.c (decode_header_data): reject messages that
11122         contain no name field
11123         (_dbus_message_get_client_serial): rename to
11124         dbus_message_get_serial and make public
11125         (_dbus_message_set_serial): rename from set_client_serial
11126         (_dbus_message_set_reply_serial): make public
11127         (_dbus_message_get_reply_serial): make public
11128
11129         * bus/connection.c (bus_connection_foreach): allow stopping
11130         iteration by returning FALSE from foreach function.
11131
11132         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11133         (dbus_connection_free_preallocated_send)
11134         (dbus_connection_preallocate_send): new API for sending a message
11135         without possibility of malloc failure.
11136         (dbus_connection_send_message): rename to just
11137         dbus_connection_send (and same for whole function family)
11138
11139         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11140
11141         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11142
11143         * bus/activation.c: handle/return errors
11144
11145         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11146
11147         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11148         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11149         (_dbus_result_from_errno): move to this file
11150
11151 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11152
11153         * dbus/dbus-marshal.c:
11154         (_dbus_marshal_set_string):
11155         Take a length argument so we can marshal the correct string
11156         length.
11157
11158         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11159         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11160         (_dbus_marshal_test):
11161         * dbus/dbus-marshal.h:
11162         Add support for marshalling and demarshalling dicts.
11163
11164         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11165         Add support for TYPE DICT.
11166
11167         * dbus/dbus-message.c: (set_string_field):
11168         Adjust header padding.
11169
11170         (dbus_message_append_args_valist), (dbus_message_append_dict),
11171         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11172         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11173         (check_message_handling), (check_have_valid_message):
11174         * dbus/dbus-message.h:
11175         Add functions for setting and getting dicts.
11176
11177         * dbus/dbus-protocol.h:
11178         Add DBUS_TYPE_DICT.
11179
11180         * dbus/dbus.h:
11181         Add dbus-dict.h
11182
11183         * doc/dbus-specification.sgml:
11184         Add information about how dicts are marshalled.
11185
11186         * test/data/invalid-messages/dict-with-nil-value.message:
11187         * test/data/invalid-messages/too-short-dict.message:
11188         * test/data/valid-messages/dict-simple.message:
11189         * test/data/valid-messages/dict.message:
11190         Add sample messages containing dicts.
11191
11192 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11193
11194         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11195
11196 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11197
11198         * dbus/Makefile.am:
11199         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11200         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11201         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11202         (dbus_dict_set_double), (dbus_dict_set_string),
11203         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11204         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11205         (dbus_dict_set_string_array), (_dbus_dict_test):
11206         * dbus/dbus-dict.h:
11207         Fix according to comments from Havoc.
11208
11209 2003-03-06  Michael Meeks  <michael@server.home>
11210
11211         * configure.in: if we don't have kde-config, disable have_qt.
11212
11213 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11214
11215         * dbus/Makefile.am:
11216         Add dbus-dict.[ch]
11217
11218         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11219         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11220         (dbus_dict_remove), (dbus_dict_get_value_type),
11221         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11222         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11223         (dbus_dict_put_double), (dbus_dict_put_string),
11224         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11225         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11226         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11227         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11228         (dbus_dict_get_double), (dbus_dict_get_string),
11229         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11230         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11231         (dbus_dict_get_string_array), (_dbus_dict_test):
11232         * dbus/dbus-dict.h:
11233         Add DBusDict implementation
11234
11235         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11236         * dbus/dbus-test.h:
11237         Add _dbus_dict_test
11238
11239 2003-03-04  Havoc Pennington  <hp@pobox.com>
11240
11241         * test/data/auth/*: adapt to changes
11242
11243         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11244         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11245         userid
11246
11247         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11248         more stuff from being in a context name, to make the protocol
11249         simpler to deal with
11250
11251         * dbus/dbus-errors.c (dbus_error_has_name): new function
11252         (dbus_error_is_set): new function
11253
11254         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11255         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11256
11257         * dbus/dbus-connection.c (dbus_connection_flush): also read
11258         messages during a flush operation
11259
11260         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11261
11262 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11263
11264         * configure.in: Check for gethostbyname on Solaris.
11265
11266         * dbus/dbus-transport.c: (_dbus_transport_open):
11267         Remove duplicate "tcp" entry.
11268
11269         * doc/dbus-specification.sgml:
11270         Clarify some things.
11271
11272 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11273
11274         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11275         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11276         (_dbus_keyring_test):
11277         * dbus/dbus-md5.c: (_dbus_md5_compute):
11278         * dbus/dbus-sha.c: (_dbus_sha_compute):
11279         Plug memory leaks.
11280
11281 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11282
11283         * README: Add some things.
11284
11285 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11286
11287         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11288         after case DBUS_TYPE_BOOELAN.
11289
11290 2003-03-02  Havoc Pennington  <hp@pobox.com>
11291
11292         * test/break-loader.c (randomly_set_extreme_ints): add test that
11293         sets really huge and small integers
11294
11295         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11296         that length of boolean array fits in the string, and that
11297         string has room for boolean value in single-bool case.
11298
11299         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11300         optional value to "ALIGN" command which is what to fill the
11301         alignment with.
11302
11303         * test/data/valid-messages/no-padding.message: add regression
11304         test for the message padding problem
11305
11306 2003-03-02  Havoc Pennington  <hp@pobox.com>
11307
11308         * dbus/dbus-message.c (decode_header_data): fix to always init
11309         message_padding, from Benjamin Dauvergne
11310
11311 2003-03-02  Havoc Pennington  <hp@pobox.com>
11312
11313         * configure.in: 0.5
11314
11315         * NEWS: Update.
11316
11317 2003-03-01  Joe Shaw  <joe@assbarn.com>
11318
11319         * configure.in: Check for "struct cmsgcred" and try to access its
11320         members for BSD-like unices.
11321
11322         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11323         _dbus_read_credentials_unix_socket().
11324         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11325         read() for reading the credential byte off the unix socket.  Use
11326         struct cmsgcred on systems that support it.
11327
11328 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11329
11330         * glib/Makefile.am:
11331         * configure.in:
11332         Make gthreads-2.0 dependency optional. Don't build thread test if
11333         its not found.
11334
11335 2003-02-27  Havoc Pennington  <hp@pobox.com>
11336
11337         * dbus/dbus-connection.c
11338         (dbus_connection_send_message_with_reply_and_block): fix doh!
11339         doh! doh! bug that resulted in never removing a reply from the
11340         queue, no wonder we called get_reply_serial so much ;-)
11341
11342         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11343         and client serial instead of demarshaling them every time
11344
11345 2003-02-27  Havoc Pennington  <hp@pobox.com>
11346
11347         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11348         more inlined, using dbus-string-private.h, speeds things up
11349         substantially
11350
11351         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11352         when freeing the string
11353         (_dbus_string_steal_data): fix for align offset
11354         (undo_alignment): new function
11355
11356 2003-02-26  Havoc Pennington  <hp@redhat.com>
11357
11358         All kinds of audit fixes from Owen, plus initial attempt to
11359         handle unaligned memory returned from malloc.
11360
11361         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11362         leave room for align_offset and nul byte
11363         (fixup_alignment): function to track an align_offset and
11364         ensure real->str is aligned
11365         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11366         to allow a nul byte plus align offset
11367         (_dbus_string_lock): fix overflow issue
11368         (_dbus_string_init_const_len): add assertions on sanity of len,
11369         assign allocated to be ALLOCATION_PADDING larger than len
11370         (set_length): fixup the overflow handling
11371         (_dbus_string_get_data_len): fix overflow in assertion
11372         (open_gap): detect overflow in size of gap to be opened
11373         (_dbus_string_lengthen): add overflow check
11374         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11375         (_dbus_string_append): add overflow check
11376         (_dbus_string_append_unichar): overflow
11377         (_dbus_string_delete): fix overflow in assertion
11378         (_dbus_string_copy_len): overflow in assertion
11379         (_dbus_string_replace_len): overflows in assertions
11380         (_dbus_string_find): change to implement in terms of
11381         _dbus_string_find_to
11382         (_dbus_string_find_to): assorted fixage
11383         (_dbus_string_equal_c_str): assert c_str != NULL,
11384         fix logic so the function works
11385         (_dbus_string_ends_with_c_str): fix overflow thingy
11386         (_dbus_string_base64_encode): overflow fix
11387         (_dbus_string_validate_ascii): overflow
11388         (_dbus_string_validate_nul): overflow
11389
11390 2003-02-26  Havoc Pennington  <hp@redhat.com>
11391
11392         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11393
11394 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11395
11396         * configure.in:
11397         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11398
11399         * dbus/dbus-connection.c:
11400         * dbus/dbus-connection.h:
11401         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11402         Add dbus_connection_set_wakeup_main_function and use it when queueing
11403         incoming and outgoing messages.
11404
11405
11406         * dbus/dbus-dataslot.c:
11407         Threadsafe usage of DBusDataSlotAllocator
11408
11409         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11410         dbus_new can fail.
11411
11412         * dbus/dbus-server-unix.c:
11413         Add todo comment
11414
11415         * glib/dbus-gmain.c:
11416         Implement the new wakeup functions for glib.
11417
11418         * glib/Makefile.am:
11419         * glib/test-thread-client.c:
11420         * glib/test-thread-server.c:
11421         * glib/test-thread.h:
11422         Initial cut at some thread test code. Not really done yet.
11423
11424 2003-02-26  Havoc Pennington  <hp@pobox.com>
11425
11426         * dbus/dbus-connection.c
11427         (dbus_connection_send_message_with_reply_and_block): fix crash
11428         where we ref'd the outgoing message instead of the returned reply
11429
11430         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11431         at the end of this function, so if we didn't need to read for
11432         authentication, we reinstall it for receiving messages
11433
11434         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11435         a NULL sender for peer-to-peer case
11436
11437         * dbus/dbus-transport-unix.c (check_read_watch): handle
11438         !authenticated case correctly
11439
11440         * glib/dbus-gmain.c: add support for DBusServer
11441
11442         * dbus/dbus-server.c: add data slot support
11443
11444         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11445         return values and handle errors
11446
11447         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11448         DBusConnection
11449
11450         * Doxyfile.in (INPUT): add glib subdir
11451
11452         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11453         setup_with_g_main instead of hookup_with_g_main; write docs
11454
11455 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11456
11457         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11458         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11459         * dbus/dbus-message.c: (dbus_message_append_boolean),
11460         (dbus_message_append_boolean_array),
11461         (dbus_message_get_args_valist), (_dbus_message_test):
11462         * dbus/dbus-message.h:
11463         * doc/dbus-specification.sgml:
11464         Various fixes as pointed out by Havoc.
11465
11466         * test/data/invalid-messages/bad-boolean-array.message:
11467         * test/data/invalid-messages/bad-boolean.message:
11468         Add invalid boolean value test cases.
11469
11470 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11471
11472         * dbus/dbus-internals.c: (_dbus_type_to_string):
11473         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11474         (_dbus_marshal_validate_arg):
11475         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11476         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11477         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11478         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11479         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11480         (dbus_message_iter_get_double),
11481         (dbus_message_iter_get_boolean_array), (message_iter_test):
11482         * dbus/dbus-message.h:
11483         * dbus/dbus-protocol.h:
11484         * doc/dbus-specification.sgml:
11485         * test/data/valid-messages/lots-of-arguments.message:
11486         Add support for boolean and boolean array types.
11487
11488 2003-02-23  Havoc Pennington  <hp@pobox.com>
11489
11490         * dbus/dbus-keyring.c: finish most of this implementation and
11491         simple unit test
11492
11493         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11494         these barf if the error isn't cleared to NULL
11495
11496         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11497         (_dbus_create_directory): new function
11498
11499         * dbus/dbus-errors.c (dbus_set_error): fix warning
11500
11501         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11502         (_dbus_string_hex_decode): new function
11503         (test_hex_roundtrip): test code
11504
11505         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11506
11507         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11508
11509         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11510         the save-to-temp/rename trick to atomically write the new file
11511         (_dbus_string_parse_uint): new function
11512
11513 2003-02-22  Havoc Pennington  <hp@pobox.com>
11514
11515         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11516
11517 2003-02-22  Havoc Pennington  <hp@pobox.com>
11518
11519         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11520         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11521
11522         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11523
11524         * dbus/test/data/sha-1: add US government test suite for SHA-1
11525
11526 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11527
11528         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11529         Make string arrays NULL-terminated.
11530
11531         * dbus/dbus-memory.c: (dbus_free_string_array):
11532         * dbus/dbus-memory.h:
11533         New function for freeing NULL-terminated string arrays.
11534
11535         * dbus/dbus-message-builder.c: (append_quoted_string),
11536         (_dbus_message_data_load):
11537         Add support for array types.
11538
11539         * dbus/dbus-message.c: (check_message_handling):
11540         Add more types as test cases.
11541
11542         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11543         (_dbus_string_parse_double):
11544         Add the start offset to the end offset.
11545
11546         * test/data/valid-messages/lots-of-arguments.message:
11547         New test message with lots of arguments.
11548
11549 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11550
11551         * dbus/dbus-message.c: (dbus_message_append_nil),
11552         (dbus_message_append_int32), (dbus_message_append_uint32),
11553         (dbus_message_append_double), (dbus_message_append_string),
11554         (dbus_message_append_int32_array),
11555         (dbus_message_append_uint32_array),
11556         (dbus_message_append_double_array),
11557         (dbus_message_append_byte_array),
11558         (dbus_message_append_string_array):
11559         Fix all out-of-memory handling in these functions.
11560
11561 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11562
11563         * dbus/dbus-message.c: (dbus_message_append_nil):
11564         Fix a silly.
11565
11566 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11567
11568         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11569         (dbus_message_append_nil), (dbus_message_append_int32_array),
11570         (dbus_message_append_uint32_array),
11571         (dbus_message_append_double_array),
11572         (dbus_message_append_byte_array),
11573         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11574         (dbus_message_iter_get_int32_array),
11575         (dbus_message_iter_get_uint32_array),
11576         (dbus_message_iter_get_double_array),
11577         (dbus_message_iter_get_byte_array),
11578         (dbus_message_iter_get_string_array):
11579
11580         * dbus/dbus-message.h:
11581         Add functions for appending and getting arrays.
11582
11583 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11584
11585         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11586         element size at least 8 bytes, fixes mempool tests on
11587         64-bit machines.
11588
11589 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11590
11591         * dbus/dbus-transport-unix.c (unix_do_iteration):
11592         Unlock the connection mutex during a blocking select call.
11593         Add todo about how we need a way to wake up the select.
11594
11595         * dbus/dbus-connection-internal.h:
11596         * dbus/dbus-connection.c:
11597         Add _dbus_connection_lock and _dbus_connection_unlock.
11598
11599 2003-02-19  Havoc Pennington  <hp@pobox.com>
11600
11601         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11602         Doxyfile.in, not Doxyfile
11603
11604         * dbus/dbus-keyring.c: do some hacking on this
11605
11606         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11607
11608         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11609         dbus_error_init
11610         (dbus_set_error): remove dbus_error_init, check for message ==
11611         NULL *before* we sprintf into it, and add @todo about including
11612         system headers in this file
11613
11614         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11615
11616         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11617
11618         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11619         get various bits of user information based on either username
11620         or user ID
11621         (_dbus_homedir_from_username): new function
11622
11623 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11624
11625         * configure.in:
11626         Add check for nonposix getpwnam_r
11627
11628         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11629         Align the pool element size to a sizeof (void *) boundary.
11630
11631         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11632         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11633         General Solaris fixes.
11634
11635         * test/data/valid-messages/simplest-manual.message:
11636         Explicitly state that we want little-endian packing.
11637
11638 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11639
11640         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11641
11642         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11643         Added to create a transport connecting using a tcp/ip socket.
11644
11645         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11646         to a tcp socket at given host and port.
11647         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11648         hostname and port.
11649
11650         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11651
11652         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11653         Added to create a server listening on a TCP/IP socket.
11654
11655 2003-02-19  Havoc Pennington  <hp@pobox.com>
11656
11657         Throughout: mop up all the Doxygen warnings and undocumented
11658         stuff.
11659
11660         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11661         to search any paths.
11662
11663         * dbus/dbus-threads.c: move global mutex initializers to
11664         dbus-internals.h, multiple prototypes was confusing doxygen
11665         besides being kind of ugly
11666
11667         * Doxyfile (PREDEFINED): have Doxygen define
11668         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11669         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11670         (do not abuse the feature! it's for stuff like the autogenerated
11671         macros in dbus-md5.c, not just for things you don't feel like
11672         documenting...)
11673
11674 2003-02-18  Havoc Pennington  <hp@pobox.com>
11675
11676         * dbus/dbus-string.c (_dbus_string_zero): new function
11677
11678         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11679         wrap it in some dbus-friendly API
11680
11681         * dbus/dbus-types.h: add 16-bit types
11682
11683 2003-02-18  Joe Shaw  <joe@assbarn.com>
11684
11685         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11686         credentials from our currently running process.
11687         (get_word): Fix a buglet where we were copying the entire length
11688         instead of relative to our position.
11689
11690         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11691         keys on the stack... it's 640k of data.
11692
11693         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11694         read the credentials byte off the socket, even if we don't have
11695         SO_PEERCRED.
11696         (_dbus_poll): Implement poll() using select() for systems which
11697         don't have it.
11698
11699         * glib/test-dbus-glib.c (main): Print out an error if no
11700         parameters are given.
11701
11702         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11703         can fallback to a secondary auth mechanism if the first fails.
11704
11705 2003-02-18  Havoc Pennington  <hp@pobox.com>
11706
11707         * AUTHORS: add Alex
11708
11709 2003-02-17  Havoc Pennington  <hp@pobox.com>
11710
11711         * doc/dbus-specification.sgml: lots of cosmetic
11712         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11713         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11714         s/server/bus/ (except in authentication section). Add a section
11715         "Message Bus Message Routing"
11716
11717 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11718
11719         Release 0.4
11720
11721         * NEWS: Update
11722
11723 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11724
11725         * doc/dbus-specification.sgml:
11726         Specification updates.
11727
11728 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11729
11730         * bus/activation.c: (bus_activation_init), (child_setup),
11731         (bus_activation_activate_service):
11732         * bus/activation.h:
11733         * bus/main.c: (main):
11734         Set DBUS_ADDRESS environment variable.
11735
11736         * dbus/dbus-errors.c: (dbus_set_error):
11737         Don't use va_copy since that's a C99 feature.
11738
11739         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11740         (_dbus_spawn_async):
11741         * dbus/dbus-sysdeps.h:
11742         Add child_setup_func to _dbus_spawn_async.
11743
11744         * doc/dbus-specification.sgml:
11745         Update specification.
11746
11747         * test/spawn-test.c: (setup_func), (main):
11748         Fix test.
11749
11750 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11751
11752         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11753         Added todo.
11754
11755 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11756
11757         * doc/.cvsignore:
11758         * doc/Makefile.am:
11759         * doc/dbus-test-plan.sgml:
11760         Add test plan document.
11761
11762         * test/Makefile.am:
11763         Fix distcheck.
11764
11765 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11766
11767         * dbus/dbus-message.c: (decode_header_data),
11768         (_dbus_message_loader_return_buffer):
11769         Set the header padding amount when loading a message.
11770
11771 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11772
11773         * bus/dispatch.c: (send_one_message):
11774         Only send broadcast messages to registered connections.
11775
11776         * dbus/dbus-message.c: (dbus_message_name_is):
11777         * dbus/dbus-message.h:
11778         New convenience function.
11779
11780         * dbus/dbus-transport-debug.c: (do_reading):
11781         Only dispatch one message per run.
11782
11783         * test/Makefile.am:
11784         * test/bus-test.c: (new_connection_callback), (die),
11785         (test_hello_client1_handler), (test_hello_client2_handler),
11786         (test_hello_replies), (main):
11787
11788         * test/bus-test-loop.[ch]:
11789         Add these.
11790
11791 2003-02-16  Havoc Pennington  <hp@pobox.com>
11792
11793         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11794         backward conditional
11795
11796 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11797
11798         * dbus/dbus-connection.c:
11799         Implement sent_message_with_reply. (with_reply_and block is still
11800         busted).
11801         Made dispatch_message not lose message if OOM.
11802
11803         * dbus/dbus-errors.h:
11804         Add NoReply error (for reply timeouts).
11805
11806 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11807
11808         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11809         Actually free keys and values when destroying hashtable.
11810
11811 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11812
11813         * dbus/dbus-auth.c: (client_try_next_mechanism):
11814         Plug a leak.
11815
11816         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11817         Return TRUE if there's no thread implementation around.
11818
11819         * glib/dbus-gmain.c: (free_source),
11820         (dbus_connection_hookup_with_g_main):
11821         Make sure to remove the GSource when the connection is finalized.
11822
11823 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11824
11825         * bus/dispatch.c: (bus_dispatch_message_handler):
11826         * dbus/dbus-errors.h:
11827         Return an error if someone tries to send a message to a service
11828         that doesn't exist.
11829
11830 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11831
11832         * bus/activation.c: (load_directory), (bus_activation_init),
11833         (bus_activation_activate_service):
11834         * bus/activation.h:
11835         * bus/driver.c:
11836         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11837         More work on the activation handling.
11838
11839         * dbus/dbus-errors.h:
11840         Add some error messages
11841
11842         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11843         * dbus/dbus-message.h:
11844         New function that creates an error message.
11845
11846         * dbus/dbus-protocol.h:
11847         Add ACTIVATE_SERVER message.
11848
11849         * dbus/dbus-server-unix.c: (unix_handle_watch),
11850         (_dbus_server_new_for_domain_socket):
11851         Call _dbus_fd_set_close_on_exec.
11852
11853         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11854         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11855         (_dbus_fd_set_close_on_exec):
11856         * dbus/dbus-sysdeps.h:
11857         Add _dbus_fd_set_close_on exec function. Also add function that checks
11858         that all open fds are set to close-on-exec and warns otherwise.
11859
11860         * dbus/dbus-transport-unix.c:
11861         (_dbus_transport_new_for_domain_socket):
11862         Call _dbus_fd_set_close_on_exec.
11863
11864 2003-02-16  Havoc Pennington  <hp@pobox.com>
11865
11866         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11867         allow people to avoid setting SIGPIPE to SIG_IGN
11868         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11869         we've been asked not to
11870
11871 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11872
11873         * dbus/dbus-list.c: (_dbus_list_append_link),
11874         (_dbus_list_prepend_link):
11875         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11876         (dbus_realloc):
11877         Warning fixes.
11878
11879 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11880
11881         * bus/Makefile.am:
11882         * bus/activation.c: (bus_activation_entry_free),
11883         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11884         * bus/activation.h:
11885         * bus/main.c: (main):
11886         Add simple activation support, doesn't work yet though.
11887
11888 2003-02-15   Zack Rusin  <zack@kde.org>
11889
11890         * qt/dbus-qthread.cpp:  small casting fix
11891
11892 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11893
11894         * dbus/dbus-errors.c: (dbus_set_error):
11895         * dbus/dbus-errors.h:
11896         Add a few errors and make dbus_set_error void.
11897
11898         * dbus/dbus-sysdeps.c:
11899         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11900         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11901         * dbus/dbus-sysdeps.h:
11902         Add _dbus_spawn_async.
11903
11904         * test/spawn-test.c: (main):
11905         Test for _dbus_spawn_async.
11906
11907 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11908
11909         * dbus/dbus-internals.h:
11910         Fix build without tests.
11911
11912         * dbus/dbus-list.c: (alloc_link):
11913         Fix a segfault when a malloc fails.
11914
11915         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11916         (dbus_malloc0), (dbus_realloc):
11917         Add support for malloc debugging.
11918
11919 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11920
11921         * dbus/dbus-threads.c:
11922         * dbus/dbus-threads.h:
11923         Add condvars. Remove static mutext from API.
11924         Implement static mutexes by initializing them from threads_init.
11925
11926         * glib/dbus-gthread.c:
11927         * qt/dbus-qthread.cpp:
11928         Update with the thread api changes.
11929
11930
11931         * dbus/dbus-list.c:
11932         * dbus/dbus-list.h:
11933         Turn StaticMutex into normal mutex + init function.
11934         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11935         _dbus_list_append_link, _dbus_list_prepend_link
11936
11937
11938         * dbus/dbus-sysdeps.c:
11939         * dbus/dbus-sysdeps.h:
11940         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11941         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11942
11943         * dbus/dbus-protocol.h:
11944         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11945
11946         * dbus/dbus-message.c:
11947         Make ref/unref atomic.
11948         Fix some docs.
11949
11950         * dbus/dbus-connection-internal.h:
11951         * dbus/dbus-connection.c:
11952         * dbus/dbus-connection.h:
11953         Make threadsafe.
11954         Change _peek to _borrow,_return & _steal_borrowed.
11955         Change disconnect callback to event.
11956         Make dbus_connection_dispatch_messages reentrant.
11957
11958         * dbus/dbus-transport.c:
11959         Don't ref the connection on calls to the transport
11960         implementation.
11961
11962         * dbus/dbus-message-handler.c:
11963         Make threadsafe.
11964
11965         * glib/dbus-gmain.c:
11966         Don't use peek_message anymore
11967
11968         * test/Makefile.am:
11969         * test/debug-thread.c:
11970         * test/debug-thread.h:
11971         Simple thread implementation that asserts() on deadlocks in
11972         single-threaded code.
11973
11974         * test/bus-test.c:
11975         (main) Call debug_threads_init.
11976
11977         * test/watch.c:
11978         Use disconnect message instead of disconnect callback.
11979
11980         * bus/connection.c:
11981         * bus/connection.h:
11982         Don't call dbus_connection_set_disconnect_function. Instead export
11983         bus_connection_disconnect.
11984
11985         * bus/dispatch.c:
11986         Call bus_connection_disconnect when we get a disconnected message.
11987
11988 2003-02-15  Havoc Pennington  <hp@pobox.com>
11989
11990         * dbus/dbus-message.c (dbus_message_new): fool around with the
11991         docs
11992
11993 2003-02-14  Havoc Pennington  <hp@pobox.com>
11994
11995         * dbus/dbus-mempool.c: fail if the debug functions so indicate
11996
11997         * dbus/dbus-memory.c: fail if the debug functions indicate we
11998         should
11999
12000         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12001         (_dbus_decrement_fail_alloc_counter): debug functions to
12002         simulate memory allocation failures
12003
12004 2003-02-14  Havoc Pennington  <hp@pobox.com>
12005
12006         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12007         to DBusError
12008
12009 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12010
12011         * bus/driver.c: (bus_driver_handle_hello):
12012         * bus/driver.h:
12013         * bus/services.c: (bus_service_lookup):
12014         Reorder message sending so we get a more sane order.
12015
12016         * test/bus-test.c: (message_handler):
12017         Fix tyop.
12018
12019 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12020
12021         * bus/driver.c: (bus_driver_send_service_deleted),
12022         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12023         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12024         (bus_driver_send_welcome_message),
12025         (bus_driver_handle_list_services),
12026         (bus_driver_handle_acquire_service),
12027         (bus_driver_handle_service_exists):
12028         * dbus/dbus-bus.c: (dbus_bus_register_client),
12029         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12030         * dbus/dbus-errors.c: (dbus_result_to_string):
12031         * dbus/dbus-errors.h:
12032         * dbus/dbus-message.c: (dbus_message_append_args),
12033         (dbus_message_append_args_valist), (dbus_message_get_args),
12034         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12035         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12036         (dbus_message_iter_get_byte_array),
12037         (dbus_message_iter_get_string_array), (message_iter_test),
12038         (check_message_handling), (_dbus_message_test):
12039         * dbus/dbus-message.h:
12040         * test/bus-test.c: (main):
12041         Change fields to arguments in messages, so that they won't be
12042         confused with header fields.
12043
12044         * glib/test-dbus-glib.c: (main):
12045         Remove append_fields from hello message.
12046
12047 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12048
12049         * dbus/dbus-errors.c:
12050         * dbus/dbus-message.c:
12051         * dbus/dbus-string.c:
12052         Documentation fixes.
12053
12054 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12055
12056         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12057         (remove_timeout):
12058         Implement support for timeouts in dbus-glib.
12059
12060 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12061
12062         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12063         * dbus/dbus-message.c: (process_test_subdir):
12064         * test/break-loader.c: (find_breaks_based_on):
12065         Plug some memory leaks.
12066
12067 2003-02-13  Richard Hult  <rhult@codefactory.se>
12068
12069         * bus/main.c: Fix build.
12070
12071         * dbus/dbus-errors.h:
12072         * dbus/dbus-errors.c: Fix copyright for Anders.
12073
12074 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12075
12076         * bus/Makefile.am:
12077         Add utils.[ch]
12078
12079         * bus/connection.c: (bus_connection_foreach):
12080         Fix a warning.
12081
12082         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12083         (unescape_string), (new_section), (parse_section_start),
12084         (parse_key_value), (report_error), (bus_desktop_file_load),
12085         (bus_desktop_file_get_string):
12086         * bus/desktop-file.h:
12087         Use DBusError for error reporting.
12088
12089         * bus/dispatch.c: (send_one_message),
12090         (bus_dispatch_message_handler):
12091         * bus/driver.c: (bus_driver_send_service_deleted),
12092         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12093         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12094         (bus_driver_send_welcome_message),
12095         (bus_driver_handle_list_services),
12096         (bus_driver_handle_acquire_service),
12097         (bus_driver_handle_service_exists):
12098         * bus/loop.c: (bus_loop_run):
12099         * bus/main.c:
12100         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12101
12102         * bus/utils.c: (bus_wait_for_memory):
12103         * bus/utils.h:
12104         New files with general utility functions.
12105
12106         * dbus/dbus-internals.h:
12107         Remove _DBUS_HANDLE_OOM.
12108
12109 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12110
12111         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12112         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12113         * dbus/dbus-errors.h:
12114         Add DBusError structure.
12115
12116 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12117
12118         * test/data/valid-messages/standard-acquire-service.message:
12119         * test/data/valid-messages/standard-hello.message:
12120         * test/data/valid-messages/standard-list-services.message:
12121         * test/data/valid-messages/standard-service-exists.message:
12122         Add some standard messages.
12123
12124 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12125
12126         * bus/driver.c: (bus_driver_send_welcome_message),
12127         (bus_driver_handle_list_services),
12128         (bus_driver_handle_acquire_service),
12129         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12130         Update for API changes in libdbus.
12131
12132         * dbus/dbus-message.c: (dbus_message_new_reply):
12133         * dbus/dbus-message.h:
12134         Remove the name argument. The spec states that replies shouldn't
12135         have a name.
12136
12137 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12138
12139         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12140         (report_error), (bus_desktop_file_load), (lookup_section),
12141         (lookup_line), (bus_desktop_file_get_raw),
12142         (bus_desktop_file_get_string):
12143         * bus/desktop-file.h:
12144         Some fixes, and new functions for getting a key value from a section.
12145
12146 2003-02-13  Havoc Pennington  <hp@pobox.com>
12147
12148         * test/data/auth/fail-after-n-attempts.auth-script: new test
12149
12150         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12151         reject the client.
12152
12153 2003-02-13  Havoc Pennington  <hp@pobox.com>
12154
12155         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12156         dbus_credentials_match were backward
12157
12158         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12159         NO_CREDENTIALS and ROOT_CREDENTIALS
12160
12161         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12162         into here. Never process more commands after we've reached an
12163         end state; store further data as unused bytes.
12164
12165         * test/data/auth/*: add more auth tests
12166
12167         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12168         command to match exact string and EXPECT_UNUSED to match unused
12169         bytes
12170
12171         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12172
12173 2003-02-12  Havoc Pennington  <hp@pobox.com>
12174
12175         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12176         \r off of popped lines
12177
12178         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12179         scripts
12180
12181         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12182         SEND, append \r\n
12183
12184 2003-02-12  Havoc Pennington  <hp@pobox.com>
12185
12186         * dbus/Makefile.am: remove break-loader from the build, since it
12187         moved.
12188
12189         * configure.in: add --enable-gcov to turn on coverage profiling
12190         flags and disable optimization
12191
12192 2003-02-10  Havoc Pennington  <hp@pobox.com>
12193
12194         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12195         initial cut at test framework for DBusAuth from laptop.
12196         Doesn't quite work yet but it compiles and I need to get
12197         it off the 266mhz laptop. ;-)
12198
12199         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12200         fix a memleak in error case
12201
12202 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12203
12204         * bus/Makefile.am:
12205         * bus/desktop-file.c:
12206         * bus/desktop-file.h:
12207         Add a desktop file parser.
12208
12209 2003-02-11  Zack Rusin  <zack@kde.org>
12210
12211         * qt/message.[h|cpp]: sample implementation
12212         of the KDE wrapper for DBusMessage
12213
12214 2003-02-09  Zack Rusin  <zack@kde.org>
12215
12216         * test/bus-test.c: make_it_compile
12217         * doc/dbus-specification.sgml: minimal semantic fix
12218
12219 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12220
12221         Release 0.3
12222
12223         * NEWS: Update
12224
12225 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12226
12227         * dbus/Makefile.am:
12228         * dbus/dbus-break-loader.c:
12229         * test/Makefile.am:
12230         * test/break-loader.c:
12231         Move dbus-break-loader to test/ and rename it to break-loader.
12232
12233 2003-02-02  Havoc Pennington  <hp@pobox.com>
12234
12235         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12236         for code to manage cookies in your home directory
12237
12238         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12239
12240         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12241         to authenticate, then disconnect the client.
12242
12243 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12244
12245         * dbus/dbus-message.c (dbus_message_append_fields):
12246         Correct docs.
12247
12248 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12249
12250         * doc/dbus-specification.sgml:
12251         Update address format section.
12252
12253 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12254
12255         * test/Makefile.am:
12256         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12257         (message_handler), (new_connection_callback), (loop_quit),
12258         (loop_run), (main):
12259         Add bus test.
12260
12261 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12262
12263         * bus/driver.c: (bus_driver_handle_service_exists):
12264         Simplify the code a bit.
12265
12266         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12267         Fix a silly.
12268
12269 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12270
12271         * bus/Makefile.am:
12272         Add libdbus-daemon.la and link to it.
12273
12274 2003-02-01  James Willcox  <jwillcox@gnome.org>
12275
12276         * bus/driver.c: (bus_driver_handle_own_service):
12277         Actually include the service reply code in the message.
12278
12279 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12280
12281         * bus/driver.c: (bus_driver_handle_service_exists):
12282         Don't unref the incoming message.
12283
12284 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12285
12286         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12287
12288 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12289
12290         * dbus/dbus-server.c: (dbus_server_listen):
12291         * dbus/dbus-transport.c: (_dbus_transport_open):
12292         ifdef out the calls to the debug transport and server.
12293
12294 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12295
12296         * dbus/dbus-watch.c (dbus_watch_get_flags):
12297         Add note in the docs that ERROR or HANGUP won't be returned
12298         and are assumed always on.
12299
12300         * glib/dbus-gmain.c (add_watch):
12301         Always add IO_ERR | IO_HUP
12302
12303         * dbus/dbus-message.h:
12304         Add semicolon after dbus_message_iter_get_string_array().
12305         Makes qt code build again
12306
12307 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12308
12309         * bus/driver.c: (create_unique_client_name),
12310         (bus_driver_handle_hello):
12311         Don't take a name, just use a numeric id to identify
12312         each client.
12313
12314         * dbus/Makefile.am:
12315         * dbus/dbus-bus.c: (dbus_bus_register_client),
12316         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12317         * dbus/dbus-bus.h:
12318         Add new convenience functions for communicating with the bus.
12319
12320         * dbus/dbus-message.h:
12321
12322         * dbus/dbus-protocol.h:
12323         Fix a typo.
12324
12325 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12326
12327         * dbus/dbus-message.c (dbus_message_append_fields):
12328         Add some more doc comments.
12329
12330 2003-02-01  Havoc Pennington  <hp@pobox.com>
12331
12332         * dbus/dbus-break-loader.c (randomly_modify_length): change
12333         a 4-byte value in the message as if it were a length
12334
12335         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12336         execute bit on saved files
12337
12338 2003-02-01  Havoc Pennington  <hp@pobox.com>
12339
12340         * dbus/dbus-break-loader.c (main): new program to find messages
12341         that break the loader.
12342
12343         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12344         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12345
12346         * dbus/dbus-string.c (_dbus_string_set_byte): new
12347
12348 2003-01-31  Havoc Pennington  <hp@pobox.com>
12349
12350         * dbus/dbus-message.c: refactor the test code to be more general,
12351         in preparation for writing a "randomly permute test cases to
12352         try to break the loader" program.
12353
12354 2003-01-31  Havoc Pennington  <hp@pobox.com>
12355
12356         * doc/dbus-specification.sgml: work on the specification
12357
12358         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12359         the protocol version of the message.
12360
12361         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12362         no longer specifies that.
12363         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12364         1/2/3/4)
12365
12366         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12367         "break" for DBUS_TYPE_NIL, remove @todo
12368
12369 2003-01-31  Havoc Pennington  <hp@pobox.com>
12370
12371         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12372         just set_is_error/get_is_error as this is a commonly-used
12373         function, and write docs.
12374
12375 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12376
12377         * dbus/dbus-address.c: (dbus_address_entry_free):
12378         Free key and value lists.
12379
12380         * dbus/dbus-internals.c: (_dbus_type_to_string):
12381         Add the types we didn't have.
12382
12383         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12384         (_dbus_marshal_validate_arg):
12385         Add NIL types.
12386
12387         * dbus/dbus-message.c: (dbus_message_set_sender):
12388         Remove todo about being able to set sender to NULL.
12389
12390         (dbus_message_set_is_error_reply),
12391         (dbus_message_get_is_error_reply):
12392         * dbus/dbus-message.h:
12393         New functions.
12394
12395         * dbus/dbus-protocol.h:
12396         Add error reply flag.
12397
12398         * test/data/valid-messages/opposite-endian.message:
12399         Add NIL type to test.
12400
12401 2003-01-31  Havoc Pennington  <hp@pobox.com>
12402
12403         * doc/dbus-specification.sgml: fully specify the header.  Add
12404         flags and major protocol version, and change header/body len to
12405         unsigned.
12406
12407         * dbus/dbus-message-builder.c (append_saved_length): append length
12408         as uint32
12409
12410         * dbus/dbus-message.c (dbus_message_create_header): change header
12411         length and body length to unsigned. Add the new fields from the
12412         spec
12413         (_dbus_message_loader_return_buffer): unsigned header/body len
12414
12415 2003-01-30  Havoc Pennington  <hp@pobox.com>
12416
12417         * dbus/dbus-auth.c: rework to use only REJECTED, no
12418         MECHANISMS
12419
12420         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12421         use REJECTED, suggested by Mark McLoughlin
12422
12423 2003-01-30  Havoc Pennington  <hp@pobox.com>
12424
12425         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12426         a better way to report errors here. e.g.  "unix address lacks
12427         path" or something. also "no such file" when the path doesn't
12428         exist, etc.
12429
12430         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12431         leaking list nodes
12432         (dbus_parse_address): add @todo about documenting address format,
12433         and allowing , and ; to be escaped
12434
12435 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12436
12437         * dbus/Makefile.am:
12438         Add dbus-address.[ch]
12439
12440         * dbus/dbus-address.c: (dbus_address_entry_free),
12441         (dbus_address_entries_free), (create_entry),
12442         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12443         (dbus_parse_address), (_dbus_address_test):
12444         * dbus/dbus-address.h:
12445         New files for dealing with address parsing.
12446
12447         * dbus/dbus-connection.c:
12448         Document timeout functions.
12449
12450         * dbus/dbus-message.c:
12451         Document dbus_message_new_from_message.
12452
12453         * dbus/dbus-server-debug.c:
12454         Document.
12455
12456         * dbus/dbus-server.c: (dbus_server_listen):
12457         Parse address and use correct server implementation.
12458
12459         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12460         * dbus/dbus-string.h:
12461         New function with test.
12462
12463         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12464         * dbus/dbus-test.h:
12465         Add address tests.
12466
12467         * dbus/dbus-transport-debug.c:
12468         Document.
12469
12470         * dbus/dbus-transport.c: (_dbus_transport_open):
12471         Parse address and use correct transport implementation.
12472
12473 2003-01-30  Havoc Pennington  <hp@pobox.com>
12474
12475         * dbus/dbus-message.c: use message->byte_order instead of
12476         DBUS_COMPILER_BYTE_ORDER throughout.
12477         (dbus_message_create_header): pad header to align the
12478         start of the body of the message to 8-byte boundary
12479
12480         * dbus/dbus-marshal.h: make all the demarshalers take const
12481         DBusString arguments.
12482
12483         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12484         validate message args here, so we don't have to do slow validation
12485         later, and so we catch bad messages as they are incoming. Also add
12486         better checks on header_len and body_len. Also fill in
12487         message->byte_order
12488
12489         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12490         implemented properly)
12491         (_dbus_string_validate_nul): new function to check all-nul
12492
12493         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12494         get_arg_end_pos and remove all validation
12495         (_dbus_marshal_validate_arg): actually do validation here.
12496
12497 2003-01-29  Havoc Pennington  <hp@pobox.com>
12498
12499         * dbus/dbus-message.c (check_message_handling): fix assertion
12500         failure on set_client_serial
12501
12502 2003-01-28  Havoc Pennington  <hp@pobox.com>
12503
12504         * dbus/dbus-server-debug.c: Add doc section comments
12505
12506         * dbus/dbus-transport-debug.c: add doc section comments
12507
12508 2003-01-28  Havoc Pennington  <hp@redhat.com>
12509
12510         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12511         the reverse order from how I had it
12512         (_dbus_string_base64_encode): reverse encoding order. I was
12513         basically byteswapping everything during encoding.
12514
12515 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12516
12517         * dbus/dbus-connection-internal.h:
12518         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12519         (_dbus_connection_remove_timeout):
12520         Add functions for adding and removing timeouts.
12521
12522         * dbus/dbus-message.c: (dbus_message_new_from_message):
12523         Add new function that takes a message and creates an exact
12524         copy of it, but with the refcount set to 1.
12525         (check_message_handling):
12526         Fix build error.
12527
12528         * dbus/dbus-server-protected.h:
12529         * dbus/dbus-server.c: (_dbus_server_init_base),
12530         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12531         (dbus_server_set_timeout_functions):
12532         (_dbus_server_remove_timeout):
12533         New functions so that a server can add and remove timeouts.
12534
12535         (dbus_server_listen):
12536         Add commented out call to dbus_server_debug_new.
12537
12538         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12539         Actually set the handler, doh.
12540
12541         * dbus/dbus-transport.c: (_dbus_transport_open):
12542         Add commented out call to dbus_transport_debug_client_new.
12543
12544         * dbus/Makefile.am:
12545         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12546
12547 2003-01-28  Havoc Pennington  <hp@pobox.com>
12548
12549         * dbus/dbus-message.c (check_message_handling): function to check
12550         on the loaded message, iterates over it etc.
12551
12552 2003-01-28  Havoc Pennington  <hp@pobox.com>
12553
12554         * test/Makefile.am (dist-hook): fix make distdir
12555
12556         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12557
12558 2003-01-27  Havoc Pennington  <hp@pobox.com>
12559
12560         * dbus/dbus-mempool.c (time_for_size): replace printf with
12561         _dbus_verbose
12562
12563         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12564         empty lines; fix the SAVE_LENGTH stuff to be
12565         START_LENGTH/END_LENGTH so it actually works; couple other
12566         bugfixes
12567
12568         * test/Makefile.am (dist-hook): add dist-hook for .message files
12569
12570         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12571         can be constant or locked.
12572         (_dbus_string_free): allow freeing a const string as
12573         documented/intended
12574
12575         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12576
12577         * dbus/dbus-test-main.c (main): take an argument which is the
12578         directory containing test data
12579
12580         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12581         argument to this and load all the messages in test/data/
12582         checking that they can be loaded or not loaded as appropriate.
12583
12584 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12585
12586         * bus/dispatch.c: (bus_dispatch_message_handler):
12587         Dispatch messages sent to services.
12588
12589         * bus/driver.c: (bus_driver_send_service_deleted),
12590         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12591         (bus_driver_send_service_acquired):
12592         Add helper functions for sending service related messages.
12593
12594         (bus_driver_send_welcome_message):
12595         Send HELLO_REPLY instead of WELCOME.
12596
12597         (bus_driver_handle_list_services):
12598         Send LIST_SERVICES_REPLY instead of SERVICES.
12599
12600         (bus_driver_handle_own_service),
12601         (bus_driver_handle_service_exists):
12602         New message handlers.
12603
12604         (bus_driver_handle_message):
12605         Invoke new message handlers.
12606
12607         (bus_driver_remove_connection):
12608         Don't remove any services here since that's done automatically
12609         by bus_service_remove_owner now.
12610
12611         * bus/driver.h:
12612         New function signatures.
12613
12614         * bus/services.c: (bus_service_add_owner):
12615         Send ServiceAcquired message if we're the only primary owner.
12616
12617         (bus_service_remove_owner):
12618         Send ServiceAcquired/ServiceLost messages.
12619
12620         (bus_service_set_prohibit_replacement),
12621         (bus_service_get_prohibit_replacement):
12622         Functions for setting prohibit replacement.
12623
12624         (bus_service_has_owner):
12625         New function that checks if a connection is in the owner queue of
12626         a certain service.
12627
12628         * bus/services.h:
12629         Add new function signatures.
12630
12631         * dbus/dbus-list.c: (_dbus_list_test):
12632         Add tests for _dbus_list_remove_last and traversing the list backwards.
12633
12634         * dbus/dbus-list.h:
12635         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12636         go any further, so return NULL then.
12637
12638         * dbus/dbus-protocol.h:
12639         Add new messages, service flags and service replies.
12640
12641 2003-01-26  Havoc Pennington  <hp@pobox.com>
12642
12643         * dbus/dbus-message-builder.c: implement, completely untested.
12644
12645         * test/data/*: add data to be used in testing.
12646         ".message" files are our simple loadable text format.
12647         ".message-raw" will be binary dumps of messages.
12648
12649         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12650
12651 2003-01-26  Havoc Pennington  <hp@pobox.com>
12652
12653         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12654
12655         * dbus/dbus-errors.c (dbus_result_to_string): add
12656         file errors
12657
12658         * dbus/dbus-message-builder.c: new file, will contain code to load
12659         up messages from files. Not implemented yet.
12660
12661 2003-01-26  Havoc Pennington  <hp@pobox.com>
12662
12663         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12664         the sender by setting to NULL
12665
12666 2003-01-26  Havoc Pennington  <hp@pobox.com>
12667
12668         The unit tests pass, but otherwise untested.  If it breaks, the
12669         tests should have been better. ;-)
12670
12671         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12672         the connection.
12673
12674         * dbus/dbus-message.c: redo everything so we maintain
12675         message->header as the only copy of the various fields.
12676         This avoids the possibility of out-of-memory in some cases,
12677         for example dbus_message_lock() can't run out of memory anymore,
12678         and avoids extra copying. Figured I may as well go ahead and do
12679         this since it was busted for dbus_message_lock to not return
12680         failure on OOM, and dbus_message_write_header was totally
12681         unchecked for OOM. Also fixed some random other bugs.
12682
12683         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12684         that strings are nul-terminated. Also, end_pos can be equal
12685         to string length just not greater than, I think.
12686         (_dbus_marshal_set_int32): new function
12687         (_dbus_marshal_set_uint32): new function
12688         (_dbus_marshal_set_string): new function
12689
12690         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12691         a warning, init timeout_list to NULL
12692         (dbus_connection_send_message): don't use uninitialized variable
12693         "serial"
12694
12695         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12696
12697 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12698
12699         * bus/driver.c: (bus_driver_handle_hello),
12700         (bus_driver_send_welcome_message):
12701         Plug leaks
12702
12703 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12704
12705         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12706         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12707         (dbus_connection_unref):
12708         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12709         * dbus/dbus-message.c: (dbus_message_unref),
12710         Plug memory leaks.
12711
12712         (dbus_message_get_fields):
12713         Remove debugging printout.
12714
12715         (_dbus_message_loader_return_buffer):
12716         Don't store the header string.
12717
12718         (_dbus_message_test):
12719         Plug leaks.
12720
12721 2003-01-26  Richard Hult  <rhult@codefactory.se>
12722
12723         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12724         the file descriptor list, since it can change under us.
12725
12726 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12727
12728         * glib/dbus-gmain.c: (dbus_connection_prepare),
12729         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12730         (remove_watch), (dbus_connection_hookup_with_g_main):
12731         Rewrite the glib handling to use its own GSource instead of a
12732         GIOChannel so we can catch messages put in the queue while waiting
12733         for a reply.
12734
12735 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12736
12737         * bus/Makefile.am:
12738         * bus/connection.c: (connection_disconnect_handler),
12739         (connection_watch_callback), (bus_connection_setup):
12740         * bus/dispatch.c: (send_one_message),
12741         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12742         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12743         * bus/dispatch.h:
12744         * bus/driver.c: (bus_driver_send_service_deleted),
12745         (bus_driver_send_service_created), (bus_driver_handle_hello),
12746         (bus_driver_send_welcome_message),
12747         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12748         (bus_driver_handle_message):
12749         * bus/driver.h:
12750         Refactor code, put the message dispatching in its own file. Use
12751         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12752         is disconnected.
12753
12754 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12755
12756         * dbus/dbus-internals.h:
12757         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12758
12759         * dbus/dbus-message.c: (dbus_message_get_sender):
12760         * dbus/dbus-message.h:
12761         Implement dbus_message_get_sender.
12762
12763         * dbus/dbus-protocol.h:
12764         Add message and service defines.
12765
12766 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12767
12768         * dbus/dbus-connection.c: (dbus_connection_send_message):
12769         * dbus/dbus-message-internal.h:
12770         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12771         (dbus_message_write_header):
12772         Remove _dbus_messag_unlock and don't set the client serial on a
12773         message if one already exists.
12774
12775 2003-01-24  Havoc Pennington  <hp@pobox.com>
12776
12777         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12778         list_pool
12779
12780         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12781         on OOM
12782
12783 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12784
12785         * dbus/dbus-list.c: (alloc_link), (free_link):
12786         Use a memory pool for the links.
12787
12788 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12789
12790         * bus/connection.c: (bus_connection_foreach):
12791         * bus/connection.h:
12792         Add new bus_connection_foreach function.
12793
12794         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12795         Add function that broadcasts a message to all clients.
12796
12797         (bus_driver_send_service_created), (bus_driver_handle_hello),
12798         (bus_driver_send_welcome_message),
12799         (bus_driver_handle_list_services), (bus_driver_message_handler):
12800         Implement functions that take care of listing services, and notifying
12801         clients when new services are created.
12802
12803         * bus/services.c: (bus_services_list):
12804         * bus/services.h:
12805         Add new function that returns an array of strings with the currently
12806         registered services.
12807
12808         * glib/dbus-glib.h:
12809         * glib/dbus-gmain.c:
12810         Update copyright year.
12811
12812 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12813
12814         * dbus/dbus-connection.c: (dbus_connection_send_message):
12815         Unlock the message in case it was sent earlier.
12816
12817         (dbus_connection_send_message_with_reply_and_block):
12818         Remove the reply message from the list.
12819
12820         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12821         Set array_len and new_pos correctly.
12822
12823         (_dbus_marshal_test):
12824         Remove debug output.
12825
12826         * dbus/dbus-message-internal.h:
12827         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12828         New function that returns the reply serial.
12829
12830         (_dbus_message_unlock):
12831         New function that unlocks a message and resets its header.
12832
12833         (dbus_message_append_string_array),
12834         (dbus_message_get_fields_valist),
12835         (dbus_message_iter_get_field_type),
12836         (dbus_message_iter_get_string_array),
12837         (dbus_message_get_fields),
12838         (dbus_message_append_fields_valist):
12839         Handle string arrays.
12840
12841         (dbus_message_set_sender):
12842         Make this function public since the bus daemon needs it.
12843
12844         (decode_header_data):
12845         Set the reply serial to -1 initially.
12846
12847         * dbus/dbus-message.h:
12848         Add dbus_message_set_sender.
12849
12850 2003-01-24  Havoc Pennington  <hp@pobox.com>
12851
12852         * doc/dbus-specification.sgml: add some stuff
12853
12854 2003-01-22  Havoc Pennington  <hp@pobox.com>
12855
12856         * doc/dbus-specification.sgml: Start to document the protocol.
12857
12858 2003-01-22  Havoc Pennington  <hp@pobox.com>
12859
12860         * dbus/dbus-connection.c
12861         (dbus_connection_send_message_with_reply_and_block): add some @todo
12862
12863         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12864
12865 2003-01-21  Havoc Pennington  <hp@pobox.com>
12866
12867         (patch untested because can't compile)
12868
12869         * bus/driver.c (create_unique_client_name): make this function
12870         never recycle client names. Also, caller should initialize
12871         the DBusString.
12872
12873         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12874
12875 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12876
12877         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12878         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12879         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12880         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12881         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12882         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12883         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12884         * dbus/dbus-marshal.h:
12885         * dbus/dbus-protocol.h:
12886         Add support for marshalling and demarshalling integer, double
12887         and string arrays.
12888
12889 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12890
12891         * bus/Makefile.am:
12892         Add driver.[ch]
12893
12894         * bus/connection.c: (connection_disconnect_handler):
12895         Remove the connection from the bus driver's list.
12896
12897         (connection_watch_callback): Dispatch messages.
12898
12899         (free_connection_data): Free connection name.
12900
12901         (bus_connection_setup): Add connection to the bus driver's list.
12902         (bus_connection_remove_owned_service):
12903         (bus_connection_set_name), (bus_connection_get_name):
12904         Add functions for setting and getting the connection's name.
12905
12906         * bus/connection.h:
12907         Add function headers.
12908
12909         * bus/driver.c: (create_unique_client_name),
12910         (bus_driver_handle_hello_message),
12911         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12912         (bus_driver_add_connection), (bus_driver_remove_connection):
12913         * bus/driver.h:
12914         * bus/main.c:
12915         * bus/services.c: (bus_service_free):
12916         * bus/services.h:
12917         New file that handles communication and registreation with the bus
12918         itself.
12919
12920 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12921
12922         * dbus/dbus-connection.c: (dbus_connection_send_message):
12923         Add a new client_serial parameter.
12924
12925         (dbus_connection_send_message_with_reply):
12926         Remove a @todo since we've implemented the blocking function.
12927
12928         (dbus_connection_send_message_with_reply_and_block):
12929         New function that sends a message and waits for a reply and
12930         then returns the reply.
12931
12932         * dbus/dbus-connection.h:
12933         Add new functions.
12934
12935         * dbus/dbus-errors.c: (dbus_result_to_string):
12936         * dbus/dbus-errors.h:
12937         Add new DBUS_RESULT.
12938
12939         * dbus/dbus-message-internal.h:
12940         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12941         (_dbus_message_set_sender), (dbus_message_write_header),
12942         (dbus_message_new_reply), (decode_header_data),
12943         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12944         * dbus/dbus-message.h:
12945         Add new functions that set the reply serial and sender.
12946         Also marshal and demarshal them correctly and add test.
12947
12948         * dbus/dbus-protocol.h:
12949         Add new DBUS_MESSAGE_TYPE_SENDER.
12950
12951         * glib/dbus-glib.h:
12952         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12953         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12954         (dbus_connection_hookup_with_g_main):
12955         * glib/test-dbus-glib.c: (main):
12956         Rewrite to use GIOChannel and remove the GSource crack.
12957
12958         * test/echo-client.c: (main):
12959         * test/watch.c: (check_messages):
12960         Update for changed APIs
12961
12962 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12963
12964         * dbus/Makefile.am: Add dbus-timeout.[cħ]
12965
12966         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12967         Create a DBusTimeoutList.
12968         (dbus_connection_set_timeout_functions): Add new function to
12969         set timeout callbacks
12970
12971         * dbus/dbus-connection.h: Add public DBusTimeout API.
12972
12973         * dbus/dbus-message.c: (dbus_message_get_service):
12974         * dbus/dbus-message.h:  New function.
12975
12976         * dbus/dbus-server.c: Fix small doc typo.
12977
12978         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12979
12980 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
12981
12982         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12983         of the string, just as long as specified.
12984
12985 2003-01-19  Havoc Pennington  <hp@pobox.com>
12986
12987         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12988         new function
12989
12990         * dbus/dbus-server.c (dbus_server_set_max_connections)
12991         (dbus_server_get_max_connections, dbus_server_get_n_connections):
12992         keep track of current number of connections, and add API for
12993         setting a max (but haven't implemented enforcing the max yet)
12994
12995 2003-01-18  Havoc Pennington  <hp@pobox.com>
12996
12997         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12998         reading/writing if read_watch != NULL or write_watch != NULL.
12999
13000         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13001         the message loader code to actually load message->header and
13002         message->body into the newly-created message.
13003
13004         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13005         in OOM case
13006
13007         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13008         (dbus_connection_get_max_message_size)
13009         (dbus_connection_set_max_live_messages_size)
13010         (dbus_connection_get_max_live_messages_size): implement some
13011         resource limitation functions
13012
13013         * dbus/dbus-resources.c: new file implementing some of the
13014         resource limits stuff
13015
13016         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13017         missing docs, add @todo to handle OOM etc.
13018
13019         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13020         docs
13021
13022 2003-01-18  Havoc Pennington  <hp@pobox.com>
13023
13024         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13025         connection if it hasn't been already.
13026
13027         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13028         replace with DisconnectFunction.
13029
13030 2003-01-18  Havoc Pennington  <hp@pobox.com>
13031
13032         Building --disable-verbose-mode --disable-asserts --disable-tests
13033         cuts the library from 112K to 45K or so
13034
13035         * configure.in: check for varargs macro support,
13036         add --enable-verbose-mode, --enable-asserts.
13037
13038         * dbus/dbus-internals.h (_dbus_assert): support
13039         DBUS_DISABLE_ASSERT
13040         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13041
13042 2003-01-18  Havoc Pennington  <hp@pobox.com>
13043
13044         * dbus/dbus-test.c: include config.h so that tests actually run
13045
13046         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13047         so the failure mode when that assumption fails will be plenty
13048         obvious.
13049
13050 2003-01-18  Havoc Pennington  <hp@pobox.com>
13051
13052         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13053
13054         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13055         the distribution
13056
13057         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13058         since we don't want to use those in make check
13059
13060 2003-01-15  Havoc Pennington  <hp@redhat.com>
13061
13062         Release 0.2
13063
13064         * NEWS: update
13065
13066 2003-01-15  Havoc Pennington  <hp@redhat.com>
13067
13068         * test/Makefile.am: fix so that test source code ends up in the
13069         distribution on make distcheck
13070
13071 2003-01-15  Havoc Pennington  <hp@redhat.com>
13072
13073         Release 0.1.
13074
13075         * NEWS: update
13076
13077 2003-01-15  Havoc Pennington  <hp@redhat.com>
13078
13079         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13080         fix build when --disable-tests
13081
13082         * Makefile.am (EXTRA_DIST): put HACKING in here
13083
13084         * HACKING: document procedure for making a tarball release.
13085
13086 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13087
13088         * bus/connection.c: (connection_error_handler),
13089         (bus_connection_setup):
13090         * bus/main.c: (main):
13091         Make sure that the DBusConnectionData struct is NULLed
13092         out to prevent a segfault.
13093
13094         * dbus/dbus-errors.c: (dbus_result_to_string):
13095         * dbus/dbus-errors.h:
13096         * dbus/dbus-message.c: (dbus_message_get_fields),
13097         (dbus_message_get_fields_valist), (_dbus_message_test):
13098         * dbus/dbus-message.h:
13099         Make dbus_message_get_fields return a result code so we can
13100         track invalid fields as well as oom.
13101
13102 2003-01-11  Havoc Pennington  <hp@pobox.com>
13103
13104         * configure.in: change --enable-test/--enable-ansi action-if-given
13105         to enable_foo=$enableval instead of enable_foo=yes
13106
13107 2003-01-08  Havoc Pennington  <hp@pobox.com>
13108
13109         * dbus/dbus-string.c (_dbus_string_align_length): new function
13110
13111         * dbus/dbus-test-main.c: move main() for test app here
13112         * dbus/dbus-test.c
13113         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13114         symbol to run tests, because dbus-test isn't in the main
13115         library
13116
13117         Code review nitpicks.
13118
13119         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13120         for people with narrow emacs ;-). Assert client_serial was filled
13121         in. Assert message->name != NULL.
13122         (dbus_message_append_fields): have "first_field_type" arg separate
13123         from va list, needed for C++ binding that also uses varargs IIRC
13124         and helps with type safety
13125         (dbus_message_new): add @todo about using DBusString to store
13126         service/name internally
13127         (dbus_message_new): don't leak ->service and ->name on OOM later
13128         in the function
13129         (dbus_message_unref): free the service name
13130         (dbus_message_get_fields): same change to varargs
13131         i.e. first_field_type
13132         (_dbus_message_loader_return_buffer): assert that the message data
13133         is aligned (if not it's a bug in our code). Put in verbose griping
13134         about why we set corrupted = TRUE.
13135         (decode_header_data): add FIXME that char* is evil.  Was going to
13136         add FIXME about evil locale-specific string.h strncmp, but just
13137         switched to wacky string-as-uint32 optimization. Move check for
13138         "no room for field name" above get_const_data_len() to avoid
13139         assertion failure in get_const_data_len if we have trailing 2
13140         bytes or the like. Check for service and name fields being
13141         provided twice. Don't leak service/name on error. Require field
13142         names to be aligned to 4 bytes.
13143
13144         * dbus/dbus-marshal.c: move byte swap stuff to header
13145         (_dbus_pack_int32): uscore-prefix
13146         (_dbus_unpack_int32): uscore-prefix
13147         (_dbus_unpack_uint32): export
13148         (_dbus_demarshal_string): add @todo complaining about use of
13149         memcpy()
13150         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13151         handling allowing corrupt data to go unchecked
13152
13153 2003-01-08  Havoc Pennington  <hp@redhat.com>
13154
13155         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13156         to the select() as needed for authentication. (should be using
13157         _dbus_poll() not select, but for another day)
13158
13159         * dbus/dbus.h: include dbus/dbus-protocol.h
13160
13161 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13162
13163         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13164         dbus-connection.h
13165
13166 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13167
13168         * dbus/dbus-internals.c: (_dbus_type_to_string):
13169         New function that returns a string describing a type.
13170
13171         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13172         * dbus/dbus-marshal.h:
13173         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13174         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13175         (dbus_message_iter_get_byte_array):
13176         * dbus/dbus-message.h:
13177         Add new convenience functions for appending and getting message fields.
13178         Also add demarshalling routines for byte arrays.
13179
13180 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13181
13182         * dbus/dbus-connection-internal.h:
13183         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13184         (_dbus_connection_get_next_client_serial),
13185         (dbus_connection_send_message):
13186         * dbus/dbus-internals.h:
13187         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13188         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13189         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13190         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13191         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13192         (_dbus_verbose_bytes), (_dbus_marshal_test):
13193         * dbus/dbus-marshal.h:
13194         * dbus/dbus-message-internal.h:
13195         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13196         (dbus_message_write_header), (_dbus_message_lock),
13197         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13198         (dbus_message_get_name), (dbus_message_append_int32),
13199         (dbus_message_append_uint32), (dbus_message_append_double),
13200         (dbus_message_append_string), (dbus_message_append_byte_array),
13201         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13202         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13203         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13204         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13205         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13206         (decode_header_data), (_dbus_message_loader_return_buffer),
13207         (message_iter_test), (_dbus_message_test):
13208         * dbus/dbus-message.h:
13209         * dbus/dbus-protocol.h:
13210         * dbus/dbus-test.c: (main):
13211         * dbus/dbus-test.h:
13212         * glib/test-dbus-glib.c: (message_handler), (main):
13213         * test/echo-client.c: (main):
13214         * test/watch.c: (check_messages):
13215         Make messages sendable and receivable for real.
13216
13217 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13218
13219         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13220         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13221         * dbus/dbus-message.c: (dbus_message_append_int32),
13222         (dbus_message_append_uint32), (dbus_message_append_double),
13223         (dbus_message_append_string), (dbus_message_append_byte_array):
13224         Handle OOM restoration.
13225
13226 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13227
13228         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13229         (_dbus_demarshal_string), (_dbus_marshal_test):
13230         * dbus/dbus-marshal.h:
13231         * dbus/dbus-message.c: (dbus_message_get_name),
13232         Document these functions.
13233
13234         (dbus_message_append_int32), (dbus_message_append_uint32),
13235         (dbus_message_append_double), (dbus_message_append_string),
13236         (dbus_message_append_byte_array):
13237         * dbus/dbus-message.h:
13238         Add functions for adding message fields of different types.
13239
13240         * dbus/dbus-protocol.h:
13241         Add the different types.
13242
13243 2003-01-05  Havoc Pennington  <hp@pobox.com>
13244
13245         * bus/connection.c: implement routines for handling connections,
13246         first thing is keeping a list of owned services on each connection
13247         and setting up watches etc.
13248
13249         * bus/services.c: implement a mapping from service names to lists
13250         of connections
13251
13252         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13253
13254         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13255         to use static mutexes for global data
13256
13257         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13258         collection of functions to set/get application-specific data
13259         on the DBusConnection.
13260
13261 2003-01-04  Havoc Pennington  <hp@pobox.com>
13262
13263         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13264         (_dbus_poll): new function
13265
13266         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13267         copied from GLib
13268
13269         * bus/loop.c: initial code for the daemon main loop
13270
13271 2003-01-04  Havoc Pennington  <hp@pobox.com>
13272
13273         * test/watch.c (error_handler): make it safe if the error handler
13274         is called multiple times (if we s/error handler/disconnect
13275         handler/ we should just guarantee it's called only once)
13276
13277         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13278         error handler on disconnect (it's quite possible we should
13279         just change the error handler to a "disconnect handler," I'm
13280         not sure we have any other meaningful errors)
13281
13282         * configure.in: check for getpwnam_r
13283
13284         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13285         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13286         mechanism as in SASL spec, using socket credentials
13287
13288         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13289         (_dbus_send_credentials_unix_socket): new function
13290
13291         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13292         dbus_accept()
13293         (_dbus_write): only check errno if <0 returned
13294         (_dbus_write_two): ditto
13295
13296 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13297
13298         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13299         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13300         (_dbus_marshal_test):
13301         * dbus/dbus-marshal.h:
13302         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13303         to _dbus_marshal_utf8_string. Also fix some tests.
13304
13305 2002-12-28  Harri Porten  <porten@kde.org>
13306
13307         * configure.in: added check for C++ compiler and a very cheesy
13308         check for the Qt integration
13309
13310         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13311
13312         * qt/Makefile.am: added
13313
13314         * qt/.cvsignore: added
13315
13316         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13317         latter, added #ifdef QT_THREAD_SUPPORT guard.
13318
13319         * dbus/Makefile.am: added missing headers for make dist
13320
13321 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13322
13323         * dbus/Makefile.am: fixup export-symbols-regex.
13324
13325 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13326
13327         * acinclude.m4: Add this file and put the
13328         PKG_CHECK_MODULE macro in it.
13329
13330 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13331
13332         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13333         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13334         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13335         (_dbus_marshal_test):
13336         Make the demarshalling routines align the pos argument.
13337         Add string marshalling tests and fix the obvious bugs
13338         discovered.
13339
13340 2002-12-26  Havoc Pennington  <hp@pobox.com>
13341
13342         * dbus/dbus-auth.c: fixes fixes fixes
13343
13344         * dbus/dbus-transport-unix.c: wire up support for
13345         encoding/decoding data on the wire
13346
13347         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13348         (_dbus_auth_decode_data): append to target string
13349         instead of nuking it.
13350
13351 2002-12-26  Havoc Pennington  <hp@pobox.com>
13352
13353         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13354         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13355         doh
13356
13357         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13358         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13359         now). Main point is because I wanted unpack_uint32 to implement
13360         _dbus_verbose_bytes
13361         (_dbus_verbose_bytes): new function
13362
13363         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13364
13365         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13366         mechanism to handle a corrupt message stream
13367         (_dbus_message_loader_new): fix preallocation to only prealloc,
13368         not prelengthen
13369
13370         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13371         (_dbus_string_test): enhance tests for copy/move and fix the
13372         functions
13373
13374         * dbus/dbus-transport-unix.c: Hold references in more places to
13375         avoid reentrancy problems
13376
13377         * dbus/dbus-transport.c: ditto
13378
13379         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13380         leak reference count in no-message case
13381
13382         * test/watch.c (do_mainloop): handle adding/removing watches
13383         during iteration over the watches. Also, ref the connection/server
13384         stored on a watch, so we don't try to mangle a destroyed one.
13385
13386         * dbus/dbus-transport-unix.c (do_authentication): perform
13387         authentication
13388
13389         * dbus/dbus-auth.c (get_state): add a state
13390         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13391         (_dbus_auth_get_unused_bytes): append the unused bytes
13392         to the passed in string, rather than prepend
13393
13394         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13395         the auth conversation DBusAuth
13396
13397         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13398         (_dbus_transport_new_for_domain_socket): when creating a
13399         transport, pass in whether it's a client-side or server-side
13400         transport so we know which DBusAuth to create
13401
13402 2002-12-03  Havoc Pennington  <hp@pobox.com>
13403
13404         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13405         _after_ finalizing the derived members
13406         (unix_connection_set): unref watch if we fail to add it
13407
13408         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13409         transport first, so that the connection owned by the
13410         transport will be valid as the transport finalizes.
13411
13412         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13413         if necessary, and remove watches from the connection.
13414
13415         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13416
13417 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13418
13419         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13420         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13421         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13422         (_dbus_marshal_test):
13423         * dbus/dbus-marshal.h:
13424         Add string marshal functions and have the demarshal functions
13425         return the new position.
13426
13427 2002-12-25  Havoc Pennington  <hp@pobox.com>
13428
13429         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13430         it is a simple protocol that just maps directly to SASL.
13431
13432         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13433         initial implementation, not actually used yet.
13434
13435         * dbus/dbus-string.c (_dbus_string_find): new function
13436         (_dbus_string_equal): new function
13437         (_dbus_string_base64_encode): new function
13438         (_dbus_string_base64_decode): new function
13439
13440 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13441
13442         * dbus/Makefile.am:
13443         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13444         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13445         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13446         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13447         * dbus/dbus-marshal.h:
13448         * dbus/dbus-protocol.h:
13449         * dbus/dbus-test.c: (main):
13450         * dbus/dbus-test.h:
13451         Add un-optimized marshalling/demarshalling routines.
13452
13453 2002-12-25  Harri Porten  <porten@kde.org>
13454
13455         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13456
13457 2002-12-24  Zack Rusin  <zack@kde.org>
13458
13459         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13460         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13461         main loop stuff
13462
13463 2002-12-24  Havoc Pennington  <hp@pobox.com>
13464
13465         * glib/dbus-gthread.c: fix include
13466
13467         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13468         I think glib API needs to change, though, as you don't
13469         want to use DBusMessageFunction, you want to use the
13470         DBusMessageHandler object. Probably
13471         dbus_connection_open_with_g_main_loop()
13472         and dbus_connection_setup_g_main_loop() or something like that
13473         (but think of better names...) that just create a connection
13474         that has watch/timeout functions etc. already set up.
13475
13476         * dbus/dbus-connection.c
13477         (dbus_connection_send_message_with_reply): new function just to
13478         show how the message handler helps us deal with replies.
13479
13480         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13481
13482         * dbus/dbus-string.c (_dbus_string_test): free a string that
13483         wasn't
13484
13485         * dbus/dbus-hash.c: use memory pools for the hash entries
13486         (rebuild_table): be more paranoid about overflow, and
13487         shrink table when we can
13488         (_dbus_hash_test): reduce number of sprintfs and write
13489         valid C89. Add tests for case where we grow and then
13490         shrink the hash table.
13491
13492         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13493
13494         * dbus/dbus-connection.c (dbus_connection_register_handler)
13495         (dbus_connection_unregister_handler): new functions
13496
13497         * dbus/dbus-message.c (dbus_message_get_name): new
13498
13499         * dbus/dbus-list.c: fix docs typo
13500
13501         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13502         an object representing a handler for messages.
13503
13504 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13505
13506         * glib/dbus-glib.h:
13507         * glib/dbus-gthread.c: (dbus_gthread_init):
13508         Don't use the gdbus prefix for public functions.
13509
13510 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13511
13512         * Makefile.am:
13513         * configure.in:
13514         Add GLib checks and fixup .pc files
13515
13516         * glib/Makefile.am:
13517         * glib/dbus-glib.h:
13518         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13519         (gdbus_connection_check), (gdbus_connection_dispatch),
13520         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13521         (dbus_connection_gsource_new):
13522         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13523         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13524         * glib/test-dbus-glib.c: (message_handler), (main):
13525         Add GLib support.
13526
13527 2002-12-15  Harri Porten  <porten@kde.org>
13528
13529         * autogen.sh: check for libtoolize before attempting to use it
13530
13531         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13532         struct.
13533
13534         * .cvsignore: ignore more stamp files
13535
13536         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13537
13538         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13539         without make install.
13540
13541 2002-12-15  Havoc Pennington  <hp@pobox.com>
13542
13543         * dbus/dbus-threads.c: add thread stubs that a higher library
13544         layer can fill in. e.g. the GLib wrapper might fill them in with
13545         GThread stuff. We still need to use this thread API to
13546         thread-safe-ize the library.
13547
13548 2002-12-12  Havoc Pennington  <hp@pobox.com>
13549
13550         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13551         below new interfaces and include fewer system headers.
13552
13553         * dbus/dbus-sysdeps.c (_dbus_read): new function
13554         (_dbus_write): new function
13555         (_dbus_write_two): new function
13556         (_dbus_connect_unix_socket): new function
13557         (_dbus_listen_unix_socket): new function
13558
13559         * dbus/dbus-message-internal.h: change interfaces to use
13560         DBusString
13561
13562 2002-12-11  Havoc Pennington  <hp@pobox.com>
13563
13564         * dbus/dbus-types.h: add dbus_unichar
13565
13566         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13567
13568         * dbus/dbus-connection.c (dbus_connection_send_message): return
13569         TRUE on success
13570
13571         * dbus/dbus-transport.c: include dbus-watch.h
13572
13573         * dbus/dbus-connection.c: include dbus-message-internal.h
13574
13575         * HACKING: add file with coding guidelines stuff.
13576
13577         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13578         handling here, for security purposes (as in vsftpd). Not actually
13579         using this class yet.
13580
13581         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13582         system/libc usage here, as in vsftpd, for ease of auditing (and
13583         should also simplify portability). Haven't actually moved all the
13584         system/libc usage into here yet.
13585
13586 2002-11-25  Havoc Pennington  <hp@pobox.com>
13587
13588         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13589         always print the first verbose message.
13590
13591 2002-11-24  Havoc Pennington  <hp@pobox.com>
13592
13593         * test/echo-client.c, test/echo-server.c: cheesy test
13594         clients.
13595
13596         * configure.in (AC_CHECK_FUNCS): check for writev
13597
13598         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13599         function
13600
13601         * dbus/dbus-list.c (_dbus_list_foreach): new function
13602
13603         * dbus/dbus-internals.c (_dbus_verbose): new function
13604
13605         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13606         representing a server that listens for connections.
13607
13608         * dbus/.cvsignore: create
13609
13610         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13611         public API for reporting errors
13612
13613         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13614         public object representing a connection that
13615         sends/receives messages. (Same object used for
13616         both client and server.)
13617
13618         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13619         Basic abstraction for different kinds of stream
13620         that we might read/write messages from.
13621
13622 2002-11-23  Havoc Pennington  <hp@pobox.com>
13623
13624         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13625         _DBUS_INT_MAX
13626
13627         * dbus/dbus-test.c (main): add list test, and include
13628         dbus-test.h as intended
13629
13630         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13631         (_dbus_hash_table_remove_int): return value indicates
13632         whether the entry existed to remove
13633
13634         * dbus/dbus-list.c: add linked list utility class,
13635         with docs and tests
13636
13637         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13638         array sometimes.
13639
13640 2002-11-23  Havoc Pennington  <hp@pobox.com>
13641
13642         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13643         DBUS_END_DECLS to nothing, that should fix this once and for all
13644
13645         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13646
13647         * dbus/dbus-message.c, dbus/dbus-hash.c:
13648         add some missing @brief
13649
13650 2002-11-23  Havoc Pennington  <hp@pobox.com>
13651
13652         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13653         to avoid confusing Doxygen
13654
13655         * dbus/dbus-hash.c: @} not }@
13656
13657         * dbus/dbus-message.c (struct DBusMessage): split out
13658         internals docs
13659
13660 2002-11-23  Havoc Pennington  <hp@pobox.com>
13661
13662         * configure.in: pile on more warning flags if using gcc
13663
13664         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13665         to document static functions
13666
13667         * configure.in: add summary to end of configure so it
13668         looks nice and attractive
13669
13670         * dbus/dbus-hash.c: finish implementation and write unit
13671         tests and docs
13672
13673         * configure.in: add --enable-tests to enable unit tests
13674
13675         * dbus/dbus-test.c: test program to run unit tests
13676         for all files in dbus/*, initially runs a test for
13677         dbus-hash.c
13678
13679         * dbus/dbus-internals.h: file to hold some internal utility stuff
13680
13681 2002-11-22  Havoc Pennington  <hp@redhat.com>
13682
13683         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13684         "ported" away from Tcl
13685
13686         * dbus/dbus-types.h: header for types such as dbus_bool_t
13687
13688 2002-11-22  Havoc Pennington  <hp@redhat.com>
13689
13690         * dbus/dbus.h: fixups for doc warnings
13691
13692         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13693         macros
13694         (QUIET): make it quiet so we can see warnings
13695
13696         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13697
13698 2002-11-22  Havoc Pennington  <hp@redhat.com>
13699
13700         * Makefile.am: include "Doxyfile" target in all-local
13701
13702         * configure.in: generate the Doxyfile
13703
13704         * Doxyfile.in: move Doxyfile here, so we can use
13705         configure to generate a Doxyfile with the right
13706         version number etc.
13707
13708 2002-11-22  Havoc Pennington  <hp@redhat.com>
13709
13710         * dbus/dbus-message.c: move inline docs into .c file
13711
13712         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13713         so all docs are under doc/
13714         (MAN_EXTENSION): generate man pages. Use extension
13715         ".3dbus" which matches ".3qt" on my system,
13716         I guess this is OK, I don't know really.
13717         (FILE_PATTERNS): look for .c files not .h, makes sense
13718         for plain C I think
13719
13720 2002-11-22  Havoc Pennington  <hp@pobox.com>
13721
13722         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13723         because any app can be a server, and any app can be a client,
13724         the bus is a special kind of server.
13725
13726 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13727
13728         * Doxyfile : adding. Still needs Makefile rules to be generated
13729         automatically (just run "doxygen" in the toplevel dir for now to
13730         generate docs)
13731
13732         * dbus/dbus-message.h : Adding sample docs (javadoc since
13733         resembles gtk-doc a little more)
13734
13735         * dbus/dbus.h : Adding sample docs
13736
13737 2002-11-21  Havoc Pennington  <hp@redhat.com>
13738
13739         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13740         so we can allow ourselves to include files directly,
13741         instead of having to use dbus.h
13742
13743         * dbus/dbus.h: fill in
13744
13745         * dbus/dbus-message.h: sketch out a sample header file.
13746         Include griping if you include it directly instead of
13747         via dbus.h
13748
13749         * dbus/dbus-macros.h: new file with macros for extern "C",
13750         TRUE/FALSE, NULL, etc.
13751
13752         * doc/file-boilerplate.c: put include guards in here
13753
13754 2002-11-21  Havoc Pennington  <hp@redhat.com>
13755
13756         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13757
13758         * COPYING: include the GPL as well, and license code
13759         under both AFL and GPL.
13760
13761 2002-11-21  Havoc Pennington  <hp@redhat.com>
13762
13763         * acconfig.h: get rid of this
13764
13765         * autogen.sh (run_configure): add --no-configure option
13766
13767         * configure.in: remove AC_ARG_PROGRAM to make
13768         autoconf complain less. add AC_PREREQ.
13769         add AC_DEFINE third arg.
13770
13771 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13772
13773         * doc/Makefile.am:
13774         Fix references so we can distcheck.
13775
13776 2002-11-21  Havoc Pennington  <hp@redhat.com>
13777
13778         * Initial module creation
13779