* dbus/dbus-object-tree.c (_dbus_object_subtree_new):
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
4         remove dead code
5
6 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
7
8         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
9         #!/bin/bash
10
11 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
12
13         * Doxyfile.in: fix the INPUT line so we can generate docs 
14         when sourcedir != builddir (patch from Cygwin Ports maintainer
15         <yselkowitz at users dot sourceforge dot net>
16
17 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
18
19         * dbus/dbus-sysdeps.h:
20         * dbus/dbus-sysdeps.c: 
21         * dbus/dbus-string.c: 
22         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
23         GLib's function which does the same thing
24
25         * configure.in:
26         * bus/Makefile.am:
27         * bus/dir-watch-default.c:
28         * bus/dir-watch-dnotify.c:
29         * bus/dir-watch-kqueue.c:
30         Add kqueue directory watching for freebsd and split the directory
31         watching code into seperate files per method/arch
32         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
33
34 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
35
36         * configure.in:
37         * tools/Makefile.am:
38         * tools/dbus-launch.c:
39         * bus/Makefile.am:
40         allow --with-dbus-daemondir switch to be used to make the
41         daemon install to a seperate bindir like /usr/libexec
42         (patch from Brian Cameron <brian dot cameron at sun dot com)
43
44 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
45
46         * bus/Makefile.am (install-data-hook): removed the slash after 
47         $(DESTDIR) so we don't get the double slash which does not work
48         in windows (patch from Andras Porjesz 
49         <andras dot porjesz at siemens dot com>)
50
51 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
52
53         * dbus/dbus-sysdeps.h:
54         * dbus/dbus-sysdeps.c: 
55           add _dbus_printf_length (patch from Peter Kümmel 
56           <syntheticpp at gmx dot net>)
57
58 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
59
60         * dbus/dbus-internals.c: unistd.h is not used 
61         (_dbus_verbose_real): only enable verbose printing 
62         if DBUS_VERBOSE environment var is set to '1'
63         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
64
65 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
66
67         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
68         so we still compile on older gcc (patch from Frederic Peters 
69         <fpeters at 0d dot be>
70
71 2006-08-04  Havoc Pennington  <hp@redhat.com>
72
73         * configure.in: add -Wdeclaration-after-statement
74
75         * dbus/dbus-connection.c: change all the pending call stuff to
76         reflect the fact that pending call operations use the connection
77         lock
78
79         * dbus/dbus-pending-call.c: add locking here
80
81         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
82         field const consistent with how message field is done
83
84 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
85
86         * s/D-BUS/D-Bus/g
87
88 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
89
90         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
91         <in7y118 at public.uni-hamburg dot de> - fix invalid
92         read/write reported by valgrind
93
94 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
95
96         * Released 0.91
97
98 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
99
100         * dbus/dbus-connection.c:
101         (_dbus_connection_attach_pending_call_unlocked):
102         (connection_timeout_and_complete_all_pending_calls_unlocked):
103         Make sure we set timeout_added on pending calls to FALSE when
104         we remove the timeout from the connection
105
106 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
107
108         * Removed some extra bindings stuff lingering around (thanks timo)
109         * dbus-pendingcall.c (_dbus_pending_call_new): 
110         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
111         when we tried to take a lock on an already locked connection
112
113 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
114
115         * Released 0.90
116
117 2006-07-17  Havoc Pennington  <hp@redhat.com>
118
119         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
120         ints, reported by Owen Taylor
121
122 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
123
124         * doc/TODO:
125         * dbus/dbus-bus.c:
126         * dbus-errors.c:
127         * dbus/dbus-marshal-validate.c:
128           Removed TODO items which were fixed or are no longer relevent
129
130 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
131
132         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
133         Remove stray files from the stripped bindings
134
135 2006-07-16  Havoc Pennington  <hp@redhat.com>
136
137         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
138         Improve the error message on reply timeout
139
140 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
141
142         * Remove all bindings
143
144 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
145
146         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
147         and set pending_reply out arg to NULL is connection is disconnected
148         (connection_timeout_and_complete_all_pending_calls_unlocked): New
149         static method for cleaning up pending calls on disconnect
150         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
151         calls queued timeouts on disconnect 
152
153          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
154         Remove 
155
156 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
157
158         * bus/activation.[ch] (bus_activation_list_services): new function to 
159         get the list of services that can be activated
160
161         * bus/dispatch.c: test coverage for the new bus method
162         ListActivatableNames
163
164         * bus/driver.c: new bus method ListActivatableNames to get the list of
165         services that can be activated
166
167         * doc/dbus-specification.xml: ListActivatableNames method documentation
168
169 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
170         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
171         source files
172
173 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
174         * dbus/dbus-message-factory.c:
175         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
176
177 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
178         * dbus/dbus-connection-internal.h:
179         * dbus/dbus-connection.c:
180         * file dbus/dbus-pending-call.c:
181         * dbus/dbus-pending-call.h:
182         Make DBusPendingCall an opaque type even to D-Bus internals
183
184 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
185
186         * dbus/dbus-connection.h: remove connection_disconnect and replace with
187         connection_close
188
189         * dbus/dbus-connection.c: include dbus-bus.h
190         (_dbus_connection_read_write_dispatch): make static
191
192 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
193
194         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
195         function
196         (dbus_connection_dispatch): On disconnect unref any shared connections
197
198         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
199         for cleaning up shared connections on disconnect
200         (internal_bus_get): get a hard refrence to shared connections when
201         they are created
202         
203         * doc/TODO: Remove items which are no longer relevent or have been fixed
204         Split 1.0 todo items with a 0.90 freeze todo list
205  
206 2006-06-14  Ross Burton  <ross@openedhand.com>
207
208         * glib/dbus-gobject.c:
209         Free a leaking GArray (surely not!) in dbus_g_method_return.
210
211 2006-06-14  Ross Burton  <ross@openedhand.com>
212
213         * tools/Makefile.am:
214         * tools/dbus-monitor.c:
215         Don't use the GLib bindings in dbus-monitor (patch from Ralf
216         Habacker).
217         
218 2006-06-14  Ross Burton  <ross@openedhand.com>
219
220         * tools/dbus-print-message.c:
221         Also print the object path when outputting signals or method calls.
222
223 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
224
225         * qt/src/Makefile.am: install the qdbus.h header.
226         This allows people to actually use the installed code.
227
228 2006-06-12  Ross Burton  <ross@openedhand.com>
229
230         * glib/dbus-gproxy.c:
231         Don't leak a GArray when firing signals (thank Rob Taylor for review).
232
233 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
234
235         * Released 0.62
236
237 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
238
239         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
240         break pedantic builds. Closes bug 6043 (patch approved by
241         Havoc back in February).
242
243 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
244
245         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
246         that took a QDBusMessage parameter.
247         * qt/src/qdbusbus.h: Add a default flag for RequestName.
248         * qt/tools/dbus.cpp: Don't use automatic call because we might
249         be calling an async method: request a reply.
250
251 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
252
253         * test/qt/*: Update the testcases, including testing the new
254         functionality of sending null QByteArray and QString over the
255         bus. Add new headertest test and restore the old
256         qdbusxmlparser test.
257
258 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
259
260         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
261         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
262
263         * qt/examples/Makefile.am:
264         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
265         form.
266
267         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
268         QByteArray() (nulls) over the bus.
269         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
270         the one that has the signature suffix stripped.
271         * qt/src/qdbusreply.h: Make some methods const.
272
273 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
274
275         Patch from Timo Hoenig <thoenig@suse.de>.
276
277         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
278         required during build to EXTRA_DIST.
279         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
280         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
281         * configure.in: Fix "make dist", take care that the Makefile for
282         qt/dbus is being generated.
283
284 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
285
286         * bus/bus.c: Fix eavesdropping on method calls
287
288 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
289
290         * configure.in:
291         * dbus/dbus-userdb-util.c:
292         Add Solaris console owner patch from Artem Kachitchkine
293
294 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
295
296         * qt/Makfile.am:
297         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
298         reorganisation. Thanks to Timo Hoenig for pointing this out.
299
300 2006-06-06  Robert McQueen  <robot101@debian.org>
301
302         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
303           call to dbus_g_type_get_struct.
304
305 2006-06-06  Robert McQueen  <robot101@debian.org>
306
307         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
308           pointers were put into a GPtrArray-based specialised collection, and
309           then freed along with the array. GValues which you add into
310           collections or maps which have the NOCOPY flag set are assumed to not
311           belong to the caller, so rather than the existing pointer-stealing
312           semantics, they are copied instead. Given that the main consumers of
313           this abstraction are the bindings themselves, I don't think this is
314           too bad, but others should watch their choice of take vs set_static.
315
316 2006-06-06  Robert McQueen  <robot101@debian.org>
317
318         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
319           of g_slist_prepend not being used. Fixed copying of slist-based
320           specialised collections, then wrote a test case and found that it was
321           all broken. Went on to fix iterating and appending too. Good thing
322           nobody uses this code yet.
323
324 2006-06-06  Robert McQueen  <robot101@debian.org>
325
326         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
327           the iterators use gvalue_take_ptrarray_value (the GValues themselves
328           are discarded without unsetting, so it makes no difference whether
329           we take or set_static). Remove cases for G_TYPE_POINTER because
330           there really is nothing useful we can do with them in our
331           specialised types - we *need* boxed copy/free functions at the very
332           least.
333
334 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
335
336         * qt/dbus: Add directory. I had forgotten to add this
337         yesterday after the move...
338
339         * qt/examples/Makefile.am:
340         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
341
342         * qt/tools/Makefile.am:
343         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
344         Added feature to get and set properties.
345         Added validation of service, object path and interface names.
346
347         * qt/tools/dbusidl2cpp.cpp: Two new features:
348         1) Allow specifying both the header and the source file names,
349         by separating them with a colon.
350         2) Don't write an interface output if the -p switch wasn't
351         given, but the -a was.
352
353         * qt/src/*: Fix usage of Iterators and ConstIterators.
354         Fix shadowing of variables by other variables (-Wshadow).
355         Fix keyword-cleanliness in headers.
356         Fix ASCII-cast (QLatin1String, QLatin1Char).
357         Fix validation of member names.
358         Add extra checking of introspection data during XML parsing.
359         Various bug fixes.
360
361 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
362
363         * dbus/Makefile.am:
364         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
365         qt/dbus/qdbus.h now.
366
367 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
368
369         * configure.in: Make --disable-qt actually do
370           something. Patch inspired by Zack Rusin.
371
372 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
373
374         * qt/: Update to Subversion r548032.
375         This includes a big reorganisation of the files inside the
376         subdir.
377
378 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
379
380         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
381         clear:  
382         "Failed to connect to socket <host>:<port> <error>" instead of
383         "Failed to connect to socket <host>: <error>:<port>"
384
385         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
386         for a tcp transport. 
387
388 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
389
390         * qt/*: Update the QtDBus bindings up to revision 546310 in
391         Subversion.
392         This adds the dbuscpp2xml tool, that parses a C++ header and
393         outputs a D-BUS Introspection XML.
394
395 2006-05-21  Havoc Pennington  <hp@redhat.com>
396
397         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
398         is not NULL when it shouldn't be. Also a couple of possible fixes
399         for #4637 though I don't understand why the bug happens, to be
400         honest... also the object constructor has an assert name != NULL
401         and the name is only currently NULL for peer-to-peer proxies that 
402         I don't think anyone uses? So it should be asserting.
403         Anyway, for now at least see if we get an earlier assertion failure.
404
405         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
406         apparently broken code to be sure the tests fail and someone 
407         will fix them...
408
409 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
410
411         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
412         and arrays when they had a single element: has_next returns
413         false, even before you read the element. So, instead, check
414         the array length.
415
416 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
417
418         * qt/qdbusmessage.cpp:
419         * qt/qdbustypehelper_p.h:
420         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
421         the list is a const-reference
422
423 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
424
425         * Adding old doc patch that never got applied
426         
427         * dbus/bus.c (dbus_bus_add_match): Add documentation
428
429         * doc/dbus-specification.xml: Add documentation for the match rules
430           and the AddMatch and RemoveMatch methods
431
432 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
433
434         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
435         call (r535506)
436
437         * qt/dbusidl2cpp.cpp:
438         * qt/qdbusabstractadaptor.cpp:
439         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
440         sibling of the QDBusAbstractAdaptor objects instead of the
441         parent. (r535848)
442
443         * qt/dbusidl2cpp.cpp:
444         * qt/qdbusabstractinterface.cpp:
445         * qt/qdbusabstractinterface.h:
446         * qt/qdbusabstractinterface_p.h:
447         * qt/qdbusinterface.cpp: Make properties in interfaces
448         actually work. The code that was generated would not compile,
449         due to moc calls to functions that did not exist. They now
450         shall. (r536571)
451
452 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
453
454         * Makefile.am:
455         * configure.in:
456         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
457         Thanks to Brad Hards for providing the patch
458
459 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
460
461         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
462         call. (r535506)
463
464 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
465
466         * qt/examples/dbus.cpp: Enhance error messages and use
467         QDBusInterfacePtr.
468
469 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
470
471         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
472         and disable the copy operators. (r533772, r534746)
473
474         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
475
476         * qt/qdbusabstractinterface.cpp:
477         * qt/qdbusabstractinterface.h: Change the default call mode to
478         not use the event loop. Add convenience call() methods that
479         take a CallMode parameter. (r534042)
480
481         * qt/qdbusconnection.h: Change the default call mode to not
482         use the event loop. (r534042)
483
484         * qt/qdbusinterface.cpp:
485         * qt/qdbusinterface.h: Add a method to tell us if the
486         interface is valid (since we don't return a null pointer
487         anymore) (r534099)
488
489         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
490         (r534101)
491
492         * qt/qdbusinternalfilters.cpp: Decouple the introspection
493         function in two so taht we get the chance to introspect
494         without having a QDBusMessage (r534102)
495
496         * qt/qdbusbus.h:
497         * qt/qdbusconnection.cpp:
498         * qt/qdbusconnection_p.h:
499         * qt/qdbusintegrator.cpp: Keep a list of our own names to
500         avoid a round-trip to the server when attempting to introspect
501         one of our own objects. Also make sure the filter functions
502         match the empty interface as well. (r534108)
503         Don't keep the connection names. Instead, trust the unique
504         connection name (r534111)
505         Remove event loop usage (r534112)
506
507 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
508
509         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
510         Brad Hards.
511
512 2006-04-28  Robert McQueen  <robot101@debian.org>
513
514         * glib/dbus-gproxy.c: Fix properties so that they can be given in
515         any order, making it easier for people who inherit from this
516         object.
517
518 2006-04-28  Robert McQueen  <robot101@debian.org>
519
520         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
521         of memory from within pointer arrays and lists. Fixes bug #6300.
522
523 2006-04-28  Robert McQueen  <robot101@debian.org>
524
525         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
526         generating struct signatures. Fixes bug #6083.
527
528 2006-04-28  Robert McQueen  <robot101@debian.org>
529
530         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
531         to qdbusconnection_p.moc.
532
533 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
534
535         * README, INSTALL: Doc fixes
536         Patch from Brad Hards <bradh at frogmouth.net>
537
538 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
539
540         * qt/examples/dbus.cpp: Use the new merged-interface mode for
541         the dynamic meta object. No need to guess which interface to
542         call.
543
544 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
545
546         * qt/qdbusconnection_p.h:
547         * qt/qdbusmetaobject.cpp:
548         * qt/qdbusmetaobject_p.h:
549         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
550         for the dynamic meta object. No need to guess which
551         interface to call.
552         * qt/qdbusabstractinterface_p.h:
553         * qt/qdbusconnection.cpp:
554         * qt/qdbusintegrator.cpp:
555         * qt/qdbusinterface.cpp:
556         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
557         Add a QDBusRef that looks and behaves like DCOPRef.
558
559 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
560
561         * dbus/dbus-connection.c: Interfaces are optional in method
562         calls, so don't give up if the interface parameter is NULL.
563         Patch reviewed by Havoc Pennington.
564
565 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
566
567         * qt/qdbusreply.h: Add default constructor and operator=
568           (r532625)
569         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
570           in public headers (r532952)
571         * qt/qdbusabstractinterface.cpp:
572         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
573           make it the default (r532951)
574
575 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
576
577         * dbus/dbus-connection.c: Fix asserts
578         Patch from Tim Moloney <t.moloney at verizon.net>
579
580 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
581
582         * mono/Connection.cs, mono/Message.cs: Check Target type
583         Patch from Aaron Bockover (abockover at novell.com)
584
585 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
586
587         * INSTALL: fine-tune the requirements for the Qt4 binding.
588
589 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
590
591         * tools/dbus-print-message.c: Added support for printing of all 
592           remaining data types. Fixed logic for indentation of compound
593           data types.
594         
595 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
596
597         * INSTALL: fill out content of file providing DBus specific
598           build installations, followed by generic Auto* INSTALL file
599           content
600         
601 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
602
603         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
604           Patch by Stefan Eilers. (r529537)
605
606 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
607
608         * qt/qdbusinternalfilters.cpp: Don't show the parent's
609           contents (r528208)
610
611 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
612
613         * qt/Makefile.am: fix the dependency for
614           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
615           not in qdbusconnection.cpp.
616           Thanks to Jakub Stachowski <stachowski@hypair.net> for
617           spotting this.
618
619 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
620
621         * qt/examples/listnames.cpp:
622         * qt/examples/Makefile.am: Three ways to list the names on the
623           bus.
624
625 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
626
627         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
628           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
629
630 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
631
632         Merge from Subversion:
633         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
634           something that exists (r526315)
635         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
636           slots/signals (r526316)
637         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
638           also return an unknown-method error if the parameters don't
639           match for org.freedesktop.DBus.Properties. (r526842)
640         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
641         * qt/qdbusintegrator.cpp: Restore the proper order of
642           delivery: don't make method returns be delivered on priority
643           (r528150)
644
645 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
646
647         * configure.in qt/Makefile.am: add qt/examples
648         * qt/examples: Add QtDBus example programs:
649           - hello: Hello, World
650           - ping: Simple method-calling program
651           - pong: Simple object-exporting program (not using adaptors)
652           - complexping: Interactive method-calling program 
653                 (also gets and sets properties).
654           - complexpong: Sample program exporting methods, signals and
655                 properties, using adaptors.
656           - dbus: Simple implementation of a generic method-calling
657                 program, similar to 'dbus-send', but with semantics
658                 similar to 'dcop'.
659           - chat: Simplistic chat program, implemented using signals
660                 and the system bus. Looks like IRC.
661
662 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
663
664         * configure.in: Detect QtGui (necessary for one of the
665           example programs). Note: this increases the minimum required
666           version of Qt to 4.1.3.
667
668 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
669
670         * test/qt/*: Sync with KDE Subversion revision 523647.
671         Update the testcases to the new API. Remove testcases for
672         classes that are no longer public or have been removed.
673
674 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
675
676         * qt/*: 
677         * dbus/qdbus.h: Sync with KDE Subversion revision
678         523647. Hopefully, this will be the last of the
679         source-incompatible changes. Documentation has been improved;
680         support for QList<basic-types> has been added; QDBusObject is
681         gone; QDBus(Abstract)Interface is now a QObject with
682         auto-generated meta-object; QDBusIntrospection is marked
683         private, since QMetaObject can be used now; lots of bugfixes.
684
685 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
686
687         Patch from Milosz Derezynski <internalerror at gmail.com>
688         
689         * configure.in:
690         Output the service directory in the configure summary
691
692         * dbus-1.pc.in:
693         Add session_bus_services_dir
694
695 2006-03-10  Ross Burton  <ross@openedhand.com>
696
697         * tools/dbus-print-message.c:
698         Add support for object paths and signatures.
699
700 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
701
702         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
703         config reload.
704         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
705         information caches
706         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
707         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
708         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
709         * dbus/dbus-userdb.h: Add function to flush all user/group information
710         caches.
711
712 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
713
714         * qt/dbusidl2cpp.cpp:
715         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
716         for dcopidl2cpp, found in the KDE installations (or the more
717         modern kalyptus): generate Qt4 C++ code for the input XML
718         introspection. Currently no IDL parsing.
719
720 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
721
722         * test/qt/*: Update the self-tests.
723
724 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
725
726         * qt/*: 
727         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
728         represents the first feature-complete version of the Qt4
729         bindings since I took ove maintainership.
730
731 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
732
733         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
734         dir. This is C++, so we can't use the DBus ones.
735
736 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
737
738         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
739         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
740
741 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
742
743         * dbus/dbus-connection.c: 
744         (_dbus_connection_block_pending_call):
745         Check to see if our data has already been read off the connection
746         by another blocking pending call before we block in poll.
747         (check_for_reply_and_update_dispatch_unlocked):
748         Code taken from _dbus_connection_block_pending_call - checks for
749         an already read reply and updates the dispatch if there is one.
750
751         * test/name-test/test-pending-call-dispatch.c:
752         New test for making sure we don't get stuck polling a 
753         dbus connection which has no data on the socket when
754         blocking out of order on two or more pending calls.
755
756 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
757
758         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
759         make/automake don't detect that we're talking about the same
760         .lo file if I specify the full path to the source files.
761
762 2006-02-26  Havoc Pennington  <hp@redhat.com>
763
764         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
765
766         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
767         session bus variable is unset, suggest "man dbus-launch" and "man
768         dbus-daemon" to figure out how to fix the problem
769
770 2006-02-25  Havoc Pennington  <hp@redhat.com>
771
772         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
773         should make this thing use the new glib options parser
774
775 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
776
777         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
778         .lo files taking moc sources.
779
780 2006-02-25  Havoc Pennington  <hp@redhat.com>
781
782         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
783         and install it as a public header
784
785 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
786
787         * Released 0.61
788
789 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
790         
791         * proxies.py: Fix the callchain
792
793 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
794         
795         * patch from Sjoerd Simons <sjoerd at debian.org>:      
796
797         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
798         dbus/dbus-sysdeps.c
799
800         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
801         call _dbus_group_info_free_allocated which causes infinite loop,
802         correctly call _dbus_group_info_free
803
804 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
805
806         * qt/qdbusinterface_p.h:
807         * qt/qdbusinterface.cpp: Use the standard
808         org.freedesktop.DBus.Method.NoReply annotation for the "async"
809         calls instead of creating one for us.
810
811         * qt/qdbusconnection_p.h:
812         * qt/qdbusintegrator.cpp: Remove debugging code.
813
814         * qt/qdbusintegrator.cpp:
815         * qt/qdbusmessage.cpp:
816         * qt/qdbusmessage_p.h:
817         * qt/qdbusmessage.h: Change the behaviour of automatic
818         reply-sending: now a reply is always sent, unless the caller
819         didn't request one or if the user slot has already sent one.
820
821 2006-02-16  Robert McQueen  <robot101@debian.org>
822
823         * configure.in: Patch from Debian packages by Sjoerd Simons
824         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
825         arguments so it's possible to build both bindings in the
826         same tree.
827
828         * qt/Makefile.am: Fix truncated value so that make dist works.
829
830 2006-02-16  Robert McQueen  <robot101@debian.org>
831
832         * acinclude.m4, configure.in: Patch from Brad Hards
833         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
834         improving quoting, re-ordering a few checks, and a few other
835         aesthetic tidy-ups.
836
837 2006-02-16  Robert McQueen  <robot101@debian.org>
838
839         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
840         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
841         assertion that the next element to read from the iter is fixed in
842         size. This is not the case when you are at the end of the iter,
843         because the next element type is INVALID.
844
845         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
846         a bogus assert which means that you may not initialise a 0-length
847         string unless you provide a non-NULL pointer. This prevented
848         you from marshalling messages containing zero-length arrays in
849         some cases.
850
851         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
852         from Rob to correct bogus asserts when trying to demarshal an
853         array and get_fixed_array got you 0 elements. Append nothing to
854         the GArray in this case.
855
856         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
857         an empty array via the glib bindings. Without all of the above
858         patches, this new test fails.
859
860 2006-02-16  Robert McQueen  <robot101@debian.org>
861
862         * glib/dbus-gmain.c: Make the previous commit compile.
863
864         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
865         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
866         specify sender_keyword="foo", path_keyword="bar" when adding
867         a signal listener, so that you can bind to signals generically
868         but still do something useful in your callback.
869
870         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
871         chars so that they're not cast to chars and made negative. Thanks
872         to Jakub Stachowski for reporting this and testing the fix.
873
874 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
875
876         * dbus/dbus-glib.h:
877         * glib/dbus-gmain.h:
878         (dbus_g_connection_open): new method for openning
879         a connection to an arbitrary address in the glib bindings
880
881         * ChangeLog: checkin last entry which doesn't seem to be commited
882
883 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
884
885         * tools/dbus-launch.c: Fixed sh syntax output
886
887 2006-02-13  Robert McQueen  <robot101@debian.org>
888
889         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
890         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
891         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
892         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
893         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
894         missing piece of the glib bindings jigsaw puzzle. This modifies
895         the existing specialised types to have N type parameters (rather
896         than the current 1 or 2 for arrays and dictionaries respectively).
897         You can then use this to get a glib type to represent any arbitrary
898         D-Bus struct type using dbus_g_type_get_struct. The only
899         implementation of these types is with GValueArrays as before,
900         but it's now possible to store these in arrays, emit them in
901         signals, etc.
902
903 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
904
905         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
906         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
907         <thiago.macieira at trolltech.com>
908
909 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
910
911         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
912         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
913
914 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
915
916         * bus/connection.c (bus_connections_expect_reply): Make
917         pending reply limit not common to all connections (Bug #5416)
918         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
919
920 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
921
922         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
923
924 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
925
926         * gcj/Makefile.am: point to correct jar command (Bug #4529)
927         patch from Doug Goldstein <cardoe at gentoo.org>
928
929 2006-02-09  Joe Shaw  <joeshaw@novell.com>
930
931         * mono/Arguments.cs: Fix a magic number in the mono bindings
932         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
933
934 2006-01-27  Robert McQueen  <robot101@debian.org>
935
936         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
937         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
938         when generating the client-side methods, instead of overloading
939         CSymbol which broke everything horribly. My apologies.
940
941 2006-01-27  Robert McQueen  <robot101@debian.org>
942
943         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
944         by me and Rob Taylor to add a simple_free function to D-Bus map
945         and collection types, which allows those types which can be freed
946         with a GDestroyNotify (such as GHashTables and GArrays, but not
947         GPtrArrays) to be stored as the values in hashtables.
948
949         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
950         Patch by Rob Taylor to add nested dicts to the glib tests to check
951         the above code works, and appears not to leak when called repeatedly.
952
953 2006-01-27  Robert McQueen  <robot101@debian.org>
954
955         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
956         to free a D-Bus allocated string with dbus_free () instead of
957         g_free ().
958
959 2006-01-27  Iain Holmes  <iain@openedhand.com>
960
961         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
962         method from being called multiple times.
963
964 2006-01-19  Robert McQueen  <robot101@debian.org>
965
966         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
967         <rob.taylor@collabora.co.uk> to add support for generating bindings
968         to arrays that are represented as GPtrArrays rather than GArrays (ie
969         size-variable things, such as strings, objects, structs, etc).
970
971 2006-01-05  Robert McQueen  <robot101@debian.org>
972
973         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
974         <ricardo.kekki@movial.fi> to make it possible to inherit from
975         DBusGProxy, by splitting the DBusGProxy struct into a public part and
976         a private part, and moving the setting of the DBusGProxyManager into a
977         connection property, allowing proper GObject construction.
978
979 2006-01-05  Robert McQueen  <robot101@debian.org>
980
981         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
982         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
983         annotations when generating glib client bindings.
984
985 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
986
987         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
988
989         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
990
991 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
992
993         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
994
995 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
996
997         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
998
999 2005-12-19  Ross Burton  <ross@openedhand.com>
1000
1001         * doc/dbus-tutorial.xml:
1002         Document the Glib client-side bindings, and list all possible annotations.
1003
1004 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1005
1006         * dbus/bus.c (dbus_bus_release_name): Add documentation
1007
1008 2005-12-06  Robert McQueen  <robot101@debian.org>
1009
1010         * python/service.py: s/sucessful/successful/ so we're allocating to
1011         and reading from the same variable. Oops.
1012
1013 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1014
1015         * Released 0.60
1016
1017 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1018
1019         * test/qt/Makefile.am: build from srcdir
1020
1021         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1022         Note - this code is wrong and needs to be fixed by the Qt binding
1023         developers.  The flags should be treated as bitfields and not enums.
1024
1025         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1026
1027 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1028
1029         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1030           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1031           in production code
1032
1033 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1034
1035         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1036         method for getting messages off the bus in the absence of a
1037         mainloop.  This method is much like 
1038         dbus_connection_read_write_dispatch except it does not dispatch
1039         the messages to a registered filter function.  Instead it
1040         allows a developer to process messages by directly popping
1041         them off the bus.
1042
1043 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1044
1045         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1046         the parser to continue instead of returning error
1047         (bus_desktop_file_load): Do not free parser data when
1048         parse_section_start or parse_key_value fails because it was 
1049         already freed by parser_free (patch from Carlos Garcia Campos  
1050         <carlosgc at gnome.org>)
1051
1052 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1053
1054         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1055         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1056         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1057         test/test-segfault.c, test/test-utils.c,
1058         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1059         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1060         Various cleanup of dead code and compiler warnings (patch from
1061         Kjartan Maraas <kmaraas at gnome.org>) 
1062
1063 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1064
1065         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1066         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1067
1068 2005-11-27  Robert McQueen  <robot101@debian.org>
1069
1070         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1071         part of the preceding one. Oops. Merge patch by Johan Hedberg
1072         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1073         on big-endian platforms.
1074
1075         * test/python/test-client.py: Add some 16-bit integers to the test
1076         values.
1077
1078 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1079
1080         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1081         method return message for property getters
1082
1083 2005-11-27  Robert McQueen  <robot101@debian.org>
1084
1085         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1086         with type v of an instance of dbus.Variant(foo, type='x') caused
1087         it to be boxed twice before sending over the bus.
1088
1089         * python/dbus_bindings.pyx, python/service.py,
1090         test/python/test-client.py: Update the constants for the new
1091         request_name flags, and update comments/test cases now that queueing
1092         is the default action.
1093
1094 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1095
1096         * configure.in:
1097         - Change version to 0.60 for impending release
1098         - upped the sonames because of ABI and API breakage
1099
1100 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1101
1102         * configure.in: Add test/name-test/Makefile to the generated
1103         Makefile list
1104
1105         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1106         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1107         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1108         not to queue an ower if it can't be the primary owner
1109
1110         * bus/bus.h: Add new internal BusOwner struct
1111
1112         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1113         to bus_registry_ensure and don't set the prohibit_replacement flag
1114         since they are now set per BusOwner and not per name.
1115         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1116         that returns the list of connections in a name's connection queue
1117         
1118         * bus/services.c (struct BusService): remove prohibit_replacement field
1119         (struct BusOwner): new struct for keeping track of queued connections
1120         and their associated flags for the queue
1121         (struct BusRegistry): add a BusOwner memory pool
1122         (bus_registry_new): initialize the BusOwner memory pool
1123         (bus_registry_unref): free the BusOwner memory pool
1124         (_bus_service_find_owner_link): new internal method for
1125         searching the queue for a specific connection
1126         (bus_owner_set_flags): new method for adding setting the flags on a
1127         bus owner
1128         (bus_owner_new): new method that creates a BusOwner object from the
1129         pool and sets its flags
1130         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1131         (bus_registry_ensure): Add the flags parameter
1132         (bus_registry_acquire_service): Switch from using raw connections to
1133         using the BusOwner struct
1134         Add new state machine for dealing with the new set of flags
1135         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1136         cancel_ownership, free_ownership_cancel_data, 
1137         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1138         restore_ownership, free_ownership_restore_data, 
1139         add_restore_ownership_to_transaction): Switch to using BusOwner 
1140         instead of raw connections
1141         (bus_service_add_owner): Add flags parameter
1142         Switch to using BusOwner instead of raw connections
1143         Add state machine for dealing with the new set of flags
1144         (bus_service_swap_owner): Swaps the first and second owners in the
1145         queue.  Used to make sure proper signals are sent when a service looses 
1146         or gains primary ownership.  We never insert an owner at the top of the
1147         queue.  Instead we insert it in the second position and then swap.
1148         (bus_service_remove_owner): Remove the owner from the queue sending
1149         out the NameLost and NameOwnerChanged signals if the we were the 
1150         primary owner
1151         (bus_service_get_primary_owners_connection): New method that extracts
1152         the connection from the primary owner
1153         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1154         connection
1155         (bus_service_get_allow_replacement): Changed from the old 
1156         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1157         primary owner and returns if it can be replaced or not
1158         (bus_service_set_prohibit_replacement): removed
1159         (bus_service_has_owner): returns TRUE if and owner with
1160         the specified connection exists in the queue
1161         
1162         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1163         method that only compiles if tests are enabled.  Allows us to get the 
1164         unique name of a connection so we can check it against the queue when
1165         doing regression tests
1166
1167         * bus/activation.c (bus_activation_send_pending_auto_activate),
1168         bus/dispatch.c (bus_dispatch),  
1169         bus/driver.c (bus_driver_handle_get_service_owner, 
1170         bus_driver_handle_get_connection_unix_user, 
1171         bus_driver_handle_get_connection_unix_process_id,
1172         bus_driver_handle_get_connection_selinux_security_context),
1173         bus/signals.c (connection_is_primary_owner): 
1174         use bus_service_get_primary_owners_connection instead of
1175         bus_service_get_primary_owner
1176
1177         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1178         _dbus_listen_unix_socket): Calculate the length of the socket
1179         path and use that instead of using a fixed length which was
1180         causing socket names to contain many trailing Nul bytes.
1181
1182         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1183         (dbus_g_method_get_sender): New method for extracting the sender 
1184         from a DBusGMethodInvocation
1185         (dbus_g_method_return_get_reply): changed name to 
1186         dbus_g_method_get_reply
1187         (dbus_g_method_return_send_reply): changed name to
1188         dbus_g_method_send reply
1189
1190         * doc/dbus-specification.xml: New docs that describe how the new
1191         queueing system works and talks about the changes to the how
1192         we specify socket names
1193
1194         * glib/examples/example-service.c, 
1195         glib/examples/example-signal-emitter.c,
1196         glib/examples/statemachine/statemachine-server.c:
1197         Changed the RequestName flags to the new system
1198
1199         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1200         regression test suite for testing various states of the new
1201         queueing system
1202         
1203 2005-11-15  Robert McQueen  <robot101@debian.org>
1204
1205         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1206         Taylor to add two methods, dbus_g_method_return_get_reply and
1207         dbus_g_method_return_send_reply, to allow you to get the reply
1208         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1209         and send it. The GLib bindings can't marshal a return value of
1210         something like a(s) if the array is empty - ultimately they should be
1211         made to heed the signature of the out arguments as the Python bindings
1212         now can, but this is a workable interim solution which might have
1213         other applications.
1214
1215 2005-11-15  Robert McQueen  <robot101@debian.org>
1216
1217         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1218         method to org.freedesktop.DBus to release a bus name or give up
1219         waiting in the queue for it.
1220
1221         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1222         dbus_bus_release_name method to send the ReleaseName method calls.
1223         Add constants for the return values to dbus/dbus-shared.h.
1224
1225         * doc/dbus-specification.xml: Document the new ReleaseName method
1226         in the specification.
1227
1228         * python/dbus_bindings.pyx: Add a low-level python binding for the
1229         release name method.
1230
1231         * python/exceptions.py, python/service.py: Make freeing BusName
1232         objects release the name. Add a NameExistsException, and fix a
1233         bug with creating UnknownMethodException.
1234
1235         * test/python/test-client.py: Add tests for freeing BusName
1236         objects causing names to be released.
1237
1238 2005-11-14  Robert McQueen  <robot101@debian.org>
1239
1240         * python/service.py: Include the traceback in the error reply when we
1241         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1242
1243 2005-11-14  David Zeuthen  <davidz@redhat.com>
1244
1245         Patch from Timo Hoenig <thoenig@suse.de>.
1246
1247         * bus/bus.c: I've recently investigated why the automatic reload
1248         of configuration files does not work as expected.
1249
1250         Currently, reloading configuration files does only work when
1251         running dbus-daemon with --nodaemon.  If we are running as daemon
1252         we're hitting a dnotify bug once we fork the process.
1253
1254         We're initializing the dnotify fds before calling fork().  Once
1255         the child process forked it does still have the fds (and they
1256         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1257         getting SIGIO as changes are made to the configuration files.
1258
1259         The attached patch moves the initialization of the dnotify fds to
1260         process_config_postinit().  This is safe for all current code
1261         paths and solves the dnotify disfunction.  If we're running
1262         dbus-daemon as daemon the fds for dnotify are now being
1263         initialized after fork() for the child process.
1264
1265         * configure.in: The current configure.in check for dnotify probes
1266         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1267         match for 'xlinux', too. Additionally I have adapted the configure
1268         option's style to match with the others.
1269
1270 2005-11-14  Robert McQueen  <robot101@debian.org>
1271
1272         * python/decorators.py, python/service.py: Add a new argument to the
1273         dbus.service.method decorator called sender_keyword, which if set,
1274         specifies the name of an argument which will be provided the bus
1275         name of the method caller.
1276
1277         * test/python/test-client.py, test/python/test-service.py: Add a
1278         method and test to check the sender_keyword functionality.
1279
1280 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1281
1282         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1283         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1284         Simons <sjoerd at luon.net>)
1285
1286         * AUTHORS: Add Robert McQueen for his work on the Python
1287         Bindings and other parts of D-Bus
1288
1289 2005-11-07  Robert McQueen  <robot101@debian.org>
1290
1291         * python/decorators.py: Change emit_signal function to use the
1292         signature annotation of the signal when marhsalling the arguments from
1293         the service. Fix a bug where the code checking signature length
1294         against argument length referenced the wrong variable.
1295
1296         * python/introspect_parser.py: Avoid adding the type signature of
1297         signal arguments to any methods which occur after them in the
1298         introspection data (!) by making the parser a little more careful
1299         about its current state.
1300
1301         * python/service.py: Remove debug prints from last commit (again :D).
1302
1303         * test/python/test-client.py, test/python/test-service.py: Add test
1304         signals with signature decorators to test the strict marshalling code
1305         gives errors at the right time. Could do with checking the signals
1306         actually get emitted too, given that the test does nothing with
1307         signals at the moment...
1308
1309 2005-11-07  Robert McQueen  <robot101@debian.org>
1310
1311         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1312         instances to stop madness of creating new instances representing
1313         the same bus connection all the time, rendering any tracking of
1314         match rules and bus names quite meaningless. Caught a bug where
1315         the private argument to SessionBus() and friends was being passed
1316         in as use_default_mainloop by mistake. Still some problems with
1317         multiple dbus_binding.Connection instances representing the same
1318         low-level connection (eg when you use both SessionBus() and
1319         StarterBus() in same process), but it's a lot better now than it
1320         was.
1321
1322         * python/dbus_bindings.pyx: Add constants with the return values
1323         for bus_request_name().
1324
1325         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1326         and retrieve the same instances for the same name, so deletion can be
1327         done with refcounting. Also now throws some kind of error if you
1328         don't actually get the name you requested, unlike previously...
1329
1330         * test/python/test-client.py: Add tests for instance caching of buses
1331         and bus name objects.
1332
1333 2005-11-04  Robert McQueen  <robot101@debian.org>
1334
1335         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1336         marshalling of boolean values. Add some booleans to the values in
1337         the test client.
1338
1339         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1340         argument to the dbus.service.method decorator, which allows you to
1341         name arguments to take two callback functions for replying with
1342         return values or an exception.
1343
1344         * test/python/test-client.py, test/python/test-service.py: Add test
1345         case using asynchronous method reply functions, both return values and
1346         errors, and from within both the function itself and from a mainloop
1347         callback.
1348
1349         * python/decorators.py, python/service.py: Perform checking that the
1350         number of method/signal arguments matches the number of types in the
1351         signature at class loading time, not when you first introspect the
1352         class.
1353
1354         * python/service.py: Remove debug print left by the last commit.
1355
1356 2005-11-03  Robert McQueen  <robot101@debian.org>
1357
1358         * python/service.py: Heavy refactoring of method invocation, with
1359         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1360         in favour of a new _message_cb that uses seperate functions for
1361         looking up the method to call, marshalling the return values, and
1362         sending exceptions as errors, and is easier to follow as a
1363         consequence.  Fixes some corner cases about returning things that
1364         don't match your declared out_signature, allows exceptions to define
1365         _dbus_error_name and have it be sent over the bus as the error name,
1366         and paves the way for cool stuff like heeding the message no reply
1367         flag, asynchronous method implementations, informing the method of the
1368         sender, and including backtraces in the error messages.
1369
1370         * test/python/test-client.py: Catch and print exceptions thrown in the
1371         async callback tests, rather than passing them to the low-level
1372         bindings to be ignored in a noisy and frustrating manner.
1373
1374 2005-11-03  Robert McQueen  <robot101@debian.org>
1375
1376         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1377         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1378         tweak others to be consistent.
1379
1380         * test/python/test-client.py: Tweak output of testInheritance.
1381
1382 2005-10-29  Robert McQueen  <robot101@debian.org>
1383
1384         * python/service.py: Major changes to allow multiple inheritance
1385         from classes that define D-Bus interfaces:
1386         
1387          1. Create a new Interface class which is the parent class of
1388             Object, and make the ObjectType metaclass into InterfaceType.
1389         
1390          2. Patch written with Rob Taylor to replace use of method_vtable
1391             with code that walks the class's __MRO__ (method resolution order)
1392             to behave like Python does when invoking methods and allow
1393             overriding as you'd expect. Code is quite tricky because
1394             we have to find two methods, the one to invoke which has the
1395             right name and isn't decorated with the /wrong/ interface,
1396             and the one to pick up the signatures from which is decorated
1397             with the right interface.
1398         
1399             The same caveats apply as to normal multiple inheritance -
1400             this has undefined behaviour if you try and inherit from two
1401             classes that define a method with the same name but are
1402             decorated with different interfaces. You should decorate
1403             your overriding method with the interface you want.
1404         
1405          3. Replace grungy introspection XML generation code in the metaclass
1406             with dictionaries that cope correctly with multiple inheritance
1407             and the overriding of methods. This also uses the signature
1408             decorations to provide correct introspection data, including
1409             the debut appearance of the types of your return values. :D
1410
1411         * test/python/test-client.py, test/python/test-service.py: Add a test
1412         case to try invoking an method that overrides one inherited from a
1413         D-Bus interface class.
1414
1415 2005-10-29  Robert McQueen  <robot101@debian.org>
1416
1417         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1418         Add checking for the end of struct character when marshalling a
1419         struct in MessageIter.append_strict.
1420
1421         * python/examples/example-service.py,
1422         python/examples/gconf-proxy-service.py,
1423         python/examples/gconf-proxy-service2.py: Update to use gobject
1424         mainloop directly rather than appearing to depend on gtk.
1425
1426         * python/test/test-client.py, python/test/test-server.py: Remove
1427         obsolete and broken test scripts for old bindings. We have up to date
1428         and working tests in test/python/.
1429
1430 2005-10-29  Robert McQueen  <robot101@debian.org>
1431
1432         * python/decorators.py: Add optional arguments to the method and
1433         signal decorators to allow you to specify the signature of arguments
1434         and return values. Preserve the doc strings of signal functions in the
1435         decorated version, for pydoc and friends.
1436
1437         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1438         parse_signature_block function with an iterable dbus.Signature()
1439         type. Fix a bug in MessageIter.append_strict where you could append
1440         anything by claiming it was a string.
1441
1442         * python/service.py: Use the out_signature decoration on methods to
1443         marshal return values, meaning you no longer require dbus.Array()
1444         or dbus.Dictionary() to indicate the type when returning empty
1445         arrays or dictionaries. Fix a bug where exceptions which are defined
1446         in __main__ are not turned into error replies.
1447
1448         * test/python/test-client.py, test/python/test-service.py: Add test
1449         for correct marshalling of return values according to out_signature.
1450         Fix a bug in the async call test where the error_handler is missing a
1451         self argument.
1452
1453 2005-10-29  Robert McQueen  <robot101@debian.org>
1454
1455         * glib/Makefile.am, glib/examples/Makefile.am,
1456         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1457         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1458
1459         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1460
1461         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1462         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1463         the command line.
1464
1465 2005-10-27  Ross Burton  <ross@openedhand.com>
1466
1467         * dbus/dbus-marshal-header.c:
1468         Remove dead code.
1469
1470         * glib/dbus-gobject.c:
1471         Stop compiler warning.
1472
1473 2005-10-25  Ross Burton  <ross@openedhand.com>
1474
1475         * dbus/dbus-auth.c:
1476         * dbus/dbus-server-unix.c:
1477         * dbus/dbus-transport-unix.c:
1478         * glib/dbus-gmain.c:
1479         * glib/dbus-gobject.c:
1480         Add some const keywords.
1481
1482 2005-10-25  Ross Burton  <ross@openedhand.com>
1483
1484         * doc/dbus-specification.xml:
1485         Document the NoReply annotation.
1486
1487         * glib/dbus-binding-tool-glib.h:
1488         * glib/dbus-binding-tool-glib.c:
1489         Respect the NoReply annotation.
1490
1491 2005-10-24  Robert McQueen <robot101@debian.org>
1492
1493         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1494         derive from unicode instead of str, and encode/decode UTF-8 when
1495         marshalling/unmarshalling bus messages
1496
1497         * python/introspect_parser.py: encode introspection data as UTF-8
1498         before passing the buffer into libxml2
1499
1500         * test/python/test-client.py: add unicode test strings
1501
1502         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1503         ignore generated python test files
1504
1505 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1506
1507         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1508         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1509         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1510
1511         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1512         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1513         when constructing struct signatures
1514
1515         * python/_dbus.py (Bus): handle private connections using the
1516         private keyword in the constructor. defaults to private=False
1517         (Bus::close): new method to close a connection to the bus
1518
1519         * python/dbus_bindings.pyx (Connection::close): renamed method
1520         was previously called disconnect
1521         (bus_get): now supports getting a private connection
1522
1523         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1524         keyword is set to True.  if it is, execute the method without waiting
1525         for a reply
1526         (ProxyObject::_introspect_execute_queue): new method for executing
1527         all the pending methods that were waiting for the introspect to
1528         finish.  this is called when introspect either succeeds or fails
1529         (ProxyObject::_introspect_error_handler): call queued methods
1530
1531 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1532
1533         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1534         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1535
1536         * python/service.py (Object::_message_cb): handle exceptions correctly
1537         by sending them over the wire to the calling app.  This makes sure
1538         the client returns immediately instead of waiting the 15 seconds to
1539         timeout.
1540
1541         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1542         Add a test to benchmark how long it takes to introspect a service and 
1543         call a method which returns a large element (pretty fast)
1544
1545         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1546         method which pushes a lot of data
1547
1548 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1549
1550         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1551         reclaim memory outside of the loop and use del istead of just setting
1552         the key to None
1553
1554 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1555
1556         * python/service.py (ObjectType::_reflect_on_signal): Always close
1557         signal tag even when there are no arguments
1558
1559 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1560
1561         * configure.in: Set mono, mono-docs and Qt3 to default
1562         to no instead of auto when building.  These bindings do not
1563         have full time maintainers and will not be supported for the
1564         1.0 release.
1565
1566 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1567
1568         patches from Michael Krivoruchko <misha at sun.com>: 
1569         
1570         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1571         _dbus_connection_message_sent, 
1572         _dbus_connection_send_preallocated_unlocked_no_update, 
1573         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1574         is NULL when calling _dbus_verbose
1575
1576         * configure.in: check for functions getpeerucred and getpeereid
1577
1578         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1579         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1580         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1581         Patch was only tested on Solaris 10 x86 so it might be issues
1582         with other platforms (i.e. BSDs and MacOSX)
1583         
1584
1585 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1586
1587         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1588         instead of marshal basic so we can handle recursive types in a variant
1589
1590         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1591         in variants
1592
1593         * test/glib/test-service-glib.c, test-service-glib.xml
1594         (my_object_echo_variant [EchoVariant], 
1595         my_object_process_variant_of_array_of_ints123
1596         [ProcessVariantOfArrayOfInts123]): 
1597         Add two test methods
1598
1599         * python/introspect_parser.py: New module for parsing introspect
1600         data.
1601
1602         * python/dbus_bindings.pyx:
1603         (various places): when throwing errors fix to use errormsg instead 
1604         of message local variable because Pyrex can get confused with other 
1605         message variables (initial patch by Robert McQueen 
1606         <robert.mcqueen at collabora.co.uk>)
1607         (MessageIter::parse_signature_block): new method for getting the next
1608         block in a signiture.
1609         (MessageIter::append_strict): new method for appending values strictly
1610         using the passed in signature instead of guessing at the type
1611         (MessageItter:: append_dict, append_struct, append_array): use 
1612         signatures to marshal children if the signature is available
1613         
1614         * python/exceptions.py (IntrospectionParserException): new exception
1615
1616         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1617         introspected signatures if available, else we fall back to the
1618         old way of doing things.
1619         (ProxyObject::_introspect_reply_handler ): parse introspection data
1620         
1621         * python/service.py (ObjectType::_reflect_on_method): Properly
1622         terminate <method> if there are no args in the reflection data
1623
1624         * test/python/test-client.py: add tests for talking with the GLib
1625         test server.  This gives us better coverage for introspection since
1626         python to python will always generate arguments as variants.  It also
1627         allows us to test the robustness of the GLib bindings and interlanguage
1628         communications.
1629
1630         
1631 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1632
1633         * bus/driver.c (bus_driver_handle_introspect): Add signals
1634         to the introspect data. (patch from Daniel P. Berrange 
1635         <dan at berrange.com>)
1636
1637         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1638         
1639         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1640         _dbus_connection_run_builtin_filters): Changed these to
1641         be unlock_no_update functions and call 
1642         _dbus_connection_send_unlocked_no_update instead of
1643         dbus_connection_send to avoid locking errors.
1644         
1645         * doc/TODO: Removed the make Ping test TODO
1646         
1647 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1648
1649         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1650         We now copy the message from a DBusError and then free 
1651         the error object befor throwing the error
1652
1653         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1654         DBusBindingOutputMode enum which was causing a warning.
1655         #include <time.h> so using time_t is explicitly defined
1656
1657 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1658
1659         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1660         - dbus/dbus-bus.c
1661         (internal_bus_get): new method that take over the heavy lifting
1662         of dbus_bus_get and adds the ability to get a private connection
1663         to the bus
1664         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1665         interface as in previous versions
1666         (dbus_bus_get_private): new method that is a wrapper to 
1667         internal_bus_get to get a private connection to the bus
1668
1669         - dbus/dbus-bus.h
1670         (dbus_bus_get_private): add as a public libdbus interface
1671
1672         - dbus-1.pc.in: output system_bus_default_address and 
1673         sysconfdir variables so apps can use them when compiling
1674
1675 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1676         * dbus/qt: New Qt bindings
1677
1678 2005-09-12  Waldo Bastian  <bastian@kde.org>
1679
1680         * dbus/dbus-marshal-validate.c,
1681         doc/dbus-specification.xml, test/Makefile.am,
1682         test/test-names.c: allow hyphens in bus names.
1683
1684 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1685
1686         * test/data/auth/fallback.auth-script: we don't
1687         retry the EXTERNAL method when we know its going
1688         to fail anymore.
1689
1690 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1691
1692         * dbus/dbus-connection-internal.h: rename
1693         (add|remove|toggle)_(watch|timeout) to unlocked()
1694         
1695         * dbus/dbus-connection.c: ditto.
1696         
1697         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1698         Update some callers for the renaming.
1699
1700 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1701
1702         * dbus/dbus-auth.c: (record_mechanisms): don't
1703         retry the first auth mechanism because we know
1704         we're just going to get rejected again.
1705         
1706         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1707         Fix thinko ... and what a nasty little bugger to
1708         track down you were ...
1709
1710         * dbus/dbus-connection.c:
1711         (_dbus_connection_add_watch),
1712         (_dbus_connection_remove_watch): add note about
1713         these needing the connection to be locked.
1714         (_dbus_connection_get_dispatch_status_unlocked):
1715         set status to DATA_REMAINS when we queue the
1716         disconnected message.
1717         
1718         * bus/dispatch.c:
1719         (bus_dispatch): fix warning.
1720         (check_existent_service_no_auto_start):
1721         Expect ChildSignaled error too.
1722         (check_existent_hello_from_self): fix another
1723         couple of warnings.
1724         
1725 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1726
1727         Patches from James Willcox <snorp@snorp.net>
1728
1729         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1730
1731         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1732         support array "out" parameters.
1733
1734         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1735         for 16-bit int support.
1736
1737 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1738
1739         * Released 0.50
1740
1741         * Patch from Steve Grubb:
1742         - bus/activation.c (bus_activation_service_reload_test): clean up
1743         some indentation
1744         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1745         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1746         buffer overflows in the test suite.  This is non critical because
1747         it can not be exploited and this code is only run when doing a 
1748         make check.
1749
1750         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1751         - configure.in: Don't check and link against kdecore, only qt headers
1752         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1753         - gcj/org/freedesktop/dbus/Makefile.am:
1754         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1755         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1756         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1757         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1758         - tools/Makefile.am: Add platform extentions to binaries 
1759         (i.e. .exe on windows)
1760
1761         * configure.in: 
1762         - Make it so if no suitable version of python is found we only 
1763         disable building python instead of exiting the configure script
1764         - Require version 2.4 of glib for glib bindings
1765         - Up version to 0.50
1766
1767         * python/__init__.py: Sync version with libdbus to (0,50,0)
1768         
1769 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1770
1771         * dbus/dbus-object-tree.c (find_subtree_recurse):
1772         a couple of optimizations (bug #710):
1773         - do a binary search in the tree
1774         - insert a new child at the right place directly, no need for
1775           qsort anymore
1776         - do the "double alloc" thing when allocating children
1777
1778 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1779
1780         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1781
1782         * python/dbus_bindings.pyx: Memory management foo
1783         (global): remove hacky _user_data_references global list
1784         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1785         tuples. Unref user_data
1786         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1787         (Connection::__del__): Remove and replace with __dealloc__ method
1788         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1789         to keep tuple from being deallocated instead of the global var hack
1790         (Connection::register_object_path): Stuff user_data into a tuple.
1791         Use Py_INCREF to keep tuple from being deallocated instead of the 
1792         global var hack
1793         (Connection::register_fallback): Stuff user_data into a tuple.
1794         Use Py_INCREF to keep tuple from being deallocated instead of the 
1795         global var hack
1796         (GIL_safe_pending_call_notification): Don't unref the message
1797         because it gets unreffed when going out of scope.  Py_XDECREF
1798         the user_data
1799         (PendingCall::__del__): Remove and replace with __dealloc__ method
1800         (PendingCall::set_notify): ref the pending call because we will
1801         need it to stick around for when the notify callback gets called
1802         (Message::__del__): Remove and replace with __dealloc__ method
1803
1804         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1805         gthreads_init to match up with the dbus call
1806
1807         * python/glib.py (init_threads): Changed to threads_init to match
1808         up with gobject.threads_init().  init_threads is kept for backwards
1809         compat but will most likely be deprecated in the future
1810
1811         * test/python/test-client.py: 
1812         - revamp to use Python's unittest functionality
1813         - add async call tests
1814         - setup threads in glib and dbus so we make sure locks are working
1815         
1816 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1817
1818         * python/dbus_bindings.pyx 
1819         (_pending_call_notification, cunregister_function_handler, 
1820         cmessage_function_handler): All callback functions have been rearranged 
1821         to workaround a bug in Pyrex when working with the GIL which is Python's 
1822         global lock when dealing with threads.  They have been split into
1823         a wrapper function (which assumes the name of the old function) and
1824         a _GIL_safe_<function name> function which contains the functionality
1825         of the old function.  This ensures that Pyrex does not write code
1826         the lock is released.
1827         
1828
1829 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1830
1831         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1832         GIL global lock when calling back into Python
1833
1834 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1835
1836         * Release 0.36.2
1837
1838         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1839
1840         * bus/policy.c (bus_policy_allow_user): change default "user is
1841         allowed" to be "user has same uid as the bus itself"; any
1842         allow/deny rules will override.
1843
1844         * bus/session.conf.in: don't allow all users, since now by default
1845         the user that ran the bus can connect.
1846
1847 2005-08-26  Colin Walters  <walters@verbum.org>
1848
1849         * tools/dbus-print-message.c (print_message): Flush stdout
1850         after printing a message, so that redirecting to a file, then
1851         hitting Ctrl-C works.
1852
1853 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1854
1855         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1856         (EmptyMessage): new class that subclasses Message.  This is a workaround
1857         to a Pyrex bug that fails to call __del__ when the Message object goes out
1858         of scope.  For some reason subclassing Message fixes this bug
1859         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1860         - s/Message(_create=0)/EmptyMessage everywhere else
1861         
1862         * test/python/test-{server|client}.py: add the python/.libs directory
1863         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1864         get picked up from the system
1865
1866 2005-08-25  Colin Walters  <walters@verbum.org>
1867
1868         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1869         to Ryan Lortie for the suggestion.
1870
1871 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1872
1873         * test/python: Add python regression test
1874
1875         * configure.in: Add test/python/Makefile
1876
1877         * test/Makefile.am: Add the python directory to SUBDIRS
1878
1879 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1880
1881         * Release 0.36.1
1882
1883         * python/_dbus.py: 
1884         (Interface::connect_to_signal): propigate keywords for match on args
1885         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1886
1887         * python/proxies.py (ProxyObject::connect_to_signal):
1888         propigate keywords for match on args
1889
1890         * Makefile.am: point everything to pyexecdir since python borks
1891         on multilib
1892
1893 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1894
1895         * Release 0.36
1896
1897 2005-08-23  Colin Walters  <walters@verbum.org>
1898
1899         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1900
1901 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1902
1903         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1904         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1905         of defining DBusConnection ourselves.
1906
1907 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1908
1909         * python/dbus.pth: New path file to fix up problems when installing
1910         c libraries to lib64 and python files to lib.
1911
1912         * python/Makefile.am: install dbus.pth in the correct spot
1913
1914 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1915         * ChangeLog: clean up my last entry a bit
1916
1917         * doc/introspect.xsl: New stylesheet for converting introspection data
1918         into browser renderable xhtml. Contributed by Lennart Poettering.
1919
1920         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1921         Poettering.
1922
1923         * doc/dbus-tutorial.xml: 
1924         - Add Colin Walter to the Authors section for authoring the GLib
1925         section
1926         - Add descriptions of the new signature and type functionality
1927         in the Python complex type mapping section
1928         - Add a sidenote on the new args matching functionality in 
1929         the Python bindings
1930         - Fixed up some of the examples to use the gobject.MainLoop
1931         instead of gtk.main
1932         
1933         * python/_dbus.py:
1934         (Bus::_create_args_dict): New. Converts a hash of arg matches
1935         to a more useable format
1936         (Bus::add_signal_receiver): add a **keywords parameter for catching
1937         arg match parameters
1938         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1939         arg match parameters
1940         
1941         * python/matchrules.py:
1942         (MatchTree::exec_matches): Check for arg matches
1943         (SignalMatchRule::add_args_match): New method
1944         (SignalMatchRule::execute): Added args_list parameter as an optimization
1945         so we don't have to marshal the args more than once
1946         (SignalMatchRule::match_args_from_list): New method that checks to see
1947         if the rule's arg matches match an argument list.  Only arguments
1948         set in the rule are checked.
1949         (SignalMatchRule::match_args_from_rule): New method that checks to see
1950         if the rule's arg matches match another rule's.  All args have to match
1951         in order for this method to return true.  If either rule has more args
1952         then it is not a match.
1953         (SignalMatchRule::is_match): Add args match
1954         (SignalMatchRule::repr): Add args to the final output if they exist
1955
1956 2005-08-17  Ross Burton  <ross@burtonini.com>
1957
1958         * glib/dbus-gproxy.c:
1959         (dbus_g_proxy_call_no_reply): unref the message once sent.
1960         (dbus_g_proxy_call): protect against NULL proxy.
1961
1962 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1963
1964         * python/__init__.py: Version updated (0, 43, 0)
1965         
1966         * python/dbus_bindings.pyx: 
1967         - Fixed type objects to have self passed into __init__
1968         - Added the Variant type
1969         - Add the ability to specify types or signatures for Array, Variant 
1970         and Dictionary
1971         (Connection::send_with_reply_handlers): return a PendingCall object
1972         (_pending_call_notification): handle the case when an error is returned 
1973         without an error message in the body
1974         (MessageIter::get_boolean): return True or False instead of an integer
1975         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1976         and add checks for objects with embeded signatures or types (Array, 
1977         Variant and Dictionary)
1978         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1979         (MessageIter::append_dict): handle embeded types or signatures
1980         (MessageIter::append_array): handle embeded types or signatures
1981         (MessageIter::append_variant): new method
1982         
1983         * python/proxies.py:
1984         (DeferedMethod): New. Dummy executable object used when queuing calls 
1985         blocking on introspection data
1986         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1987         or shorter timeouts for method calls
1988         (ProxyObject): Add first pass at an introspection state machine
1989         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1990         introspection. 
1991         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1992         the usual mechanisms for sending messages.  This is to avoid a deadlock
1993         where the Intospect call would be queued waiting for the Introspect 
1994         call to finish ;-)
1995         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1996         when introspection returns with no error
1997         (ProxyObject::_introspect_error_handler): New.  This method is called 
1998         when introspection encounters an error
1999         (ProxyObject::__getattr__): Code to handle different introspection 
2000         states.  Queue async calls or block blocking calls if we are 
2001         introspecting.  Pass through as normal if we are not or are done with 
2002         introspecting.
2003         
2004         * python/service.py: Import signal and method from decorators.py
2005
2006         * python/types.py: Add Variant type
2007
2008 2005-08-16  Colin Walters  <walters@verbum.org>
2009
2010         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2011         DBusError message is NULL.
2012
2013 2005-08-09  Havoc Pennington  <hp@redhat.com>
2014
2015         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2016         malloc'd copy of the name parameter
2017
2018 2005-08-09  Havoc Pennington  <hp@redhat.com>
2019
2020         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2021         warning if the reply serial is set to 0
2022
2023 2005-08-04  Colin Walters  <walters@verbum.org>
2024
2025         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2026         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2027         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2028         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2029         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2030         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2031         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2032         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2033         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2034         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2035         
2036         Prefix name with _ to ensure they're not exported.  All callers
2037         updated.
2038
2039         * glib/dbus-gvalue.c (typecode_to_gtype)
2040         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2041         (signature_iter_to_g_type_dict)
2042         (signature_iter_to_g_type_array)
2043         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2044         (dbus_gtypes_from_arg_signature):
2045         Move to dbus-gsignature.c.
2046
2047         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2048         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2049         (dbus_binding_tool_output_glib_client): Ditto.
2050
2051         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2052         and dbus-gsignature.h
2053
2054         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2055         unused variable.
2056
2057 2005-08-03  Colin Walters  <walters@verbum.org>
2058
2059         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2060         catch any incompatible changes accidentally made.
2061
2062 2005-08-03  Havoc Pennington  <hp@redhat.com>
2063
2064         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2065         typo, from Julien Puydt
2066
2067         * bus/connection.c (bus_connection_disconnected): we were always
2068         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2069
2070 2005-08-01  Colin Walters  <walters@verbum.org>
2071
2072         Patch from Joe Markus Clarke:   
2073         
2074         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2075         use-after-free.
2076
2077 2005-08-01  Colin Walters  <walters@verbum.org>
2078         
2079         Patch from Joe Markus Clarke:   
2080         
2081         * tools/dbus-send.c (main): 
2082         
2083         Don't use C99 style initializers (bug #3933).
2084         
2085 2005-08-01  Colin Walters  <walters@verbum.org>
2086
2087         Patch from Joe Markus Clarke:   
2088
2089         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2090         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2091         * glib/dbus-gobject.c (write_interface):
2092
2093         Don't use C99 style initializers (bug #3933).
2094
2095 2005-07-31  Havoc Pennington  <hp@redhat.com>
2096
2097         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2098         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2099
2100 2005-07-30  Havoc Pennington  <hp@redhat.com>
2101
2102         * fix a bunch of Doxygen warnings and mistakes
2103
2104 2005-07-30  Havoc Pennington  <hp@redhat.com>
2105
2106         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2107         DBUS_BUILD_TESTS since it's now used in production code
2108
2109 2005-07-29  Havoc Pennington  <hp@redhat.com>
2110
2111         * test/glib/test-profile.c (write_junk): initialize the junk
2112         buffer so valgrind doesn't have a breakdown
2113
2114 2005-07-29  Havoc Pennington  <hp@redhat.com>
2115
2116         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2117         (match_rule_matches): remove unused arg
2118         (test_matching): add tests for match_rule_matches()
2119
2120         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2121         do arg0='foo' arg5='bar' in the match rules
2122         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2123
2124         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2125
2126 2005-07-29  Ross Burton  <ross@openedhand.com>
2127
2128         * dbus/dbus-connection.c:
2129         Don't create a DBusCondVar which is never used.
2130
2131 2005-07-27  Ross Burton  <ross@openedhand.com>
2132
2133         * dbus/dbus-message.c:
2134         Reduce the size of the maximum cached message to 10K.
2135
2136 2005-07-25  Ross Burton  <ross@openedhand.com>
2137
2138         * glib/dbus-gproxy.c:
2139         Remove matches when all proxies are unregistered.
2140
2141 2005-07-24  Colin Walters  <walters@verbum.org>
2142
2143         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2144         typedata; recursive arrays won't have it.
2145
2146         * test/glib/test-dbus-glib.c:
2147         * test/glib/test-service-glib.c:
2148         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2149         
2150 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2151
2152         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2153         proxies.py, service.py: Cleanup of code after running it through the
2154         pyflakes code checker mostly dealing with undefined names.  
2155         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2156
2157 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2158
2159         * NEWS: Update to 0.35.2
2160
2161 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2162
2163         * python/_dbus.py: Remove import of the dbus.services
2164         module as it no longer exists (patch from Dimitur Kirov)
2165
2166         * python/service.py (Object::__init__): Fixed typo
2167         s/name/bus_name (patch from Dimitur Kirov)
2168
2169         * python/examples/example-signal-emitter.py: import dbus.glib
2170         to get the main loop and use glib mainloop instead of gtk so
2171         X doesn't have to be running.
2172
2173         * python/examples/example-signal-recipient.py: import dbus.glib
2174         to get the main loop and use glib mainloop instead of gtk so
2175         X doesn't have to be running. Import the decorators module
2176         directly.
2177
2178         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2179         didn't pick up on but are needed to build
2180
2181         * configure.in: upped version to 0.35.2
2182
2183         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2184         added Colin Walters' SELinux API rename patch from head 
2185         s/unix sercurity context/selinux security context/
2186
2187 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2188
2189         * python/Makefile.am: dbus_binding.pxd.in should be included 
2190         in EXTRA_DIST not dbus_binding.pxd
2191         fix up $(srcdir) hopefully for the last time
2192
2193         * NEWS: Update to 0.35.1
2194
2195 2005-07-16  Colin Walters  <walters@verbum.org>
2196
2197         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2198         from bus_driver_handle_get_connection_unix_security_context.  Update for
2199         error usage.
2200         (message_handlers): Update for renames.
2201
2202         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2203         _dbus_string_init failure correctly.
2204         (bus_selinux_append_context): Convert SID to context.  Append it
2205         as a byte array.
2206         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2207         hasn't been called.
2208
2209         * bus/selinux.h: Update prototype.
2210
2211         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2212         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2213
2214 2005-07-15  Colin Walters  <walters@verbum.org>
2215
2216         * doc/TODO: Add note about convenience wrappers.
2217
2218 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2219
2220         * NEWS: Update to 0.35
2221
2222 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2223
2224         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2225         so distcheck doesn't fail
2226
2227         * glib/examples/Makefile.am: Add example-service.xml and 
2228         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2229
2230         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2231         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2232
2233         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2234         compiler looks in the right places during distcheck
2235
2236 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2237
2238         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2239         to fail
2240
2241 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2242
2243         * python/examples/example-service.py,
2244         python/examples/example-signal-emitter.py: Fixed up examples
2245         for API changes
2246
2247 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2248
2249         * python/__init__.py: Upped to version (0,42,0) because of
2250         the API change
2251
2252 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2253
2254         * ChangeLog: fix date in last entry
2255
2256         * configure.in, bus/system.conf.in: add the ability to configure 
2257         the system bus user at compiletime with the --with-dbus-user flag
2258         (patch from Kristof Vansant)
2259
2260 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2261
2262         * bus/dispatch.c, test/test-service.c: Add testcase
2263         for sending messages to oneself (TODO item).
2264
2265         * python/service.py (class Object): Swap ordering of bus_name 
2266         and object_path parameters to better support inheritance.
2267
2268         * doc/dbus-tutorial.xml: change Python docs to reflect change
2269         in parameter ordering and fix the inheritance section.
2270
2271         * doc/TODO: remove sending message to oneself TODO item
2272
2273 2005-07-15  Ross Burton  <ross@openedhand.com>
2274
2275         * glib/dbus-gproxy.c:
2276         Fix a leak when calling methods via the proxy.
2277
2278 2005-07-15  Colin Walters  <walters@verbum.org>
2279
2280         * bus/selinux.c (bus_selinux_append_context): Wrap in
2281         HAVE_SELINUX.
2282
2283 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2284
2285         * python/_dbus.py (Bus::remove_signal_receiver):
2286         don't add a callback to the match if none has been passed in
2287         
2288         * python/matchrules.py (SignalMatchTree::remove): if the rule
2289         being matched does not have a callback treat it as a wildcard
2290         fix matching logic
2291
2292         * doc/dbus-tutorial.xml: Add Python tutorial
2293
2294 2005-07-14  Colin Walters  <walters@verbum.org>
2295
2296         * bus/driver.c
2297         (bus_driver_handle_get_connection_unix_security_context): New function.
2298         (message_handlers): Add.
2299
2300         * bus/selinux.c (bus_selinux_append_context): New function; appends
2301         security context to message.
2302
2303         * bus/selinux.h: Prototype.
2304
2305         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2306
2307 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2308
2309         * bus/activation.c: clean up all tabs to be 8 spaces 
2310         (bus_activation_activate_service): make sure we clean up
2311         if activation fails
2312
2313         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2314         (check_shell_fail_service_auto_start): New function
2315         tests to make sure we get fail properly when trying to auto start a service
2316         with a faulty command line
2317         (check_shell_service_success_auto_start): New function tests to make sure
2318         auto started services get the arguments on the command line
2319
2320         * test/test-shell-service.c: Added service for testing auto-starting with 
2321         command line arguments
2322
2323         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2324         test/data/valid-service-files/debug-shell-echo-success.service.in:
2325         Added service files for testing auto-starting with command line arguments
2326
2327         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2328
2329 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2330
2331         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2332         
2333         * dbus/Makefile.am: added new files to build.
2334
2335         * bus/activation.c (bus_activation_activate_service): support
2336         activation commands with parameters.
2337
2338         * test/shell-test.c: added test program for the shell parsing
2339         code.
2340
2341 2005-07-13  David Zeuthen  <davidz@redhat.com>
2342
2343         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2344         64 bit signed and unsigned parameters
2345
2346 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2347
2348         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2349
2350         * python/service.py (class Name): renamed BusName to make it clearer
2351         what the object is for (a name on the bus)
2352
2353         * python/examples/example-service.py,
2354         python/examples/example-signal-emitter.py: change the Name object to
2355         BusName
2356
2357 2005-07-12  Colin Walters  <walters@verbum.org>
2358
2359         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2360
2361         * tools/dbus-launch.c: Include sys/select.h.
2362
2363 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2364         * python/dbus_bindings.pyx.in: removed
2365
2366         * python/dbus_bindings.pyx: Added.
2367         - Fixed some memleaks (patch from 
2368         Sean Meiners <sean.meiners@linspireinc.com>)
2369         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2370         own pxd file (Pyrex definition)
2371         - Broke out glib dependancies into its own pyx module
2372         
2373         * python/dbus_bindings.pdx: Added.
2374         - Defines C class Connection for exporting to other modules
2375
2376         * python/dbus_glib_bindings.pyx: Added.
2377         - New module to handle lowlevel dbus-glib mainloop integration
2378
2379         * python/glib.py: Added.
2380         - Registers the glib mainloop when you import this module
2381
2382         * python/services.py: Removed (renamed to service.py)
2383         
2384         * python/service.py: Added.
2385         - (class Server): renamed Name
2386
2387         * python/__init__.py: Bump ro version (0,41,0)
2388         -don't import the decorators or service module
2389         by default.  These now reside in the dbus.service namespace
2390
2391         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2392         setup function on creation 
2393
2394         * python/examples/example-service.py,
2395         python/examples/example-signal-emitter.py: update examples
2396
2397         * python/examples/gconf-proxy-service.py,
2398         python/examples/gconf-proxy-service2.py: TODO fix these up
2399
2400         * doc/TODO: Addition
2401         - Added a Python Bindings 1.0 section
2402         - added "Add match on args or match on details to match rules"
2403
2404
2405 2005-07-12  Colin Walters  <walters@verbum.org>
2406
2407         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2408         (statemachine-glue.h): 
2409         * glib/examples/Makefile.am (example-service-glue.h) 
2410         (example-signal-emitter-glue.h): 
2411         * glib/Makefile.am (dbus-glib-error-switch.h): 
2412         Add libtool --mode=execute so we use the built library instead
2413         of any installed one.
2414
2415 2005-07-11  Colin Walters  <walters@verbum.org>
2416
2417         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2418         (dbus_g_value_types_init): Remove assertion.
2419         (dbus_g_value_get_g_type, dbus_g_value_open)
2420         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2421         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2422         functions related to DBusGValue.  Now we marshal/demarshal
2423         structures as GValueArray.
2424         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2425         structures.
2426         (signature_iter_to_g_type_array): Don't call
2427         signature_iter_to_g_type_struct.
2428         (signature_iter_to_g_type_struct): Delete.
2429         (dbus_gvalue_to_signature): Delete.
2430         (dbus_gvalue_to_signature): New function with same name as other
2431         one; we can convert structures to signatures.
2432         (demarshal_valuearray): New function.
2433         (get_type_demarshaller): Use it.
2434         (demarshal_recurse): Delete.
2435         (marshal_proxy): New function.
2436         (marshal_map): Warn if we can't determine signature from type.
2437         (marshal_collection_ptrarray): Ditto.
2438         (marshal_collection_array): Ditto.
2439         (get_type_marshaller): Use marshal_valuearray.
2440         (marshal_recurse): Delete.
2441         (_dbus_gvalue_test): Add some tests.
2442
2443         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2444         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2445         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2446         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2447         (dbus_g_value_free): Remove prototypes.
2448
2449         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2450         G_TYPE_VALUE_ARRAY.
2451
2452         * glib/examples/example-service.c:
2453         * glib/examples/example-client.c: Implement GetTuple.
2454
2455         * test/glib/test-dbus-glib.c:
2456         * test/glib/test-service-glib.c:
2457         * test/glib/test-service-glib.xml: Add structure tests.
2458
2459 2005-07-10  Colin Walters  <walters@verbum.org>
2460
2461         * doc/TODO: Knock off some GLib items with this patch.
2462
2463         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2464         (_dbus_gvalue_signals_error): New functions.
2465
2466         * glib/dbus-gvalue-utils.h: Prototype them.
2467
2468         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2469         and change to not output const/retval flags for input args.  All
2470         callers updated.
2471         (invoke_object_method): Refactor to handle return values.  Add
2472         some more comments in various places.  Remove debug g_print.
2473
2474         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2475
2476         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2477         Handle G_TYPE_NONE.
2478         (compute_gsignature): New function; refactored from code from
2479         compute_marshaller and compute_marshaller_name.  Enhance to
2480         handle return values and async ops more cleanly.  Update for
2481         async ops returning NONE instead of BOOLEAN.
2482         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2483         and output appropriate string.
2484         (generate_glue): Handle return value annotation.  Also don't dump
2485         constness flag for input arguments.
2486
2487         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2488         files shared between installed library and utilities.
2489         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2490         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2491         binding tool can access gtype utility functions.
2492
2493         * test/glib/test-service-glib.c: 
2494         * test/glib/test-service-glib.xml: 
2495         * test/glib/test-dbus-glib.c: Add some tests for return values.
2496
2497 2005-07-09  Colin Walters  <walters@verbum.org>
2498
2499         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2500         argument if available, not method.
2501
2502         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2503         (invoke_object_method): First, remove some redundant
2504         GValues (object_value, error_value) in favor of working on
2505         array directly.  Second, rework constness to be less buggy.
2506         Now we iterate directly over the argument metadata instead
2507         of parallel iterating over output signature and metadata.
2508
2509         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2510
2511         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2512         annotation on input args.
2513         
2514 2005-07-09  Colin Walters  <walters@verbum.org>
2515
2516         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2517         Define.
2518
2519         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2520         annotation.
2521
2522         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2523         (method_dir_signature_from_object_info): Handle arg_iterate change.
2524         (write_interface): Ditto.
2525         (lookup_object_info): Don't barf if format_version is > 0.
2526         (invoke_object_method): Handle arg constness.
2527
2528         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2529         (arg_info_new): Create.
2530         (arg_info_unref): Destroy.
2531         (arg_info_get_annotations, arg_info_get_annotation) 
2532         (arg_info_add_annotation): New functions.
2533
2534         * glib/dbus-gidl.h: Prototype them.
2535
2536         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2537         args, disallow them in properties.
2538         (parse_annotation): Handle arg annotations.
2539
2540         * test/glib/test-service-glib.xml: 
2541         * test/glib/test-service-glib.c: Update to make some methods
2542         const.
2543
2544 2005-07-08  Colin Walters  <walters@verbum.org>
2545
2546         * test/glib/test-service-glib.xml: 
2547         * test/glib/test-service-glib.c:
2548         * test/glib/test-dbus-glib.c: Test a{sv}.
2549
2550         * glib/examples/statemachine/statemachine.c:
2551         * glib/examples/statemachine/statemachine-server.c:
2552         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2553         add progress bar, etc.
2554
2555         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2556         needed anymore due to generic array/map marshalling.
2557         (dbus_g_value_types_init): Don't register basic arrays or the
2558         string/string hash.
2559         (dbus_gtype_from_signature_iter): Don't try to recurse into
2560         variants.
2561         (dbus_gtype_to_signature): Check collection/map before type
2562         metadata.
2563         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2564         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2565         generic map creation/append functions instead of hash table
2566         specifically.
2567         (get_type_demarshaller): Handle maps.
2568         (demarshal_collection): Dispatch on collection type to either
2569         demarshal_collection_ptrarray or demarshal_collection_array.
2570         (get_type_marshaller): Handle maps.
2571         (marshal_collection): Dispatch collection type to either
2572         marshal_collection_ptrarray or marshal_collection_array.
2573         (_dbus_gvalue_test): New test.
2574
2575         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2576         (hash_free_from_gtype): Use it to free GValues.
2577         (hashtable_append): New function.
2578         (ptrarray_append): Fix prototype.
2579         (slist_append): Ditto.
2580         (_dbus_gvalue_utils_test): Extend tests.
2581
2582         * glib/dbus-gtype-specialized.c
2583         (dbus_g_type_specialized_init_append): Renamed from
2584         dbus_g_type_specialized_collection_init_append.  Remove const from
2585         value, since we steal it.
2586         (dbus_g_type_specialized_map_append): New function.
2587
2588         * glib/dbus-gtype-specialized.h: Update prototypes.
2589         Add DBusGTypeSpecializedMapAppendFunc.
2590
2591         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2592         _dbus_gvalue_test.
2593         
2594         * glib/dbus-gtest.h: Prototype it.
2595
2596 2005-07-08  Ross Burton  <ross@openedhand.com>
2597
2598         * dbus/dbus-glib.h:
2599         Add DBysGAsyncData for the async bindings.
2600
2601         * glib/dbus-binding-tool-glib.c:
2602         Re-enable the async bindings.
2603
2604         * test/glib/test-dbus-glib.c:
2605         Add a test for the generated async bindings.
2606
2607 2005-07-08  Colin Walters  <walters@verbum.org>
2608
2609         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2610         connection concept.
2611         
2612 2005-07-08  Colin Walters  <walters@verbum.org>
2613         
2614         * tools/Makefile.am: Kill of print-introspect in favor of using
2615         dbus-send --print-reply=literal.
2616
2617         * test/glib/test-service-glib.xml: 
2618         * test/glib/test-service-glib.c (my_object_get_objs): New test
2619         for "ao".
2620
2621         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2622         (main): Test GetObjs.
2623
2624         * glib/examples/statemachine/Makefile.am:
2625         * glib/examples/statemachine/sm-marshal.list:
2626         * glib/examples/statemachine/statemachine-client.c:
2627         * glib/examples/statemachine/statemachine-server.c:
2628         * glib/examples/statemachine/statemachine-server.xml:
2629         * glib/examples/statemachine/statemachine.c:
2630         * glib/examples/statemachine/statemachine.h:
2631         * glib/examples/statemachine/statemachine.xml:
2632
2633         New example.
2634
2635         * glib/examples/example-service.c (main): Move invocation
2636         of dbus_g_object_type_install_info earlier, to emphasize it
2637         should only be done once.
2638
2639         * glib/examples/example-signal-emitter.c (main): Ditto.
2640
2641         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2642
2643         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2644         (dbus_gvalue_marshal): Update prototypes.
2645
2646         * glib/dbus-gvalue.c: Update all marshalling functions to take
2647         const GValue instead of GValue.
2648         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2649         types.
2650         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2651         change.
2652         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2653         Return a newly-allocated string.
2654         (demarshal_proxy, demarshal_object_path, demarshal_object)
2655         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2656         we get the wrong types from message.
2657         (get_type_demarshaller): New function, extracted from
2658         dbus_gvalue_demarshal.
2659         (demarshal_collection): New function, demarshals generic
2660         collection.
2661         (dbus_gvalue_demarshal): Just invoke result of
2662         get_type_demarshaller.  Throw error if we don't have one.
2663         (marshal_garray_basic): Abort on OOM.
2664         (get_type_marshaller): New function, extracted from
2665         dbus_gvalue_marshal.
2666         (collection_marshal_iterator, marshal_collection): New functions;
2667         implements generic marshalling for an iteratable specialized
2668         collection.
2669         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2670
2671         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2672         G_TYPE_STRING.
2673         (ptrarray_value_from_gvalue): Ditto.
2674         (ptrarray_append, ptrarray_free): New functions.
2675         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2676         (slist_append, slist_end_append, slist_free): New functions.
2677         (dbus_g_type_specialized_builtins_init): Add append fuctions
2678         for GPtrArray and GSList.  Register GSList.
2679         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2680
2681         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2682         New.
2683         (dbus_g_type_specialized_collection_init_append)
2684         (dbus_g_type_specialized_collection_append)
2685         (dbus_g_type_specialized_collection_end_append): Prototype.
2686         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2687         end_append_func.
2688
2689         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2690         (dbus_g_type_specialized_collection_append) 
2691         (dbus_g_type_specialized_collection_end_append): New functions.
2692         (dbus_g_type_map_value_iterate): Take const GValue.
2693         (dbus_g_type_collection_value_iterate): Ditto.
2694
2695         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2696         _dbus_gvalue_utils_test.
2697         
2698         * glib/dbus-gtest.h: Prototype it.
2699
2700         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2701         using uninitialized owner_list.
2702         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2703         public API.
2704         (dbus_g_proxy_end_call_internal): Update to use error set
2705         from dbus_gvalue_demarshal instead of setting it here.
2706         (dbus_g_proxy_begin_call): Move return_if_fail here.
2707
2708         * glib/dbus-gobject.c (write_interface): Update for
2709         dbus_gtype_to_signature returning new string.
2710
2711         * configure.in: Add glib/examples/statemachine.
2712
2713 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2714
2715         * configure.in: Add a configure option, --with-console-auth-dir
2716         
2717         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2718         new setting.  Patch from Kay Sievers.
2719
2720 2005-07-06  Colin Walters  <walters@verbum.org>
2721
2722         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2723         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2724         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2725         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2726         Delete in favor of dbus_g_proxy_begin_call and
2727         dbus_g_proxy_cancel_call.
2728         (DBusGProxyCall, DBusGProxyCallNotify): New.
2729         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2730         data, and destroy function.  This replaces
2731         dbus_g_pending_call_set_notify.
2732         (dbus_g_proxy_cancel_call): Prototype.
2733         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2734
2735         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2736         pending_calls map.
2737         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2738         internal proxy for calls to the bus. Remove
2739         pending_nameowner_calls, now the internal proxy keeps track.
2740         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2741         pending_nameowner_calls.
2742         (got_name_owner_cb): Update prototype, and use
2743         dbus_g_proxy_end_call.
2744         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2745         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2746         favor of using internal proxy.
2747         (dbus_g_proxy_manager_unregister): Update to use
2748         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2749         (dbus_g_proxy_init): Initialize pending calls map.
2750         (dbus_g_proxy_constructor): New.
2751         (dbus_g_proxy_class_init): Add get/set property functions,
2752         constructor, and add NAME, PATH, and INTERFACE properties.
2753         (cancel_pending_call): New function.
2754         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2755         cancel them.
2756         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2757         (GPendingNotifyClosure): New structure.
2758         (d_pending_call_notify, d_pending_call_free): Moved here from
2759         dbus-glib.c.
2760         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2761         ordering.
2762         (manager_begin_bus_call): New internal function for talking to
2763         internal bus proxy.
2764         (dbus_g_proxy_new): Construct object using GObjet properties.
2765         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2766         Create closure of same, and insert call into map of pending calls.
2767         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2768         call.  Look up pending call in current set.  Remove it when we've
2769         completed.
2770         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2771         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2772         and destroy function directly.
2773         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2774         (dbus_g_proxy_call): Invoke with NULL callback.
2775         (dbus_g_proxy_cancel_call): New function, replaces
2776         dbus_g_pending_call_cancel.
2777
2778         * glib/dbus-gparser.c (validate_signature): Fix call to
2779         dbus_set_g_error.
2780
2781         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2782         New quark for attaching metadata to GType.
2783         (info_hash): Delete.
2784         (lookup_object_info): Look up using quark.
2785         (dbus_g_object_type_install_info): Check that a type is classed,
2786         not that it's an object.  Also just install type data using quark
2787         instead of using global hash.
2788
2789         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2790         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2791         (GPendingNotifyClosure): Delete.
2792         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2793         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2794
2795         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2796         client method generation until we can fix it...
2797         
2798         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2799         (load_from_service_thread_func): Ditto.
2800
2801         * tools/dbus-names-model.c (struct NamesModel): Hold
2802         DBusGProxyCall.
2803         (have_names_notify): Update prototype, use
2804         dbus_g_proxy_cancel_call.
2805         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2806
2807         * tools/dbus-monitor.c (filter_func): Update for print_message
2808         API change.
2809
2810         * test/glib/test-dbus-glib.c: Add more tests for async
2811         invocations.  Update many begin_call/end_call pairs to just use
2812         dbus_g_proxy_call.
2813
2814         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2815         allows us to dump print-introspect.c.
2816
2817         * tools/dbus-print-message.h (print_message): Add literal argument
2818         to print_message which is intended to allow printing arguments without
2819         metadata like "string=".
2820
2821         * tools/dbus-print-message.c (print_iter): Add literal argument.
2822         (print_message): Allow printing string messages literally.
2823
2824 2005-07-05  Colin Walters  <walters@verbum.org>
2825
2826         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2827         Remove value refcount leak, original patch from Jorn Baayen
2828         <jorn@openedhand.com>.  Also remove useless extra value in favor
2829         of prepending to value array directly.
2830
2831 2005-07-02  Colin Walters  <walters@verbum.org>
2832
2833         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2834
2835 2005-07-01  Colin Walters  <walters@verbum.org>
2836
2837         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2838         
2839         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2840         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2841         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2842         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2843
2844 2005-06-30  Colin Walters  <walters@verbum.org>
2845
2846         * test/glib/test-dbus-glib.c:
2847         * test/glib/test-service-glib.c:
2848         * test/glib/test-service-glib.xml: Update tests for new error
2849         setting bits, also add async tests (patch from Ross Burton).
2850
2851         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2852         DBUS_GLIB_THREADS_LIBS.
2853
2854         * glib/dbus-gproxy.c (get_name_owner)
2855         (dbus_g_pending_call_end_valist): Ditto.
2856
2857         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2858         domain (GQuark) to DBusGErrorInfo.  
2859         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2860         quark in error_metadata.  Take message interface as default
2861         error message interface.
2862         (gerror_to_dbus_error_message): Pass message interface.
2863         (dbus_set_g_error): Resurrected.
2864         (dbus_g_error_info_free): New function.
2865         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2866         of _peek to actually create the object class if it hasn't been
2867         created yet.
2868         (dbus_g_error_domain_register): New function.
2869
2870         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2871
2872         * glib/dbus-gparser.c (validate_signature): Ditto.
2873
2874         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2875         (dbus_g_error_domain_register): Prototype.
2876
2877         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2878         Update tests.
2879
2880 2005-06-29  Colin Walters  <walters@verbum.org>
2881
2882         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2883         DBUS_TYPE_G_OBJECT_PATH.
2884
2885         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2886         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2887         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2888         (dbus_g_object_path_get_g_type): New function.
2889         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2890         to DBUS_TYPE_G_OBJECT_PATH by default.
2891         (demarshal_proxy): Remove unused name variable.
2892         (demarshal_object_path, marshal_object_path): New functions.
2893         (demarshal_proxy_array, marshal_proxy_array): Delete.
2894         
2895         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2896         DBUS_TYPE_G_OBJECT_PATH to char *.
2897         (dbus_g_type_get_lookup_function): Map builtin
2898         DBUS_TYPE_G_OBJECT_PATH.
2899
2900         * test/glib/test-dbus-glib.c
2901         * test/glib/test-service-glib.c (my_object_objpath): 
2902         Adapt tests to new object path marshalling.
2903
2904 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2905
2906         * configure.in: force check for Python >= 2.4
2907
2908 2005-06-29  Colin Walters  <walters@verbum.org>
2909         
2910         Patch from Ross Burton <ross@openedhand.com>
2911         
2912         * glib/dbus-gobject.c (invoke_object_method): Unset object
2913         value in all cases, not only in async case.
2914
2915 2005-06-29  Colin Walters  <walters@verbum.org>
2916
2917         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2918         name_call for keeping track of any outgoing GetNameOwner call.
2919         Also add for_owner and associated.
2920         (struct _DBusGProxyManager): Add owner_names, which is hash table
2921         that maps a base name to a list of names it owns (that we're
2922         interested in).  Add pending_nameowner_calls which is a list of
2923         all outstanding GetNameOwner; avoids us having to iterate over
2924         every proxy.  Add unassociated_proxies which keeps track of name
2925         proxies with no associated name owner.
2926         (dbus_g_proxy_manager_unref): Destroy owner_names.
2927         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2928         name refcounts.
2929         (find_name_in_info, name_owner_foreach)
2930         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2931         (dbus_g_proxy_manager_monitor_name_owner)
2932         (dbus_g_proxy_manager_unmonitor_name_owner)
2933         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2934         New functions; they manipulate the owner_names mapping.
2935         (got_name_owner_cb): New function.
2936         (get_name_owner): New function, extracted from
2937         dbus_g_proxy_new_for_name_owner.
2938         (dbus_g_proxy_manager_register): For now we need to keep track of
2939         all NameOwnerChanged.  Also if the proxy is for a name, if we
2940         don't already know the name owner, queue a new GetNameOwner
2941         request and add it to our list of unassociated proxies.  Otherwise
2942         inc the refcount.
2943         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2944         cancel any pending GetNameOwner call, etc.
2945         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2946         the owner_names mapping to look up the current names for the
2947         signal source, and dispatch to any proxies for that name.
2948         (dbus_g_proxy_new): Initialize new members.
2949         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2950         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2951         (dbus_g_pending_call_end_valist): New function, extracted from
2952         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2953         but want to use the GLib infrastructure.  Also note how many
2954         arguments in reply were over.
2955         (dbus_g_pending_call_end): New function, just call
2956         dbus_g_pending_call_end_valist.
2957         (dbus_g_proxy_end_call_internal): Just call
2958         dbus_g_pending_call_end_valist.
2959
2960         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2961         of builtin marshaller for STRING_STRING_STRING.
2962
2963         * test/glib/test-dbus-glib.c: 
2964         * test/glib/test-service-glib.c:
2965         * test/glib/test-service-glib.xml:
2966         Extend tests to cover name proxies, destruction of owner proxies,
2967         etc.
2968         
2969         * glib/examples/example-signal-recipient.c
2970         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2971         
2972         * tools/dbus-send.c (main): Print D-BUS error name in addition
2973         to message.
2974
2975 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2976
2977         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2978         cmessage_function_handler): Patch from 
2979         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2980         by using the Py_GILState_Ensure/Release to synchronize with the
2981         python runtime.
2982         
2983 2005-06-28  Ray Strode  <rstrode@redhat.com>
2984
2985         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2986         babysitter helper process on last unref, bug #2813.
2987
2988 2005-06-27  Colin Walters  <walters@verbum.org>
2989
2990         * test/glib/test-dbus-glib.c: 
2991         * test/glib/test-service-glib.c:
2992         * test/glib/test-service-glib.xml:
2993         Test hash table signal emitting.
2994
2995         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2996         types to their fundamental basis types, since this is what
2997         marshallers operate on.  Also add an entry for VOID__BOXED.
2998         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2999
3000 2005-06-26  Havoc Pennington  <hp@redhat.com>
3001
3002         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3003         from Don Park
3004
3005 2005-06-26  Colin Walters  <walters@verbum.org>
3006
3007         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3008         (dbus_g_error_set): New public function from its ashes; used by
3009         both service-side method implementation and GLib bindings
3010         internals.
3011         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3012         (_dbus_glib_test): Add some tests.
3013
3014         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3015
3016         * test/glib/test-service-glib.c (my_object_throw_error): Use
3017         dbus_g_error_set.
3018
3019         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3020         errors thrown by dbus_g_error_set.
3021
3022         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3023
3024         * glib/dbus-gparser.c (validate_signature): Ditto.
3025
3026         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3027         (dbus_g_proxy_end_call_internal): Ditto.
3028
3029         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3030         converts DBUS_ERROR_x to DBUS_GERROR_x.
3031         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3032
3033         * doc/TODO: Remove error TODO.
3034
3035         * doc/dbus-tutorial.xml: Update with documentation about error
3036         handling.
3037
3038         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3039         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3040         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3041
3042 2005-06-22  Colin Walters  <walters@verbum.org>
3043         
3044         Patch from Ross Burton <ross@openedhand.com>
3045
3046         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3047
3048 2005-06-20  Colin Walters  <walters@verbum.org>
3049
3050         * configure.in: Add glib/examples.
3051
3052         * glib/Makefile.am: Add examples/
3053
3054         * glib/examples/.cvsignore
3055         * glib/examples/Makefile.am
3056         * glib/examples/example-client.c
3057         * glib/examples/example-service.c
3058         * glib/examples/example-service.xml
3059         * glib/examples/example-signal-emitter.c
3060         * glib/examples/example-signal-emitter.xml
3061         * glib/examples/example-signal-recipient.c:
3062         New files; GLib binding examples, ported from
3063         python/examples.
3064
3065 2005-06-20  Colin Walters  <walters@verbum.org>
3066
3067         * dbus/dbus-glib.h: 
3068         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3069         dbus_g_proxy_call.
3070
3071         * glib/dbus-binding-tool-glib.c: 
3072         * doc/dbus-tutorial.xml: 
3073         * test/glib/test-dbus-glib.c: Update for rename.
3074         
3075 2005-06-20  Colin Walters  <walters@verbum.org>
3076
3077         Patch suggested by Ross Burton <ross@openedhand.com>
3078
3079         * glib/dbus-gobject.c (export_signals): Free signal name.
3080         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3081         memory leak.  Add a bit of documentation.
3082         (dbus_g_method_return_error): Free context, and note we do
3083         so.
3084
3085 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3086
3087         * dbus/dbus-glib.h:
3088         * glib/dbus-gobject.c:
3089         * glib/dbus-gproxy.c:
3090         * glib/dbus-gvalue.c: Predeclare structs as 
3091         typedef struct _Something Something instead of 
3092         typedef struct Something Something, so we can 
3093         redeclare the prototypes. Other GNOME libraries 
3094         do this already.
3095
3096 2005-06-17  Colin Walters  <walters@verbum.org>
3097
3098         * tools/dbus-names-model.c (have_names_notify): Fix call
3099         to dbus_g_proxy_end_call.
3100         
3101 2005-06-17  Colin Walters  <walters@verbum.org>
3102
3103         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3104         spew warnings if we get malformed remote signals.
3105
3106         * glib/dbus-gobject.c (propsig_iterate): New function.
3107         (lookup_object_info): New function, extracted from
3108         lookup_object_and_method.
3109         (introspect_properties, introspect_signals): Delete; these
3110         are merged into write_interface.
3111         (write_interface): Write out signals and properties here;
3112         dump the org.gtk.object stuff and use the interface given
3113         in the introspection data blob.  Also fix up property XML.
3114         (lookup_values): New function.
3115         (introspect_interfaces): Gather a mapping from interface to a
3116         list of its methods, signals, and properties, then write out
3117         each interface.
3118         (lookup_object_and_method): Use lookup_object_info.
3119         (struct DBusGSignalClosure): Add interface.
3120         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3121         we can just use the constant data.
3122         (dbus_g_signal_closure_finalize): Don't free signal name.
3123         (signal_emitter_marshaller): Use interface from signal closure.
3124         (export_signals): Only export signals mentioned in introspection
3125         blob.
3126         (dbus_g_connection_register_g_object): Warn if we have no
3127         introspection data for an object.
3128         (funcsig_equal): Remove unused variable.
3129         (dbus_g_object_register_marshaller): Take varargs instead of
3130         list.
3131         (dbus_g_object_register_marshaller_array): New function,
3132         extracted from old dbus_g_object_register_marshaller.
3133
3134         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3135         signals and property data.
3136         (write_quoted_string): New function, extracted from generate_glue.
3137         (generate_glue): Write signals and properties to introspection
3138         blob.
3139
3140         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3141         exported_signals and exported_properties.
3142         (dbus_g_object_register_marshaller): Update prototype.
3143         (dbus_g_object_register_marshaller_array): Prototype.
3144         
3145         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3146
3147         * test/glib/test-service-glib.c: Add new test signals and method
3148         to emit them.
3149
3150         * test/glib/test-service-glib.xml: Add some test signals.
3151
3152         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3153         and my-object-marshal.h
3154         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3155         my-object-marshal.c.
3156         (my-object-marshal.c, my-object-marshal.h): Implement.
3157
3158         * test/glib/.cvsignore: Update.
3159
3160         * doc/TODO: Remove two GLib TODO items fixed by this
3161         patch.
3162
3163 2005-06-16  Colin Walters  <walters@verbum.org>
3164
3165         * doc/TODO: Update for GLib bindings.
3166         
3167 2005-06-16  Colin Walters  <walters@verbum.org>
3168
3169         * glib/dbus-binding-tool-glib.c:
3170         * glib/dbus-gobject.c:
3171         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3172         from Ross Burton, for his GLib bindings work.
3173
3174 2005-06-16  Colin Walters  <walters@verbum.org>
3175
3176         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3177         to iterate instead of walking to G_TYPE_INVALID.
3178
3179         Patch based on a patch from Ryan Gammon.
3180
3181 2005-06-16  Colin Walters  <walters@verbum.org>
3182
3183         * bus/bus.c (bus_context_new): Set parser to NULL
3184         after we unref it (Patch from Chris Boscolo, #2174).
3185         
3186 2005-06-16  Colin Walters  <walters@verbum.org>
3187
3188         * python/dbus_bindings.pyx.in: Import size_t,
3189         __int64_t, __uint64_t, and __signed.
3190
3191         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3192         Define cmsg struct, output it.
3193         (_dbus_read_credentials_unix_socket):
3194         Use cmsg struct.
3195         
3196         Patch from Joe Markus Clarke for FreeBSD support.
3197         
3198 2005-06-16  Colin Walters  <walters@verbum.org>
3199
3200         * tools/dbus-send.c (append_array): Use strtok.
3201         (append_dict): New function.
3202         (type_from_name): New function, extracted from main.
3203         (main): Handle sending dicts.
3204
3205         * tools/dbus-print-message.c (print_iter): Print dict
3206         entries.
3207         
3208 2005-06-16  Colin Walters  <walters@verbum.org>
3209
3210         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3211         values as the empty string (#2948).
3212         
3213 2005-06-16  Colin Walters  <walters@verbum.org>
3214
3215         * dbus/Makefile.am:
3216         * mono/doc/Makefile.am:
3217         * test/glib/Makefile.am:
3218
3219         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3220
3221 2005-06-16  Colin Walters  <walters@verbum.org>
3222
3223         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3224         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3225
3226         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3227         Increment pointer after swapping fixed array.  Add assertion
3228         for array length.
3229                 
3230 2005-06-15  Colin Walters  <walters@verbum.org>
3231
3232         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3233         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3234         
3235 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3236
3237         * NEWS: Update to 0.34
3238
3239 2005-06-15  David Zeuthen  <davidz@redhat.com>
3240
3241         * configure.in (LT_CURRENT): Revert back to 1 as the library
3242         hasn't changed and we've certainly not committed to protocol
3243         stability yet.  All this does is to break ABI. See commit note
3244         from hp@redhat.com 2005-05-05 for details.
3245         
3246 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3247
3248         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3249         (_dbus_connection_run_builtin_filters): New method
3250         (dbus_connection_dispatch): Run the builtin filters which in turn
3251         runs the peer filter which handles Ping messages.
3252
3253         * doc/TODO: 
3254          - Ping isn't handled: This patch fixes it
3255          
3256          - Add a test case for the Ping message: added TODO item
3257
3258 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3259
3260         * dbus/dbus-message.c:
3261         (dbus_message_has_path): New method
3262         (dbus_message_has_interface): New method
3263         (dbus_message_has_member): New method
3264
3265         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3266         New method
3267
3268         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3269         the keyring directory is private to the user
3270
3271         * doc/TODO:
3272          - The convenience functions in dbus-bus.h should perhaps have
3273          the signatures that they would have if they were autogenerated
3274          stubs. e.g. the acquire service function. We should also evaluate
3275          which of these functions to include, in light of the fact that
3276          GLib/Qt native stubs will probably also exist.: Punted
3277
3278          - add dbus_message_has_path(), maybe has_member/interface:
3279          fixed in this patch
3280
3281          - in dbus-keyring.c, enforce that the keyring dir is not
3282          world readable/writable: Fixed in this patch
3283
3284 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3285
3286         * dbus/dbus-marshal-validate.h: Added a new validation
3287         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3288         out of memory errors when validating signitures
3289
3290         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3291         in places where we previously used DBUS_VALID and a FALSE return 
3292         value to indicate OOM
3293         
3294         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3295         Use a stack to track the number of elements inside containers.  The 
3296         stack values are then used to validate that dict entries have only two
3297         elements within them.
3298         (validate_body_helper): check the reason for failure when validating
3299         varients
3300         
3301         * dbus/dbus-message.c (load_message): use 
3302         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3303         DBUS_VALID and a FALSE return value to indicate OOM
3304
3305         * doc/TODO: remove "- validate dict entry number of fields" as this
3306         patch fixes it
3307
3308 2005-06-14  David Zeuthen  <davidz@redhat.com>
3309
3310         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3311         watches (if applicable) and add new watches
3312
3313         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3314         (main): Setup SIGIO signal handler if using D_NOTIFY
3315
3316         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3317
3318         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3319         (merge_included): Also merge conf_dirs list
3320         (bus_config_parser_unref): Clear conf_dirs list
3321         (include_dir): Add directory to conf_dirs list
3322         (bus_config_parser_get_conf_dirs): New function
3323
3324         * bus/dir-watch.[ch]: New files
3325
3326         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3327
3328         * configure.in: Add checks for D_NOTIFY on Linux
3329
3330 2005-06-14  Colin Walters  <walters@verbum.org>
3331
3332         * glib/dbus-binding-tool-glib.c:
3333         * glib/dbus-gobject.c:
3334         * glib/dbus-gvalue.c: Fix indentation and brace style.
3335         
3336 2005-06-14  Ross Burton <ross@openedhand.com>.
3337
3338         * glib/dbus-glib.h: Make DBusGMethodInvocation
3339         a private structure.  Rearrange prototypes a bit.
3340         
3341         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3342         documentation for first_arg_type.
3343         
3344         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3345         here, add documentation.  Move dbus_g_method_return
3346         and dbus_g_method_return_error into public API
3347         section.
3348
3349 2005-06-14  Colin Walters  <walters@verbum.org>
3350
3351         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3352         Add missing return statements, noticed by Ross Burton.
3353         
3354 2005-06-13  Ross Burton <ross@openedhand.com>.
3355
3356         * glib/dbus-gobject.c: Handle errors on message
3357         demarshalling by sending error message back.
3358         * glib/dbus-gvalue.c: Initialize return variables.
3359
3360 2005-06-13  Colin Walters  <walters@verbum.org>
3361
3362         * glib/Makefile.am: Fix thinko in last patch.
3363
3364 2005-06-13  Colin Walters  <walters@verbum.org>
3365
3366         * glib/Makefile.am: Move dbus-gtype-specialized.c
3367         and dbus-gtype-specialized.h into a _HEADERS variable,
3368         install them.
3369
3370 2005-06-12  Colin Walters  <walters@verbum.org>
3371
3372         Async signals and various bugfixes and testing by
3373         Ross Burton <ross@openedhand.com>.
3374
3375         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3376         (dbus_gvalue_genmarshal_name_from_type)
3377         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3378         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3379         (dbus_g_value_types_init, dbus_gtype_from_signature)
3380         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3381         (dbus_gtypes_from_arg_signature): New function prototypes.
3382         (dbus_gvalue_demarshal): Take context and error arguments.
3383         (dbus_gvalue_demarshal_variant): New function.
3384         (dbus_gvalue_demarshal_message): New function.
3385         (dbus_gvalue_store): Delete.
3386
3387         * glib/dbus-gvalue.c:
3388
3389         File has been almost entirely rewritten; now we special-case
3390         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3391         hash tables correctly, etc.  Full support for recursive values
3392         is not yet complete.
3393
3394         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3395         argument of signal to G_TYPE_POINTER since we now pass a
3396         structure.
3397         (lookup_g_marshaller): Delete in favor of
3398         _dbus_gobject_lookup_marshaller.
3399         (marshal_dbus_message_to_g_marshaller): Use
3400         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3401         to handle remote signal callbacks.
3402         (dbus_g_proxy_new_from_proxy): New function; creates a new
3403         DBusGProxy by copying an existing one.
3404         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3405         (dbus_g_proxy_get_path): New functions.
3406         (dbus_g_proxy_marshal_args_to_message): New function;
3407         factored out of existing code.
3408         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3409         from a varargs array.
3410         (dbus_g_proxy_begin_call_internal): New function.
3411         (dbus_g_proxy_end_call_internal): New function.
3412         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3413         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3414         after collecting args into value array.
3415         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3416         invoke dbus_g_proxy_end_call_internal.
3417         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3418         end_call_internal.
3419         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3420         types.
3421         (array_free_all): New function.
3422         (dbus_g_proxy_add_signal): Take GTypes.
3423
3424         * glib/dbus-gobject.h:
3425         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3426         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3427         Prototype.
3428
3429         * glib/dbus-gobject.c: Add a global marshal_table hash which
3430         stores mappings from type signatures to marshallers.  Change lots
3431         of invocations of dbus_gtype_to_dbus_type to
3432         dbus_gtype_to_signature.
3433         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3434         (introspect_signals): Fix test for query.return_type.
3435         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3436         (invoke_object_method): Many changes.  Handle asynchronous
3437         invocations.  Convert arguments with
3438         dbus_gvalue_demarshal_message.  Handle errors.  Use
3439         DBusSignatureIter instead of strlen on args. Handle all arguments
3440         generically.  Special-case variants.
3441         (dbus_g_method_return, dbus_g_method_return_error): New function.
3442         (DBusGSignalClosure): New structure, closes over signal
3443         information.
3444         (dbus_g_signal_closure_new): New function.
3445         (dbus_g_signal_closure_finalize): New function.
3446         (signal_emitter_marshaller): New function; is special marshaller
3447         which emits signals on bus.
3448         (export_signals): New function; introspects object signals and
3449         connects to them.
3450         (dbus_g_object_type_install_info): Take GType instead of
3451         GObjectClass.
3452         (dbus_g_connection_register_g_object): Invoke export_signals.
3453         (dbus_g_connection_lookup_g_object): New function.
3454         (DBusGFuncSignature) New structure; used for mapping type
3455         signatures to marshallers.
3456         (funcsig_hash): New function; hashes DBusGFuncSignature.
3457         (funcsig_equal): New function; compares DBusGFuncSignature.
3458         (_dbus_gobject_lookup_marshaller): New function.
3459         (dbus_g_object_register_marshaller): New function; used to
3460         register a marshaller at runtime for a particular signature.
3461
3462         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3463
3464         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3465         which notes a server method implementation should be
3466         asynchronous.
3467
3468         * glib/dbus-binding-tool-glib.c
3469         (dbus_binding_tool_output_glib_server): Call
3470         dbus_g_value_types_init.
3471         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3472         variants specially.
3473         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3474         of a lookup function.
3475         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3476         (write_untyped_out_args): New method; write output arguments.
3477         (write_formal_declarations_for_direction): Function for
3478         writing prototypes.
3479         (write_formal_parameters_for_direction): Function for
3480         writing implementations.
3481         (write_typed_args_for_direction): Function for writing
3482         arguments prefixed with GTypes.
3483         (write_async_method_client): Write out async version
3484         of method.
3485
3486         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3487         (dbus_g_type_get_marshal_name): Move mapping from GType
3488         to marshal name into here.
3489         (dbus_g_type_get_c_name): Move into here.
3490         (compute_marshaller): Convert signature to type with
3491         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3492         (compute_marshaller_name): Ditto.
3493         (compute_marshaller): Handle async signal annotations.
3494         (gather_marshallers): Return if we don't have a known
3495         prefix.
3496         (generate_glue): Collect introspection blob here, and
3497         write all of the blob at the end.  This allows an object
3498         with multiple interfaces to work.
3499         Mark async methods in introspection blob.
3500
3501         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3502         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3503         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3504
3505         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3506         avoids people accidentally using DBUS_TYPE_* which should
3507         not be necessary anymore.
3508         Do include dbus-gtype-specialized.h, which are utilities
3509         for GLib container types.
3510         Add various #defines for types such as
3511         DBUS_TYPE_G_BOOLEAN_ARRAY.
3512         (DBusGValueIterator, DBusGValue): Define, not fully used
3513         yet.
3514         (dbus_g_value_get_g_type): Type for recursive value.
3515         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3516         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3517         (dbus_g_value_free): Prototypes.
3518         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3519         (dbus_g_proxy_set_interface): Prototype.
3520         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3521         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3522         types.
3523         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3524         Accessors.
3525         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3526         doing async invocations.
3527         (dbus_g_method_return, dbus_g_method_return_error):
3528         Prototypes.
3529         * doc/dbus-tutorial.xml: Update GLib section.
3530         
3531         * tools/dbus-viewer.c (load_child_nodes): Update
3532         for new invocation type of dbus_g_proxy_end_call.
3533         (load_from_service_thread_func): Ditto.
3534
3535         * tools/print-introspect.c (main): Ditto.
3536
3537         * tools/dbus-names-model.c (have_names_notify)
3538         (names_model_reload, names_model_set_connection)
3539         Use GTypes.
3540
3541         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3542         needed since Python bindings use GLib bindings.
3543
3544         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3545         Add --prefix argument.
3546
3547         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3548         unneeded --ignore-unsupported arg.
3549         
3550         * test/glib/test-service-glib.c: 
3551         * test/glib/test-service-glib.xml:
3552         * test/glib/test-dbus-glib.c: Add many more tests.
3553
3554 2005-06-06  David Zeuthen  <davidz@redhat.com>
3555
3556         * doc/TODO: Add item about need to remove deprecated functions.
3557
3558         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3559
3560         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3561         to repair the ABI which was broken with the last commit.
3562
3563 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3564
3565         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3566         (dbus_connection_disconnect): renamed to dbus_connection_close 
3567         for API symmetry with dbus_connection_open
3568         (_dbus_connection_open_internal): 
3569         s/dbus_connection_disconnect/dbus_connection_close
3570
3571         * dbus/dbus-bus.c (dbus_bus_get):
3572         s/dbus_connection_disconnect/dbus_connection_close
3573
3574         * bus/connection.c (bus_connections_unref, 
3575         bus_connections_setup_connection, bus_connections_expire_incomplete):
3576         s/dbus_connection_disconnect/dbus_connection_close
3577
3578         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3579         kill_client_connection_unchecked, check_hello_connection):
3580         s/dbus_connection_disconnect/dbus_connection_close
3581
3582         * bus/bus.c (new_connection_callback):
3583         s/dbus_connection_disconnect/dbus_connection_close
3584
3585         * tools/dbus-send.c (main):
3586         s/dbus_connection_disconnect/dbus_connection_close
3587
3588         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3589         s/dbus_connection_disconnect/dbus_connection_close
3590         
3591         * test/test-service.c (path_message_func, filter_func):
3592         s/dbus_connection_disconnect/dbus_connection_close
3593         
3594         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3595         
3596 2005-05-25  Colin Walters  <walters@verbum.org>
3597
3598         * dbus/dbus-protocol.h: Move various bus service #defines such
3599           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3600           dbus/dbus-shared.h.
3601         * dbus/dbus-shared.h: Various defines moved here.
3602         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3603
3604 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3605
3606         * python/__init__.py: Python bindings deserve a minor version
3607         update.  Upped to (0, 40, 2)
3608
3609 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3610
3611         * python/decorators.py: add explicitly_pass_message decorator
3612         for passing in the dbus message as keyword for edge case signal
3613         handling
3614
3615         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3616         to conform with what dbus expects for match rules
3617         (SignalMatchRule.execute): add the dbus message as a keyword
3618         if the signal handler has requested it
3619
3620         * python/examples/example/signal-recipient.py: added some more
3621         examples on how to hook up to signals
3622
3623 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3624
3625         * python/decorators.py: import dbus_bindings
3626
3627         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3628         SignalMatchNode): new classes that implement wildcard signal
3629         callback matching using a tree lookup. Heavily modified from a
3630         patch sent by Celso Pinto (fd.o bug #3241)
3631
3632         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3633         use new match classes to handle signals.
3634
3635 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3636         
3637         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3638
3639 2005-05-18  Havoc Pennington  <hp@redhat.com>
3640
3641         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3642         gettext. Not really worth requiring yet perhaps, but any
3643         production quality 1.0 would require it so we should go ahead and
3644         get things set up. We do have a couple token calls to
3645         bindtextdomain in the code already.
3646
3647 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3648
3649         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3650         when using recursive g_main_loops
3651
3652         * python/_dbus.py (class Bus): add the ProxyObjectClass
3653         alias for ProxyObject to make it easier for the Twisted 
3654         networking framework to integrate dbus.
3655
3656         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3657         alias for ProxyMethod to make it easier for the Twisted 
3658         networking framework to integrate dbus. 
3659
3660 2005-05-11  Ross Burton  <ross@openedhand.com>
3661
3662         * glib/dbus-glib-tool.c: Add --prefix argument.
3663         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3664         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3665         Add prefix argument.
3666         (generate_glue): Pass prefix argument down.
3667         (dbus_binding_tool_output_glib_server): Pass prefix to
3668         glib-genmarshal.
3669         
3670 2005-05-11  Colin Walters  <walters@verbum.org>
3671
3672         * tools/dbus-send.c (append_array): New function.
3673         (append_arg): Broken out from main.
3674         (main): Add cheesy hack to send arrays and variants.
3675         (usage): Update.
3676         * tools/dbus-print-message.c (print_iter): Broken out
3677         from main.
3678
3679 2005-05-11  Colin Walters  <walters@verbum.org>
3680
3681         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3682         New function, returns signature string for signature iter.
3683         * dbus/dbus-signature.h: Prototype it.
3684         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3685         New function, returns signature string for message iter.
3686         (dbus_message_iter_get_array_len): New function, returns
3687         length of array.
3688         (dbus_message_iter_get_fixed_array): Fix assertion; this
3689         function should be used when the iter is pointing to the
3690         contents of an array
3691         * dbus/dbus-message.h: Prototypes.
3692         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3693         New function; returns length of an array.
3694         * dbus/dbus-marshal-recursive.h: Prototype it.
3695         
3696 2005-05-11  Colin Walters  <walters@verbum.org>
3697
3698         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3699         compilation error.
3700         
3701 2005-05-08  Havoc Pennington  <hp@redhat.com>
3702
3703         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3704         daemon's pid, not the parent's pid, to the file descriptor.
3705         Reported by Taj Morton.
3706
3707 2005-05-05  Havoc Pennington  <hp@redhat.com>
3708
3709         * configure.in (LT_*): add notes on how the libtool versioning
3710         works to save thinking. Increment soname to indicate protocol
3711         breakage (though really the library interface hasn't changed I
3712         guess)
3713
3714         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3715         verify the GUID received from server matches what we were
3716         expecting, if we had an expectation
3717
3718         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3719         (_dbus_auth_get_guid_from_server): new function
3720         (send_begin): parse the OK args
3721
3722         * doc/dbus-specification.xml: add GUID to the auth protocol
3723
3724 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3725
3726         * Fix my name in previous changelog ;)
3727
3728         * python/proxies.py (ProxyObject.__getattr__): add further patch
3729         from Anthony Baxter to throw an AttributeError when python 
3730         __special__ functions are called instead of marshling them over 
3731         the bus (Bug#1685 comment 3).
3732
3733 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3734
3735         * python/Makefile.am: changed to use pyexecdir for the binding
3736         shared libraries (Bug#2494)
3737
3738         * python/exceptions.py: bring exceptions over from the bindings
3739         so they can be used in applications (Bug#2036)
3740         Make all exceptions derive from DBusException
3741
3742         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3743         of classes so that print obj doesn't throw an exception (Bug #1685)
3744
3745 2005-05-03  Ross Burton  <ross@openedhand.com>
3746
3747         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3748         Return if we get an error during registration.  Set up a
3749         weak reference on object to unregister if object is destroyed.
3750         (unregister_gobject): New function.
3751         
3752 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3753
3754         * python/dbus_bindings.pyx.in: 
3755         - added new type classes for hinting to the marashaler what type 
3756         to send over the wire
3757         - added int16 and uint16 marshalers
3758         - Fixed a bug in the type constants that caused int32 to go out
3759         as uint16 over the wire
3760         * python/dbus.py: split up into different files and renamed _dbus.py
3761         * python/__init__.py, python/_util.py, python/decorators.py, 
3762         python/exceptions.py, python/proxies.py, python/services.py,
3763         python/types.py: new files split off from dbus.py
3764         * python/Makefile.am: Add new files, remove dbus.py and 
3765         install all python files to <python module dir>/dbus
3766         * python/examples/*: Added #!/usr/bin/env python to the top of
3767         every example.  Patch provided by Tatavarty Kalyan
3768
3769 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3770
3771         * NEWS: Update to 0.33
3772
3773 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3774
3775         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3776         method for doing async calls
3777         (_pending_call_notification): New C function for handling pendning call
3778         callbacks
3779         (set_notify): New method for setting pending call notification
3780         
3781         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3782         Async capabilities added to remote method calls
3783         (Sender): class removed
3784         (RemoteService): class removed
3785         (ObjectTree): class removed for now
3786         (RemoteObject): Renamed to ProxyObject
3787         (RemoteMethod): Renamed to ProxyMethod
3788         (method): Decorator added for decorating python methods as dbus methods
3789         (signal): Decorator added for decorating python methods as signal emitters
3790         (ObjectType): Metaclass added for generating introspection data and the
3791         method callback vtable
3792         (Interface): Wrapper class added to wrap objects in a dbus interface
3793         (Object): Uses ObjectType as its metaclass and exports Introspect
3794         of the org.freedesktop.DBus.Introspectable interface
3795         (ValidationException, UnknownMethodException): new exceptions
3796
3797         * python/examples/*: Modified to fit with the new bindings
3798
3799 2005-04-23  Havoc Pennington  <hp@redhat.com>
3800
3801         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3802         reported by Tony Houghton
3803
3804         * test/test-service.c (main): test
3805         dbus_connection_get_object_path_data()
3806
3807         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3808         the exact_match
3809         (_dbus_object_tree_get_user_data_unlocked): new function used by
3810         dbus_connection_get_object_path_data()
3811         (do_register): add assertion test for get_user_data_unlocked
3812         (object_tree_test_iteration): more tests
3813
3814         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3815         new function from Dan Reed to let you get the user data from 
3816         dbus_connection_register_object_path()
3817
3818 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3819
3820         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3821         in numerous places that did not account for the NULL terminator
3822         (signature_from_seed): changed the manual string copy loop to 
3823         just use strcpy instead
3824         make check should now pass
3825
3826 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3827
3828         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3829         so that it allows messages that are not signals to pass in 
3830         NULL as the interface.
3831
3832 2005-04-18  David Zeuthen  <davidz@redhat.com>
3833
3834         * glib/dbus-gmain.c (io_handler_destroy_source): 
3835         (timeout_handler_destroy_source, connection_setup_free): 
3836         Also unref the source to avoid memory leaks.
3837
3838 2005-04-13  David Zeuthen  <davidz@redhat.com>
3839
3840         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3841         more reasonable, yet still totally arbitrary, value :-). 
3842
3843 2005-04-13  David Zeuthen  <davidz@redhat.com>
3844
3845         * doc/TODO: Added an "important for 1.0" item about selinux
3846         allow/deny messages
3847
3848 2005-04-13  David Zeuthen  <davidz@redhat.com>
3849
3850         * bus/selinux.c: Add c-file-style to top of file
3851         (log_audit_callback): Don't free the data here anymore
3852         (bus_selinux_check): Don't take spid and tpid since appending
3853         that to auxdata may OOM.
3854         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3855         to the caller if we are OOM by taking an error object.
3856         (bus_selinux_allows_send): -do-
3857
3858         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3859         and bus_selinux_allows_send
3860
3861         * bus/bus.c (bus_context_check_security_policy): Pass error and
3862         pass on OOM thrown by bus_selinux_allows_send()
3863
3864         * bus/services.c (bus_registry_acquire_service): Pass error and
3865         pass on OOM thrown by bus_selinux_allows_acquire_service()
3866
3867 2005-04-13  Havoc Pennington  <hp@redhat.com>
3868
3869         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3870         message at a time to avoid monopolizing the main loop, bug 
3871         #2953 from Benjamin Otte
3872
3873 2005-04-09  Havoc Pennington  <hp@redhat.com>
3874
3875         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3876         possible overlap, fix from Daniel Reed
3877         (fixup_alignment): fix signedness warnings
3878         (_dbus_string_append_unichar): ditto
3879
3880 2005-04-09  Havoc Pennington  <hp@redhat.com>
3881
3882         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3883
3884         * glib/dbus-glib-tool.c (main): fix warning
3885
3886         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3887
3888         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3889         add a new function that can be used in simple applications that
3890         don't have a main loop and are willing to block
3891
3892 2005-04-05  David Zeuthen  <davidz@redhat.com>
3893
3894         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3895
3896         * glib/dbus-gmain.c:
3897         (io_handler_destroy_source): Remove from list of IO handlers
3898         of the ConnectionSetup object
3899         (timeout_handler_destroy_source): -do- for timeout handlers
3900         (io_handler_source_finalized): Don't remove from list since
3901         we now do that in io_handler_destroy_source(). Renamed from
3902         io_handler_source_destroyed
3903         (timeout_handler_source_destroyed): -do- for timeout handlers
3904         (connection_setup_free): It is now safe to iterate over all
3905         IO and timeout handlers as the _destroy_source removes them
3906         from the list synchronously
3907
3908 2005-03-30  Havoc Pennington  <hp@redhat.com>
3909
3910         * configure.in: change check to gtk 2.4
3911
3912         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3913         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3914         to 2.4
3915
3916 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3917
3918         * News: Update 0.32
3919
3920         * HACKING: Fixed realease instructions.  configure.in should be updated to
3921           the next release by the person who made the last release.
3922
3923 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3924
3925         * python/lvalue_cast_post_process.py - removed.  Patch has been
3926           submitted to Pyrex maintainers that fixes gcc4.0 errors
3927
3928         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3929
3930 2005-03-24  Daniel Reed  <n@ml.org>
3931
3932         * tools/Makefile.am: Make print-introspect and
3933         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3934
3935 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3936
3937         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3938
3939         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3940           had in Red Hat packages for a while but for some reason never 
3941           got merged upstream
3942           (_dbus_is_a_number): New checks if a string
3943           can be converted to a number and does the conversion if it can
3944           (_dbus_user_database_lookup): Add check to see if the given username
3945           is a udi.  This allows udi's to be used instead of usernames in the
3946           config file.
3947           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3948           is a gdi.  This allows gdi's to be used instead of groupnames in the
3949           config file.
3950
3951 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3952
3953         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3954           code so that it compiles with gcc4.0
3955
3956         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3957           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3958           results back to dbus_binding.c
3959
3960 2005-03-20  Colin Walters  <walters@verbum.org>
3961
3962         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3963
3964         * configure.in: Require GTK+ 2.6.
3965         
3966 2005-03-20  Colin Walters  <walters@verbum.org>
3967
3968         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3969
3970 2005-03-17  Tom Parker  <palfrey@tevp.net>
3971
3972         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3973         print DBUS_UID_UNSET; instead print passed username.  Also
3974         be sure to actually use gid looked up in cache.
3975         
3976         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3977         for DBUS_GID_UNSET and groupname.
3978
3979 2005-03-17  Colin Walters  <walters@verbum.org>
3980
3981         * bus/print-introspect.c: Move to tools/.
3982         * bus/run-with-tmp-session-bus.sh: Ditto.
3983         
3984         * glib/Makefile.am (dbus-glib-bindings.h): Move
3985         generation to tools/Makefile.am.
3986
3987         * test/glib/run-test.sh: Update to handle move
3988         of run-with-tmp-session-bus.sh.
3989
3990         * test/glib/test-service-glib.c: Update to handle
3991         move of dbus-glib-bindings.h.
3992
3993         * tools/print-introspect.c: Moved here
3994         from bus/, and ported to GLib bindings.
3995
3996         * tools/run-with-tmp-session-bus.sh: Moved here
3997         from bus/.
3998
3999         * tools/Makefile.am: Generate dbus-glib-bindings.h
4000         and dbus-bus-introspect.xml here.
4001
4002         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4003         Update.
4004
4005 2005-03-17  Colin Walters  <walters@verbum.org>
4006
4007         * bus/driver.c (write_args_for_direction): Use
4008         _dbus_string_get_const_data to retrieve string;
4009         _dbus_string_get_const_data_len doesn't actually return
4010         a NULL-terminated substring.
4011
4012         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4013         (main): Change to use org_freedesktop_DBus_request_name
4014         instead of using g_proxy_begin_call/end_call.
4015
4016 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4017
4018         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4019         generating the finalizer.  Fixes from Ben Maurer.
4020
4021 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4022
4023         * mono/BusDriver.cs: Update method names: ListServices
4024         becomes ListNames; GetOwner becomes GetNameOwner.
4025
4026         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4027         onto the eval stack when removing the delegate.
4028
4029 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4030
4031         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4032         LT_CURRENT.  Set it to the autoconf variable.
4033                                                                                 
4034         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4035         classes that disconnects the signal handler delegate from the
4036         service object.  Fixes a big leak of proxy objects on the
4037         client side of things.  Patch from Ben Maurer
4038         <bmaurer@ximian.com>
4039
4040 2005-03-12  Colin Walters  <walters@verbum.org>
4041
4042         * bus/driver.c (write_args_for_direction): New function,
4043         parses a type signature into arguments and outputs to
4044         XML.
4045         (bus_driver_handle_introspect): Use it instead of
4046         hardcoding XML for certain signatures.
4047         
4048         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4049         dependency on dbus-daemon.
4050
4051         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4052         argument, pass it to dbus_binding_tool_output_glib_client.
4053
4054         * glib/dbus-binding-tool-glib.c
4055         (generate_client_glue): Protect against multiple inclusion.
4056         (dbus_binding_tool_output_glib_client): Add
4057         G_BEGIN_DECLS/G_END_DECLS.
4058
4059         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4060         Change to just take iface prefix directly.
4061         (write_formal_parameters): Clarify error message.
4062         (check_supported_parameters): New function; checks to see type
4063         signatures of method parameters are supported.
4064         (generate_client_glue): Handle ignore_unsupported flag.
4065         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4066         parameter.
4067
4068         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4069         --ignore-unsupported by default until glib bindings
4070         support arrays.
4071
4072 2005-03-11  Colin Walters  <walters@verbum.org>
4073
4074         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4075         install it.
4076
4077         * bus/print-introspect.c: New file; prints introspection
4078         data for a given name and object path.
4079
4080         * bus/run-with-tmp-session-bus.sh: New file, refactored
4081         from test/glib/run-test.sh.  Creates a temporary session
4082         bus and runs another program.
4083
4084         * test/glib/run-test.sh: Refactor to invoke
4085         run-with-tmp-session-bus.sh.
4086
4087         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4088         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4089         macros instead of hardcoding.
4090
4091         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4092
4093 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4094
4095         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4096         this unref; it doesn't match up evenly in some codepaths.
4097         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4098         this evenly matches with the ref near the top of this function.
4099
4100 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4101
4102         * dbus/dbus-object-tree.c
4103         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4104         and we try to unregister a path that's not registered, still go
4105         through the process of unlocking and don't just return.
4106
4107 2005-03-09  Colin Walters  <walters@verbum.org>
4108
4109         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4110         to this are generated for client-side wrappers.  Invokes a
4111         D-BUS method and returns reply values.  
4112
4113         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4114         function; writes signature string for argument direction.
4115         (write_args_for_direction): Change to pass input values directly
4116         instead of via address, and fix indentation.
4117         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4118         make generated wrappers inlineable.
4119
4120         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4121         note about using dbus_type_is_fixed.
4122
4123         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4124         dbus/dbus-signature.c as dbus_type_is_fixed.
4125
4126         All callers updated.
4127
4128         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4129         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4130
4131         * dbus/dbus-signature.h: Prototype.
4132
4133         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4134         error printf code.
4135
4136         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4137         appropriate instead of just freeing it.
4138         (main): Free returned strings using g_free.
4139
4140         * test/glib/Makefile.am (test-service-glib-glue.h)
4141         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4142
4143         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4144         simply maps a simple D-BUS type to GType.
4145         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4146         GType.
4147         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4148         initialize the value with it.
4149         (dbus_gvalue_binding_type_from_type): Unused, delete.
4150         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4151         various types instead of unmarshalling to value data directly.
4152         Remove can_convert boolean.
4153         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4154         returning directly instead of using can_convert boolean.
4155         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4156         Stores a GValue in a pointer to a value of its corresponding C
4157         type.
4158
4159         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4160         add dbus_gvalue_store.
4161
4162 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4163
4164         Fix a bunch of lifecycle and memory management problems
4165         in the mono bindings.
4166
4167         * mono/Arguments.cs (Arguments): Implement IDisposable
4168
4169         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4170         strictly a static class.
4171
4172         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4173         delegates into this file.
4174         (Connection): Implement IDisposable.
4175         (Dispose): Disconnect the connection and set the raw connection
4176         pointer to IntPtr.Zero.
4177         (~Connection): Call Dispose().
4178         (RegisterObjectPath): Added.  Manages the registration of object
4179         paths so we can cleanly disconnect them at dispose/finalize time.
4180         (UnregisterObjectPath): Ditto.
4181         (set_RawConnection): Unregister all of the object paths when
4182         changing the underlying DBusConnection.  Add them back onto the
4183         new connection, if any.
4184
4185         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4186         more unmanaged resources anymore, so it's not necessary.  Move all
4187         the DBusObjectPathVTable stuff out of here.
4188         (Handler): Save references to our delegates so that they don't get
4189         finalized.  Call Connection.RegisterObjectPath() instead of
4190         dbus_connection_register_object_path() directly.
4191         (Message_Called): Dispose the message after we're finished with
4192         it.
4193
4194         * mono/Message.cs (Message): Implement IDisposable.
4195         (Dispose): Dispose the Arguments, and set the RawMessage to
4196         IntPtr.Zero.
4197         (SendWithReplyAndBlock): We own the ref to the reply that comes
4198         back from dbus_connection_send_with_reply_and_block() so add a
4199         comment about that and unref it after we've constructed a managed
4200         MethodReturn class around it.  Fixes a big, big leak.
4201
4202         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4203         method.
4204         (BuildSignalHandler): After we've sent the Signal message, dispose
4205         of it.
4206         (BuildMethod): Dispose of the method call and reply messages after
4207         we've sent the message and extracted the data we want from the
4208         reply.
4209
4210         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4211         anymore.
4212         (Service_FilterCalled): Dispose of the message after we're
4213         finished with it.
4214
4215 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4216
4217         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4218         After we attach our pending call to the connection, unref
4219         it.  Fixes a leak.
4220  
4221         * mono/Connection.cs (set_RawConnection): Disconnect our
4222         filter and match callbacks from the old connection and
4223         reconnect them to the new connection, if any.
4224
4225         * mono/DBusType/Array.cs: "Code" is a static member, so
4226         don't use "this" to refer to it.  Fix for stricter checking
4227         in Mono 1.1.4.
4228  
4229         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4230         object path that we pass into unmanaged code.
4231  
4232         * mono/DBusType/String.cs (Append): Don't leak the string
4233         that we pass into unmanged code.
4234
4235 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4236         * NEWS: Update for 0.31
4237
4238         * configure.in: Release 0.31
4239         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4240
4241         * qt/Makefile.am: fixed build
4242
4243         * dbus/Makefile.am: soname bump for libdbus
4244
4245         * glib/Makefile.am: soname bump for libdbus-glib
4246
4247 2005-03-05  Havoc Pennington  <hp@redhat.com>
4248
4249         * dbus/dbus-sysdeps.c:
4250         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4251         value
4252         (_dbus_generate_random_bytes_buffer): fix return value
4253
4254         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4255         checks actually work, from Tom Parker <fdo@tevp.net>
4256
4257 2005-03-01  Colin Walters  <walters@verbum.org>
4258
4259         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4260         functions copied from dbus-glib-tool.c.
4261         (main): Convert lots of error code to use them.
4262         Also add some testing for introspection bits.
4263
4264 2005-03-01  Colin Walters  <walters@verbum.org>
4265         
4266         * doc/TODO: Remove introspection signature TODO.
4267
4268 2005-02-27  Colin Walters  <walters@verbum.org>
4269
4270         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4271         Change return value to const char * instead of int so we can do
4272         full signatures.
4273         (struct PropertyInfo, struct ArgInfo): Store char *.
4274         (property_info_new, arg_info_new): Update parameters, strdup.
4275         (property_info_unref, arg_info_unref): Free.
4276
4277         * glib/dbus-gidl.h: Update prototypes.
4278
4279         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4280         (validate_signature): New function, just validates signature and
4281         sets GError.
4282         (parse_property, parse_arg): Invoke validate_signature.  Store
4283         signature instead of just type code.
4284
4285         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4286         function to return a primary type for a signature, dropping
4287         information about types in container types.
4288         (dbus_gvalue_genmarshal_name_from_type)
4289         (dbus_gvalue_binding_type_from_type)
4290         (dbus_gvalue_ctype_from_type): Update to take full signature
4291          instead of type code.
4292         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4293
4294         * glib/dbus-gvalue.h: Update prototypes for above.
4295
4296         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4297         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4298         (introspect_properties, introspect_signals, write_interface):
4299         Update to handle signatures, and remove usage of
4300         _dbus_gutils_type_to_string.
4301         (handle_introspect): Print out type codes instead of e.g. "string"
4302         in hardcoded introspection XML; also use x_AS_STRING constants
4303         instead of hardcoding in string.
4304
4305         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4306         to string.  Remove usage of _dbus_gutils_type_to_string.
4307
4308         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4309
4310         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4311         deletion.
4312         
4313         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4314         (compute_marshaller_name, generate_glue): Handle signature change
4315         to string.
4316         (write_formal_parameters, write_args_for_direction): Ditto, and
4317         remove FIXME.
4318
4319         * tools/dbus-tree-view.c (type_to_string): Delete.
4320         (info_set_func_text): Update to print full signatures.
4321
4322         * test/glib/test-service-glib.xml: Change types to new
4323         introspection format.
4324
4325 2005-02-26  Havoc Pennington  <hp@redhat.com>
4326
4327         * doc/TODO: remove the "guid" item
4328
4329         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4330         (with_bus_thread_func): use open_private
4331
4332         * dbus/dbus-connection.c (dbus_connection_open_private): new
4333         function that works like the old dbus_connection_open()
4334         (dbus_connection_open): now returns an existing connection if
4335         possible
4336
4337         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4338         through the GUID to the transport
4339
4340         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4341         GUID in hex-encoded form.
4342
4343         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4344         pass GUID argument in to the transport
4345
4346         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4347         guid argument
4348
4349         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4350
4351         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4352
4353 2005-02-25  Havoc Pennington  <hp@redhat.com>
4354
4355         * doc/dbus-specification.xml: document the GUID thing
4356
4357         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4358         globally unique ID for the server, and put a "guid=hexencoded"
4359         field in the address
4360
4361         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4362
4363         * dbus/dbus-message.c: ditto
4364
4365         * dbus/dbus-dataslot.c: ditto
4366
4367         * dbus/dbus-list.c: ditto
4368
4369         * dbus/dbus-internals.h: wait, just include
4370         dbus-threads-internal.h here
4371         
4372         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4373         use in main library
4374
4375         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4376
4377 2005-02-24  Colin Walters  <walters@verbum.org>
4378
4379         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4380
4381 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4382
4383         * glib/Makefile.am: added dbus-gobject.h to sources list
4384         so distcheck doesn't fail
4385         
4386 2005-02-24  Havoc Pennington  <hp@redhat.com>
4387
4388         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4389         you must disconnect before unref, since locking and other things
4390         are screwed up otherwise. Fix assorted other locking stuff.
4391
4392         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4393         fix compilation
4394
4395         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4396         into a private header and don't export from the library
4397
4398         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4399
4400 2005-02-24  Colin Walters  <walters@verbum.org>
4401         
4402         * dbus/dbus-signature.c: New file; implements various functions
4403         related to type signatures.  Includes an interator for parsing,
4404         validation functions.
4405         (dbus_type_is_basic): Moved here from
4406         dbus-marshal-basic.c:_dbus_type_is_basic.
4407         (dbus_type_is_container): Moved here from
4408         dbus-marshal-basic.c:_dbus_type_is_container.
4409
4410         All callers of _dbus_type_is_container and _dbus_type_is_basic
4411         updated, and include dbus-signature.h.
4412
4413         * dbus/dbus-signature.h: New file; prototypes for the above.
4414
4415         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4416         dbus-signature.h.
4417
4418         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4419         function factored out of _dbus_first_type_in_signature.
4420         (_dbus_first_type_in_signature_c_str): New function; returns first
4421         type code for a type signature character.
4422
4423         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4424         handle function moves.
4425
4426         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4427
4428         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4429         function; skips to next complete type in type signature.
4430         Implemented using previous skip_one_complete_type.  Now
4431         skip_one_complete_type just delegates to
4432         _dbus_type_signature_next.
4433
4434         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4435         to dbus-signature.c
4436         (_dbus_type_is_container): Ditto.
4437
4438         * doc/dbus-specification.xml: Update introspection sample to
4439         use real type signatures.
4440
4441         * dbus/dbus-test.h: Prototype signature test.
4442
4443         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4444         signature tests.
4445
4446         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4447
4448 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4449
4450         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4451         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4452
4453 2005-02-21  Colin Walters  <walters@verbum.org>
4454
4455         * dbus/dbus-test-main.c (main): Take optional specific test
4456         argument.
4457
4458         * dbus/dbus-test.c (run_test): New function, runs a test function
4459         with no data directory.
4460         (run_data_test): Like above, but takes data directory.
4461         (dbus_internal_do_not_use_run_tests): Take
4462         specific test argument.  Replace lots of cut n' paste code
4463         with run_test and run_data_test.
4464
4465         * dbus/dbus-test.h: Update prototype for
4466         dbus_internal_do_not_use_run_tests.
4467
4468 2005-02-20  Havoc Pennington  <hp@redhat.com>
4469
4470         Fix bugs reported by Daniel P. Berrange
4471         
4472         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4473         (protected_change_watch): new function
4474         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4475         (_dbus_server_add_watch): change to work like the
4476         dbus-connection.c equivalents; like those, probably kind of
4477         busted, but should at least mostly work for now
4478         (dbus_server_disconnect): drop the lock if we were already
4479         disconnected, patch from Daniel P. Berrange
4480
4481         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4482         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4483         same stuff
4484
4485         * doc/TODO: todo about unscrewing this mess
4486
4487 2005-02-19  Colin Walters  <walters@verbum.org>
4488
4489         * glib/dbus-binding-tool-glib.c
4490         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4491
4492         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4493         as errno.h and sys/stat.h.
4494         (lose): New function, prints error with
4495         newline and exits.
4496         (lose_gerror): Similar, but takes GError for message.
4497         (main): Add --output argument to specify output file to write to,
4498         instead of always printing to stdout.  In this mode, determine
4499         timestamps on source files to see whether any are newer than the
4500         target file.  If not, exit.  Also convert a number of error
4501         messages to use lose (since it's shorter), and switch to using
4502         g_io_channel_shutdown.
4503
4504 2005-02-19  Havoc Pennington  <hp@redhat.com>
4505
4506         * glib/dbus-gobject.c
4507         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4508
4509         * glib/dbus-glib.c: fix doxygen warnings
4510
4511         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4512         is found on an <arg>
4513
4514 2005-02-17  Colin Walters  <walters@verbum.org>
4515
4516         * glib/dbus-gobject.h: Don't export
4517         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4518         
4519         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4520         (invoke_object_method): Handle it.
4521
4522         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4523         Handle rename.
4524         
4525 2005-02-17  Colin Walters  <walters@verbum.org>
4526
4527         * bus/.cvsignore, doc/.cvsignore
4528         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4529         Update.
4530
4531 2005-02-17  Colin Walters  <walters@verbum.org>
4532         
4533         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4534         Rename to DBUS_SERVICE_DBUS.
4535         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4536         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4537         Change the value from "org.freedesktop.Local"
4538         to "org.freedesktop.DBus.Local".
4539         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4540         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4541         DBUS_INTERFACE_INTROSPECTABLE.
4542         Change the value from "org.freedesktop.Introspectable"
4543         to "org.freedesktop.DBus.Introspectable".
4544         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4545         DBUS_INTERFACE_PROPERTIES.
4546         Change the value from "org.freedesktop.Properties"
4547         to "org.freedesktop.DBus.Properties".
4548         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4549         DBUS_INTERFACE_PEER.
4550         Change the value from "org.freedesktop.Peer"
4551         to "org.freedesktop.DBus.Peer".
4552         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4553         DBUS_INTERFACE_LOCAL.
4554         Change the value from "org.freedesktop.Local"
4555         to "org.freedesktop.DBus.Local".
4556
4557         All other users of those constants have been changed.
4558
4559         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4560
4561         * glib/dbus-gobject.c (handle_introspect): Use constants.
4562
4563         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4564
4565 2005-02-17  Colin Walters  <walters@verbum.org>
4566
4567         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4568         (parse_node, parse_interface, parse_method, parse_signal)
4569         (parse_property, parse_annotation): Lose if we're currently in an
4570         annotation.
4571         (parse_annotation): New function.
4572         (parser_start_element, parser_end_element): Handle annotation.
4573         (parse_method, parse_interface): Remove support for c_name attribute,
4574         switch to annotations.
4575
4576         * glib/dbus-gidl.h (interface_info_get_binding_names)
4577         (method_info_get_binding_names)
4578         (interface_info_get_binding_name, method_info_get_binding_name)
4579         (interface_info_set_binding_name, method_info_set_binding_name):
4580         Remove.
4581         (interface_info_get_annotations, method_info_get_annotations)
4582         (interface_info_get_annotation, method_info_get_annotation)
4583         (interface_info_add_annotation, method_info_add_annotation):
4584         Prototype.
4585
4586         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4587         for "bindings".
4588         (struct MethodInfo): Ditto.
4589         Straightfoward conversion of binding methods into annotation methods
4590         as prototyped.
4591
4592         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4593
4594         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4595
4596         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4597         Use new annotation API.
4598
4599         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4600         annotation element.
4601         
4602         * doc/dbus-specification.xml: Discuss introspection annotations,
4603         include list of well-known annotations.
4604
4605         * test/glib/test-service-glib.xml: Make validate against new DTD.
4606
4607 2005-02-17  Colin Walters  <walters@verbum.org>
4608
4609         This patch is based on initial work from
4610         Paul Kuliniewicz <kuliniew@purdue.edu>.
4611
4612         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4613         initialization of GValue from dbus type to here.
4614         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4615         for the "glib-genmarshal" program from a DBus type.
4616         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4617         into the C name for it we use in the glib bindings.
4618         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4619         glib C type (not GValue).
4620         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4621
4622         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4623         from dbus-gobject.c.
4624
4625         * glib/dbus-gutils.h: Prototype it.
4626
4627         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4628         (marshal_dbus_message_to_g_marshaller): Use new shared function
4629         dbus_glib_marshal_dbus_message_to_gvalue_array.
4630
4631         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4632         Will be changed once we have annotations.
4633
4634         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4635         GStaticRWLock.  Callers updated.
4636         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4637         (string_table_next): New function for iterating over zero-terminated
4638         string value array.
4639         (string_table_lookup): New function; retrieves specific entry in
4640         array.
4641         (get_method_data): New function; look up method data in object data chunk.
4642         (object_error_domain_prefix_from_object_info)
4643         (object_error_code_from_object_info): New functions, but not implemented yet.
4644         (method_interface_from_object_info): New function; retrieve interface name.
4645         (method_name_from_object_info): New function; retrieve method name.
4646         (method_arg_info_from_object_info): New function; retrieve argument data.
4647         (arg_iterate): New function; iterates over serialized argument data.
4648         (method_dir_signature_from_object_info): New function; returns a
4649         GString holding type signature for arguments for just one
4650         direction (input or output).
4651         (method_input_signature_from_object_info)
4652         (method_output_signature_from_object_info): New functions.
4653         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4654         converts dbus message arguments into a GValue array.  Used for both
4655         signal handling and method invocation.
4656         (struct DBusGlibWriteIterfaceData): New utility structure.
4657         (write_interface): New function; generate introspection XML for
4658         an interface.
4659         (introspect_interfaces): New function; gathers all interface->methods,
4660         generates introspection XML for them.
4661         (handle_introspect): Invoke introspect_interfaces.
4662         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4663         (lookup_object_and_method): New function; examines an incoming message
4664         and attempts to match it up (via interface, method name, and argument
4665         signature) with a known object and method.
4666         (gerror_domaincode_to_dbus_error_name): New function; converts a
4667         GError domain and code into a DBus error name.  Needs GError data
4668         added to object introspection to work well.
4669         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4670         GError.
4671         (invoke_object_method): New function to invoke an object method
4672         looked up via lookup_object_and_method.  Parses the incoming
4673         message, turns it into a GValue array, then invokes the marshaller
4674         specified in the DBusGMethodInfo.  Creates a new message with
4675         either return values or error message as appropriate.
4676         (gobject_message_function): Invoke lookup_object_and_method and
4677         invoke_object_method.
4678
4679         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4680         (enum DBusBindingOutputMode): New enum for binding output modes.
4681         (pretty_print): Print binding names.
4682         (dbus_binding_tool_error_quark): GError bits.
4683         (version): Fix typo.
4684         (main): Create GIOChannel for output.  Parse new --mode argument,
4685         possible values are "pretty-print", "glib-server", "glib-client".
4686         Use mode to invoke appropriate function.
4687         
4688         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4689
4690         * glib/dbus-glib-tool.h: New header, just includes GError bits
4691         for now.
4692
4693         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4694         maps binding style to name.
4695         (struct MethodInfo): Ditto.
4696         (get_hash_keys, get_hash_key): Utility function, returns keys for
4697         a GHashTable.
4698         (interface_info_new, method_info_new): Initialize bindings.
4699         (interface_info_unref, method_info_unref): Destroy bindings.
4700         (method_info_get_binding_names, method_info_get_binding_name)
4701         (interface_info_get_binding_names, interface_info_get_binding_name):
4702         Functions for retrieving binding names.
4703         (method_info_set_binding_name, interface_info_set_binding_name):
4704         Functions for setting binding names.
4705
4706         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4707         for glib binding generation.
4708
4709         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4710         and client-side glib glue generation.
4711
4712         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4713         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4714         dbus-glib-tool.h.
4715
4716         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4717         of using GClosureMarshal directly.
4718         (struct DBusGObjectInfo): Add n_infos member.
4719
4720         * test/glib/test-service-glib.xml: New file; contains introspection data
4721         for MyTestObject used in test-service-glib.c.
4722
4723         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4724         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4725         (my_object_uppercase, my_object_many_args): New test methods.
4726         (main): Use dbus_g_object_class_install_info to include generated object
4727         info.
4728
4729         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4730         as well as client-side bindings.
4731
4732         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4733         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4734         using both the dbus_gproxy stuff directly as well as the generated bindings.
4735
4736 2005-02-15  Havoc Pennington  <hp@redhat.com>
4737
4738         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4739         complete a pending call, don't run filters first.
4740
4741         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4742         dbus_pending_call_steal_reply
4743
4744         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4745         _dbus_connection_block_pending_call
4746         (dbus_pending_call_get_reply): change to steal_reply and return a
4747         ref
4748
4749         * dbus/dbus-connection.c
4750         (dbus_connection_send_with_reply_and_block): port to work in terms
4751         of DBusPendingCall
4752         (_dbus_connection_block_pending_call): replace block_for_reply
4753         with this
4754
4755 2005-02-14  Havoc Pennington  <hp@redhat.com>
4756
4757         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4758         properly handle looking up group information by name; fix 
4759         from j@bootlab.org
4760
4761 2005-02-13  Havoc Pennington  <hp@redhat.com>
4762
4763         * dbus/dbus-connection.c (dbus_connection_return_message) 
4764         (dbus_connection_borrow_message): hold dispatch lock while message
4765         is outstanding
4766         (_dbus_connection_block_for_reply): hold dispatch lock while we
4767         block for the reply, so nobody steals our reply
4768         (dbus_connection_pop_message): hold the dispatch lock while we
4769         pluck the message
4770
4771 2005-02-13  Havoc Pennington  <hp@redhat.com>
4772
4773         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4774         (_dbus_connection_release_dispatch)
4775         (_dbus_connection_acquire_io_path)
4776         (_dbus_connection_release_io_path): make the mutex and condvar
4777         control access to the "acquired" flag. Drop the connection lock
4778         while waiting on the condvar. Hopefully these are baby steps in
4779         roughly the right direction.
4780
4781 2005-02-13  Havoc Pennington  <hp@redhat.com>
4782
4783         * dbus/dbus-connection.c: use separate mutexes for the condition
4784         variables; this is some kind of baseline for sanity, but the
4785         condition variables still aren't used correctly afaict
4786
4787 2005-02-13  Havoc Pennington  <hp@redhat.com>
4788
4789         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4790         fix a double-unlock
4791
4792         * dbus/dbus-connection.c
4793         (_dbus_connection_detach_pending_call_unlocked): add this
4794
4795         Initial semi-correct pass through to fix thread locking; there are
4796         still some issues with the condition variable paths I'm pretty
4797         sure
4798         
4799         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4800         lock/unlock calls
4801
4802         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4803         rename to add _unlocked
4804         (struct DBusConnection): move "dispatch_acquired" and
4805         "io_path_acquired" to use only one bit each.
4806         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4807         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4808         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4809         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4810         (_dbus_connection_remove_timeout) 
4811         (_dbus_connection_toggle_timeout): drop lock when calling out to
4812         user functions; done in a hacky/bad way.
4813         (_dbus_connection_send_and_unlock): add a missing unlock
4814         (_dbus_connection_block_for_reply): add a missing unlock
4815
4816         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4817         drop lock in a hacky probably unsafe way to call out to user
4818         function
4819
4820 2005-02-12  Havoc Pennington  <hp@redhat.com>
4821
4822         * tools/dbus-tree-view.c (info_set_func_text): display more
4823         details on args
4824
4825         * bus/driver.c (bus_driver_handle_list_services): list the bus
4826         driver
4827
4828         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4829
4830         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4831         (method_info_get_n_args): new function
4832
4833 2005-02-12  Havoc Pennington  <hp@redhat.com>
4834
4835         * bus/driver.c (bus_driver_handle_introspect): add introspection
4836         for bus driver
4837
4838 2005-02-12  Havoc Pennington  <hp@redhat.com>
4839
4840         * bus/driver.c: put the signature of each bus driver method in the
4841         table of handlers and check it on incoming calls; this isn't
4842         really useful, but going to add introspect support in a minute.
4843
4844 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4845
4846         * mono/Connection.cs: The unpredictability of finalizers in mono
4847         prevents us from deterministically disconnecting the filters from
4848         the Service class's finalizer, so move tracking of filters and
4849         matches here.  Add API for that.
4850
4851         * mono/Service.cs: Remove the code, add code which calls the
4852         methods now on the Connection class.
4853
4854 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4855
4856         * python/dbus.py (class Sender): added to support dbus signals better
4857         (Bus::add_signal_receiver): added expand_args parameter which defaults
4858         to True.  When expand args is True the signal handler will pass the 
4859         message arguments as parameters to the signal handler.  If False
4860         revert to previous behavior where the signal handler must get the
4861         argument list from the message.  This is to help port applications
4862         like HAL that have a tendancy to send variable length argument lists.
4863         self._match_rule_to_receivers is now a dict of dicts.
4864         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4865         removing it from a list
4866         (Bus::_signal_func): change signal handlers so that interface,
4867         signal_name, service, path and message are packed into a Sender
4868         object and that is passed to the handler.  If expand_args is True
4869         extract the args list from the message and append it to the parameter
4870         list
4871         
4872         * python/dbus_bindings.pyx.in (class Signature): added to support 
4873         signiature types
4874         (MessageIter::__init__): changed iteration limit to match D-BUS
4875         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4876         STRUCT and VARIENT type support
4877         (MessageIter::python_value_to_dbus_sig): made recursive to support
4878         recursive types
4879         (MessageIter::append*): added Signature, dict, tuple 
4880         support
4881
4882         * python/examples/example-client.py: added examples of getting tuples
4883         and dicts
4884
4885         * python/examples/example-service.py: added examples of sending tuples
4886         and dicts
4887
4888         * python/examples/example-signal-recipient.py: Fixed to handle new
4889         signal callback format
4890
4891 2005-02-10  Havoc Pennington  <hp@redhat.com>
4892
4893         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4894         (call dbus_g_proxy_add_signal)
4895
4896         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4897         escape the hostname
4898         (_dbus_server_new_for_domain_socket): escape the path
4899
4900         * dbus/dbus-address.c (dbus_address_escape_value): new
4901         (dbus_address_unescape_value): new
4902         (dbus_parse_address): unescape values
4903
4904         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4905
4906         * doc/dbus-specification.xml: explain how to escape values in
4907         addresses
4908
4909 2005-02-10  Havoc Pennington  <hp@redhat.com>
4910
4911         * dbus/dbus-message-factory.c (generate_special): modify test to
4912         avoid using a non-basic dict key
4913
4914         * dbus/dbus-marshal-validate-util.c: add test for the below
4915
4916         * doc/dbus-specification.xml: require that dict keys are a basic
4917         type
4918
4919         * dbus/dbus-marshal-validate.c
4920         (_dbus_validate_signature_with_reason): require that dict key is a
4921         basic type
4922
4923 2005-02-10  Havoc Pennington  <hp@redhat.com>
4924
4925         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4926         change to be _and_unlock instead of _unlocked
4927
4928         * dbus/dbus-connection.c
4929         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4930         have no_update so we can find this bug quickly in future
4931
4932 2005-02-10  Havoc Pennington  <hp@redhat.com>
4933
4934         * dbus/dbus-message-util.c (verify_test_message): tests for string
4935         array
4936
4937         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4938         support for arrays of string/signature/path
4939
4940 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4941
4942         * dbus/dbus-connection.c
4943         (_dbus_connection_queue_received_message_link,
4944         _dbus_connection_message_sent): Add the path to
4945         the verbose output.
4946         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4947         _dbus_connection_send_preallocated_unlocked(), updated the
4948         dispatch status, and unlocks.  Fixes a bug where certain
4949         situations (like a broken pipe) could cause a Disconnect message
4950         to not be sent, tricking the bus into thinking a service was still
4951         there when the process had quit.
4952         (_dbus_connection_send_preallocated): Call
4953         _dbus_connection_send_preallocated_and_unlock().
4954         (_dbus_connection_send_and_unlock): Added.  Calls
4955         _dbus_connection_send_preallocated_and_unlock().
4956         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4957         (dbus_connection_send_with_reply): Update the dispatch status and
4958         unlock.
4959
4960         * mono/Service.cs (~Service): Added.  Removes the filter so that
4961         we don't get unmanaged code calling back into a GCed delegate.
4962         (RemoveFilter); Added.
4963
4964 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4965
4966         * dbus/dbus-message.c (dbus_message_iter_open_container):
4967         - Removed check for iterator type being an array because
4968         get_arg_type does not work with writer iterators
4969         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4970
4971 2005-02-07  Havoc Pennington  <hp@redhat.com>
4972
4973         * doc/dbus-specification.xml: some more language cleanups; add
4974         stuff about how to deal with invalid protocol and extension
4975         points; add _ to allowed chars in auth commands; add EXTENSION_
4976         auth command prefix
4977
4978 2005-02-06  Havoc Pennington  <hp@redhat.com>
4979
4980         * s/expected/required/ in a couple places for clarity
4981
4982 2005-02-07  Colin Walters  <walters@verbum.org>
4983
4984         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4985         sender or proposed_recipient.
4986
4987 2005-02-06  Havoc Pennington  <hp@redhat.com>
4988
4989         * dbus/dbus-message-factory.c (generate_special): more tests
4990
4991         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4992         array length that exceeds the maximum
4993
4994 2005-02-05  Havoc Pennington  <hp@redhat.com>
4995
4996         * dbus/dbus-message-factory.c (generate_special): more test cases,
4997         increasing coverage
4998
4999         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5000         reason why a signature was invalid
5001
5002         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5003         skip the length of the string before we look at it in validation
5004
5005         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5006         equal_substring
5007
5008         * dbus/dbus-message.c (_dbus_message_loader_new): default
5009         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5010
5011 2005-02-05  Havoc Pennington  <hp@redhat.com>
5012
5013         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5014         if the signature of a variant was empty
5015         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5016         struct with no element type)
5017
5018         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5019         mangled messages to break things
5020
5021 2005-02-04  Havoc Pennington  <hp@redhat.com>
5022
5023         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5024         g_quark_try_string() so it actually can return 0
5025         (dbus_g_proxy_connect_signal): ditto
5026
5027 2005-02-04  Havoc Pennington  <hp@redhat.com>
5028
5029         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5030         bogus warning
5031         (tristring_from_message): assert cleanly on null path/interface
5032         (should not be possible though I decided later)
5033         (dbus_g_proxy_dispose): move proxy manager unregistration here
5034         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5035         g_return_if_fail() checks
5036
5037 2005-02-04  Havoc Pennington  <hp@redhat.com>
5038
5039         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5040
5041         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5042         (with some minor changes)
5043
5044         * doc/dbus-specification.xml: add deprecated attribute to
5045         introspection format
5046
5047 2005-01-31  Havoc Pennington  <hp@redhat.com>
5048
5049         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5050         think it's sort of right
5051
5052 2005-01-30  Havoc Pennington  <hp@redhat.com>
5053
5054         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5055
5056 2005-01-30  Havoc Pennington  <hp@redhat.com>
5057
5058         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5059
5060         * autogen.sh: change to autotools 1.9
5061
5062         * glib/dbus-gproxy.c: completely change how signals work
5063         (dbus_g_proxy_add_signal): new function to specify signature of a
5064         signal
5065         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5066         and g_warning if the incoming message has the wrong signature.
5067
5068 2005-01-30  Havoc Pennington  <hp@redhat.com>
5069
5070         * tools/dbus-names-model.c (have_names_notify): fix this
5071
5072         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5073         up the string array handling a bit 
5074
5075 2005-01-30  Havoc Pennington  <hp@redhat.com>
5076
5077         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5078         (dbus_g_pending_call_cancel): new function
5079
5080         * dbus/dbus-glib.h: move GType decls for connection/message here;
5081         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5082         here, just kind of rationalizing how we handle all that
5083
5084         * tools/dbus-names-model.c: new file for a tree model listing the
5085         services on a bus
5086
5087         * tools/dbus-tree-view.c (model_new): use proper typing on the
5088         model rows
5089
5090 2005-01-30  Havoc Pennington  <hp@redhat.com>
5091
5092         * glib/dbus-gmain.c: add a custom GSource back that just checks
5093         whether the message queue has anything in it; otherwise, there are 
5094         cases where we won't see messages in the queue since there was no 
5095         IO visible to the glib main loop
5096
5097         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5098         increase default message timeout to 25 seconds
5099
5100 2005-01-30  Havoc Pennington  <hp@redhat.com>
5101
5102         * test/glib/test-profile.c (no_bus_stop_server): remove the
5103         warning about the g_warning that I just fixed
5104
5105         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5106         custom source, seems to be a lot easier to understand and work
5107         better.
5108
5109 2005-01-30  Havoc Pennington  <hp@redhat.com>
5110
5111         I think this main loop thing is conceptually broken, but here are 
5112         some band aids. I'll maybe rewrite it in a minute.
5113         
5114         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5115         custom GSource, so don't pass it in; confusing
5116         (gsource_server_finalize, gsource_connection_finalize): add
5117         finalize handlers that remove all the watches.  
5118
5119 2005-01-30  Havoc Pennington  <hp@redhat.com>
5120
5121         * glib/dbus-gobject.c (introspect_properties): fix the XML
5122         generated
5123
5124         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5125         which effectively detects the use of freed messages
5126
5127         * glib/dbus-gobject.c (handle_introspect): modify and return the
5128         reply message instead of the incoming message
5129
5130         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5131         gee, maybe it should SEND THE XML instead of just making a string
5132         and freeing it again ;-)
5133
5134         * tools/dbus-print-message.c (print_message): improve printing of
5135         messages
5136
5137         * configure.in: add debug-glib.service to the output
5138
5139 2005-01-30  Havoc Pennington  <hp@redhat.com>
5140
5141         dbus-viewer introspected and displayed the bus driver
5142         
5143         * dbus/dbus-object-tree.c 
5144         (object_tree_test_iteration): add tests for a handler registered on "/"
5145
5146         * dbus/dbus-object-tree.c
5147         (_dbus_decompose_path): fix to handle path "/" properly
5148         (run_decompose_tests): add tests for path decomposition
5149         
5150         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5151         properly
5152
5153         * glib/dbus-gobject.c (handle_introspect): fix quotes
5154
5155         * test/glib/run-test.sh: support launching the bus, then running
5156         dbus-viewer
5157
5158         * test/glib/test-service-glib.c (main): put in a trivial gobject
5159         subclass and register it on the connection
5160
5161         * bus/driver.c (bus_driver_handle_introspect): implement
5162         introspection of the bus driver service
5163
5164         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5165         identifiers, doctype decl
5166
5167         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5168         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5169         returning the service unchanged.
5170         (bus_driver_handle_message): remove old check for reply_serial in
5171         method calls, now the message type deals with that
5172         (bus_driver_handle_message): handle NULL interface
5173
5174         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5175
5176         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5177         -1 for len
5178
5179         * tools/dbus-viewer.c: add support for introspecting a service on
5180         a bus
5181
5182         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5183         (dbus_g_pending_call_unref): add
5184
5185 2005-01-29  Havoc Pennington  <hp@redhat.com>
5186
5187         * tools/dbus-tree-view.c: add support for displaying properties.
5188         (run dbus-viewer with an introspect xml file as arg, then resize
5189         the window so the tree elements show up, not sure what that is)
5190
5191         * glib/dbus-gobject.c (handle_introspect): return
5192         org.freedesktop.Properties and org.freedesktop.Introspectable
5193         interfaces when we are introspected.
5194
5195         * doc/dbus-specification.xml: allow empty interface name when 
5196         Get/Set a property
5197
5198 2005-01-29  Havoc Pennington  <hp@redhat.com>
5199
5200         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5201         though it uses glib, it could be extended for any binding in
5202         principle
5203
5204         * glib/dbus-gobject.c (gobject_message_function): change to the
5205         new way properties work
5206
5207         * dbus/dbus-protocol.h: add the new interfaces
5208
5209         * doc/dbus-specification.xml: document the introspection format,
5210         Introspectable interface, and add an org.freedesktop.Properties
5211         interface.
5212
5213         * glib/dbus-gparser.c: add support for a <property> element
5214
5215         * glib/dbus-gidl.c: add PropertyInfo
5216
5217         * glib/dbus-gobject.c (handle_introspect): put the outermost
5218         <node> outside the signal and property descriptions.
5219         (introspect_properties): export properties as <property> rather
5220         than as method calls
5221
5222 2005-01-28  Havoc Pennington  <hp@redhat.com>
5223
5224         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5225         related to authentication protocol
5226
5227 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5228
5229         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5230                 - BUS_ACTIVATION -> BUS_STARTER
5231                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5232                 - class MessageIter (__init__): Added recursion checking 
5233                 so we throw a nice error instead of just disconnecting from the
5234                 bus.
5235                 (get): Added arg_type parameter for recursion.
5236                 Removed the nil type
5237                 Added signiture type placeholder (not implemented)
5238                 Added struct type placeholder (not implemented)
5239                 Added varient type placeholder (not implemented)
5240                 Commented out dict type for now     
5241                 (get_element_type): renamed from get_array_type
5242                 (get_*): changed to use the dbus_message_iter_get_basic API
5243                 (get_*_array): removed in favor of recursive get_array method
5244                 (get_array): new recursive method which calls get to marshal
5245                 the elements of the array
5246                 (value_to_dbus_sig): New method returns the corrasponding
5247                 dbus signiture to a python value
5248                 (append): Comment out dict handling for now
5249                 Handle lists with the new recursive API
5250                 Comment out None handling for now
5251                 (append_nil): removed
5252                 (append_*): changed to use dbus_message_iter_append_basic API
5253                 (append_*_array): removed in favor of recursive append_array 
5254                 method
5255                 (__str__): Make it easier to print out recursive iterators
5256                 for debugging
5257                 - class Message (__str__): moved type inspection to the
5258                 MessageIter class' __str__ method
5259                 (get_iter): Added an append parameter wich defaults to False
5260                 If True use the new API's to create an append iterator
5261
5262         * python/dbus.py: Update to use new bindings API
5263                 - TYPE_ACTIVATION -> TYPE_STARTER
5264                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5265                 - class ActivationBus -> class StarterBus
5266                 - class RemoteObject (__call__): get an append iterator
5267                 - (_dispatch_dbus_method_call): get an append iterator
5268                 - class Object (emit_signal): get an append iterator
5269
5270         * python/examples/: Fixed up the examples to work with the new API
5271                 
5272 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5273
5274         * configure.in: Bump version up to 0.30.
5275
5276         * HACKING: Add a release item to bump the version number up after 
5277         a release.
5278
5279 2005-01-28  Havoc Pennington  <hp@redhat.com>
5280
5281         * doc/dbus-specification.xml: update to describe 16-bit types and
5282         dict entries
5283
5284         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5285         assertion
5286
5287         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5288         type
5289
5290         * dbus/dbus-marshal-recursive.c: implement
5291
5292 2005-01-27  Havoc Pennington  <hp@redhat.com>
5293
5294         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5295
5296         * configure.in: find the right type for 16 and 32 bit ints as well
5297         as 64
5298
5299         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5300         the 16-bit types so people don't have to stuff them in 32-bit or
5301         byte arrays.
5302
5303 2005-01-27  Havoc Pennington  <hp@redhat.com>
5304
5305         * dbus/dbus-message.c: byteswap the message if you init an
5306         iterator to read/write from it
5307         
5308         * dbus/dbus-marshal-byteswap.c: new file implementing 
5309         _dbus_marshal_byteswap()
5310
5311         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5312
5313 2005-01-26  Havoc Pennington  <hp@redhat.com>
5314         
5315         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5316         build, apparently - nobody noticed?)
5317         
5318 2005-01-26  Havoc Pennington  <hp@redhat.com>
5319
5320         * dbus/dbus-marshal-recursive.h: remove todo comment
5321
5322 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5323
5324         * Land the mono binding changes to conform to the new APIs.
5325
5326         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5327         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5328
5329         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5330         type code as a string.
5331         (InitAppending): Rename dbus_message_append_iter_init() to
5332         dbus_message_iter_init_append().
5333
5334         * mono/BusDriver.cs: Rename ServiceEventHandler to
5335         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5336         Rename ServiceOwnerChanged to NameOwnerChanged.
5337
5338         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5339         underlying C call.
5340
5341         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5342
5343         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5344         dbus_bus_acquire_service() to dbus_bus_request_name().
5345
5346         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5347         of Type.UnderlyingSystemType to get the correct element type for
5348         the array.
5349         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5350         dbus_message_get_{element|arg}_type() instead of
5351         dbus_message_iter_init_array_iterator().
5352         (Append): Replace dbus_message_iter_append_array() with
5353         dbus_message_iter_open_container() and
5354         dbus_message_iter_close_container().
5355
5356         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5357         types have been removed.
5358         
5359         * mono/DBusType/*.cs: Replace calls of
5360         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5361         but specify the type in the DllImport extern declaration.  Ditto
5362         for dbus_message_iter_append_[type]() ->
5363         dbus_message_iter_append_basic().
5364
5365         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5366         NameOwnerChangedHandler.
5367
5368 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5369
5370         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5371                 - get_base_service -> get_unique_name
5372                 - bus_get_base_service -> bus_get_unique_name
5373                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5374                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5375                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5376                 - bus_activate_service -> bus_start_service_by_name
5377                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5378                 - bus_acquire_service -> bus_request_name
5379                 - dbus_bus_acquire_service -> dbus_bus_request_name
5380                 - bus_service_exists -> bus_name_has_owner
5381                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5382
5383         * python/dbus.py: Rename of methods
5384                 - activate_service -> start_service_by_name
5385                 - bus_acquire_service -> bus_request_name
5386                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5387                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5388
5389         
5390 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5391
5392         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5393         signature for the method that can't be found.
5394
5395         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5396         the message has any arguments, we need to call
5397         _dbus_type_reader_get_current_type(), not
5398         _dbus_type_reader_has_next().
5399
5400 2005-01-24  Havoc Pennington  <hp@redhat.com>
5401
5402         * dbus/dbus-message-factory.c: more testing of message validation
5403
5404         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5405         header
5406
5407 2005-01-23  Havoc Pennington  <hp@redhat.com>
5408
5409         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5410         get this all working, not many tests in the framework yet though
5411
5412 2005-01-22  Havoc Pennington  <hp@redhat.com>
5413
5414         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5415         tutorial, based on work from David Wheeler.
5416
5417 2005-01-21  Havoc Pennington  <hp@redhat.com>
5418
5419         * dbus/dbus-bus.c: add more return_if_fail checks
5420
5421         * dbus/dbus-message.c (load_message): have the "no validation"
5422         mode (have to edit the code to toggle the mode for now though)
5423
5424         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5425         skips all validation; I want to use this at least for benchmark
5426         baseline, I'm not sure if it should be a publicly-available switch.
5427
5428 2005-01-21  Havoc Pennington  <hp@redhat.com>
5429
5430         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5431         toplevel doxygen group as the low-level API stuff
5432
5433         * dbus/dbus.h: note that libdbus is the low-level API
5434
5435 2005-01-20  Havoc Pennington  <hp@redhat.com>
5436
5437         * update-dbus-docs.sh: script to update docs on the web site, only
5438         works for me though. neener.
5439
5440 2005-01-20  Havoc Pennington  <hp@redhat.com>
5441
5442         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5443         code can reveal bugs in it
5444
5445 2005-01-20  Havoc Pennington  <hp@redhat.com>
5446
5447         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5448         select() version, patches from Tor Lillqvist
5449
5450 2005-01-20  Havoc Pennington  <hp@redhat.com>
5451
5452         * doc/dbus-tutorial.xml: replace > with &gt;
5453
5454         * bus/services.c (bus_registry_acquire_service): validate the name
5455         and return a better error if it's no good.
5456
5457         * doc/dbus-specification.xml: note NO_AUTO_START change
5458
5459         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5460         from AUTO_START, we're toggling the default
5461
5462         * bus/dispatch.c: adapt the tests to change of auto-start default
5463
5464 2005-01-18  Havoc Pennington  <hp@redhat.com>
5465
5466         * rename dbus-daemon-1 to dbus-daemon throughout
5467
5468 2005-01-18  Havoc Pennington  <hp@redhat.com>
5469
5470         * Throughout, grand renaming to strip out the use of "service",
5471         just say "name" instead (or "bus name" when ambiguous).  Did not
5472         change the internal code of the message bus itself, only the
5473         programmer-facing API and messages.
5474         
5475         * doc/dbus-specification.xml: further update the message bus section
5476         
5477         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5478         in error case
5479
5480 2005-01-17  Havoc Pennington  <hp@redhat.com>
5481
5482         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5483         ever
5484
5485         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5486         "invalid name character" not only non-ASCII
5487
5488         * doc/dbus-specification.xml: further update spec, message bus 
5489         parts are still out-of-date but the marshaling etc. stuff is now
5490         accurate-ish
5491
5492 2005-01-17  Havoc Pennington  <hp@redhat.com>
5493
5494         * doc/dbus-specification.xml: partially update spec
5495
5496 2005-01-17  Havoc Pennington  <hp@redhat.com>
5497
5498         * Throughout, align variant bodies according to the contained
5499         type, rather than always to 8. Should save a fair bit of space in
5500         message headers.
5501         
5502         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5503         fix handling of case where p == end
5504
5505         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5506
5507 2005-01-17  Havoc Pennington  <hp@redhat.com>
5508
5509         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5510
5511         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5512         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5513         are marshaling/unmarshaling a boolean.
5514
5515 2005-01-16  Havoc Pennington  <hp@redhat.com>
5516
5517         This is about it on what can be disabled/deleted from libdbus
5518         easily, back below 150K anyhow. Deeper cuts are more work than 
5519         just turning the code off as I've done here.
5520         
5521         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5522         signed int convenience funcs
5523
5524         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5525         verbose mode
5526
5527         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5528         things out of libdbus
5529
5530         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5531         
5532         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5533         tests-enabled-only, though it should probably be deleted)
5534
5535         * dbus/dbus-message-util.c: same stuff
5536
5537         * dbus/dbus-auth-util.c: same stuff
5538
5539 2005-01-16  Havoc Pennington  <hp@redhat.com>
5540
5541         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5542
5543         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5544         way for stripping down dbus-userdb.c stuff included in libdbus.
5545         Rename _dbus_parse_uid for consistency.
5546
5547 2005-01-16  Havoc Pennington  <hp@redhat.com>
5548
5549         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5550         name the assertion failed in
5551
5552         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5553         (_dbus_return_val_if_fail): assert that the name of the function
5554         containing the check doesn't start with '_', since we only want to 
5555         use checks on public functions
5556         
5557         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5558         checks to assertions
5559
5560         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5561         change checks to asserts for private function
5562
5563         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5564         to asserts for private function
5565
5566         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5567         broken assertion that was breaking make check
5568         (_dbus_type_reader_array_is_empty): remove this rather than fix
5569         it, was only used in assertions
5570
5571 2005-01-16  Havoc Pennington  <hp@redhat.com>
5572
5573         * test/unused-code-gc.py: hacky script to find code that's used
5574         only by the bus (not libdbus) or used only by tests or not used at
5575         all. It has some false alarms, but looks like we can clean up a
5576         lot of size from libdbus.
5577
5578         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5579         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5580         
5581 2005-01-16  Havoc Pennington  <hp@redhat.com>
5582
5583         * Add and fix docs according to Doxygen warnings throughout
5584         source.
5585         
5586         * dbus/dbus-marshal-recursive.c
5587         (_dbus_type_reader_array_is_empty): change this to just call
5588         array_reader_get_array_len() and make it static
5589
5590         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5591         from get_array_type
5592         (dbus_message_iter_init_append): rename from append_iter_init
5593
5594         * dbus/dbus-marshal-recursive.c
5595         (_dbus_type_reader_get_element_type): rename from
5596         _dbus_type_reader_get_array_type
5597
5598 2005-01-15  Havoc Pennington  <hp@redhat.com>
5599
5600         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5601
5602         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5603         when DBUS_DISABLE_ASSERT
5604         (_dbus_marshal_set_basic): be sure we align for the string length
5605
5606         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5607         this look faster
5608
5609         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5610         inline macro version
5611         (_dbus_string_set_byte): provide inline macro version
5612
5613 2005-01-15  Havoc Pennington  <hp@redhat.com>
5614
5615         * Land the new message args API and type system.
5616
5617         This patch is huge, but the public API change is not 
5618         really large. The set of D-BUS types has changed somewhat, 
5619         and the arg "getters" are more geared toward language bindings;
5620         they don't make a copy, etc.
5621
5622         There are also some known issues. See these emails for details
5623         on this huge patch:
5624         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5625         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5626         
5627         * dbus/dbus-marshal-*: all the new stuff
5628
5629         * dbus/dbus-message.c: basically rewritten
5630
5631         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5632         freed blocks to be all non-nul bytes so using freed memory is less
5633         likely to work right
5634
5635         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5636         DBUS_FAIL_MALLOC=N environment variable, so you can do
5637         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5638         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5639         thorough.
5640
5641         * qt/message.cpp: port to the new message args API
5642         (operator<<): use str.utf8() rather than str.unicode()
5643         (pretty sure this is right from the Qt docs?)
5644
5645         * glib/dbus-gvalue.c: port to the new message args API
5646
5647         * bus/dispatch.c, bus/driver.c: port to the new message args API
5648
5649         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5650         "locked" flag to TRUE and align_offset to 0; I guess we never
5651         looked at these anyhow, but seems cleaner.
5652
5653         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5654         move allocation padding macro to this header; use it to implement
5655         (_DBUS_STRING_STATIC): ability to declare a static string.
5656
5657         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5658         change to return TRUE if the interface is not set.
5659
5660         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5661         to dbus-marshal-validate.[hc]
5662
5663         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5664         dbus-internals.c
5665
5666         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5667         to dbus-marshal-*.[hc]
5668
5669         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5670         function here from dbus-marshal.c
5671
5672 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5673
5674         * NEWS: Update for 0.23.
5675
5676         * configure.in: Release 0.23.
5677
5678 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5679
5680         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5681         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5682         behind.
5683
5684         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5685         uninstall"
5686
5687         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5688         is an enum, get the enum's underlying type.  Another mono
5689         1.1.3 fix.
5690
5691 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5692
5693         Patch from Sjoerd Simons <sjoerd@luon.net>
5694
5695         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5696         DESTDIR.  It breaks stuff.
5697
5698 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5699
5700         Patch from Tambet Ingo <tambet@ximian.com>
5701
5702         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5703         calling type.GetElementType().  The code previously depended on
5704         broken Mono behavior, which was fixed in Mono 1.1.3.
5705
5706         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5707         Activator.CreateInstance() so that the class's constructor is
5708         called with the right parameters.
5709
5710 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5711
5712         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5713
5714         * dbus/dbus-connection.c
5715         (_dbus_connection_queue_received_message_link): Call
5716         _dbus_connection_remove_timeout() instead of the _locked()
5717         variant, since it's always called from
5718         _dbus_connection_handle_watch(), which handles the locking.
5719         Removed the _locked() variant since it's no longer used.
5720
5721 2005-01-03  Havoc Pennington  <hp@redhat.com>
5722
5723         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5724         return
5725         
5726 2004-12-26  Havoc Pennington  <hp@redhat.com>
5727
5728         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5729
5730 2005-01-03  Havoc Pennington  <hp@redhat.com>
5731
5732         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5733         floating point
5734
5735         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5736
5737 2005-01-02  Havoc Pennington  <hp@redhat.com>
5738
5739         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5740
5741 2005-01-01  Havoc Pennington  <hp@redhat.com>
5742
5743         * configure.in: add -Wfloat-equal
5744
5745 2005-01-01  Havoc Pennington  <hp@redhat.com>
5746
5747         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5748         for a variety of reasons '==' doesn't do this.
5749
5750 2004-12-31  Havoc Pennington  <hp@redhat.com>
5751
5752         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5753         I keep wishing I had
5754
5755 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5756
5757         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5758
5759 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5760
5761         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5762         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5763         dbus-protocol.h.  Because they are defines and not enums they are not
5764         autogenerated.
5765
5766 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5767
5768         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5769         dbus_bus_activate_service
5770
5771         * python/dbus.py (Bus.activate_service): activate a service on the
5772         bus.
5773
5774 2004-12-24  Havoc Pennington  <hp@redhat.com>
5775
5776         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5777         file format has also changed and I haven't adapted to that yet
5778         
5779         * Makefile.am: load .gcno files from latest gcc
5780
5781 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5782         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5783
5784         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5785         lowlevel binding
5786
5787         * python/dbus.py (get_unix_user): Added binding to 
5788         call dbus_bindings.bus_get_unix_user
5789
5790         * python/extract.py: Modified the proto_pat regex to
5791         handle unsigned long
5792
5793 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5794
5795         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5796         better POSIX compliance.
5797
5798 2004-12-19  Havoc Pennington  <hp@redhat.com>
5799
5800         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5801         (_dbus_string_insert_8_aligned): new functions
5802
5803         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5804
5805 2004-12-18  Havoc Pennington  <hp@redhat.com>
5806
5807         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5808         macro
5809
5810         * dbus/dbus-message.c: fix a comment, and add a still-unused
5811         not-implemented function
5812
5813         * dbus/dbus-marshal.h: fix comment
5814
5815         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5816
5817 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5818
5819         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5820         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5821         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5822         Type.UnderlyingSystemType to get the actual system type
5823         underneath.  This code previously depended on the broken Mono
5824         behavior, which was fixed in 1.1.3.
5825
5826 2004-11-27  Havoc Pennington  <hp@redhat.com>
5827
5828         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5829         are disabled
5830         (_dbus_string_get_const_data): inline when asserts are disabled
5831
5832         * dbus/dbus-message.c: record the _dbus_current_generation of
5833         creation so we can complain if dbus_shutdown() is used improperly.
5834         Do this only if checks are enabled.
5835
5836         * dbus/dbus-connection.c: ditto
5837         
5838 2004-11-26  Havoc Pennington  <hp@redhat.com>
5839
5840         * test/glib/test-profile.c: add with_bus mode to profile echoes
5841         that go through the bus.
5842
5843         * test/glib/run-test.sh: add ability to run test-profile
5844
5845         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5846         config file reload.
5847
5848 2004-11-26  Havoc Pennington  <hp@redhat.com>
5849
5850         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5851         thing was implemented
5852
5853 2004-11-26  Havoc Pennington  <hp@redhat.com>
5854
5855         * test/glib/test-profile.c: tweak a bit, add support for some
5856         made-up minimal malloc overhead with plain sockets, since in 
5857         real life some sort of buffers are unavoidable thus we could 
5858         count them in the theoretical best case
5859
5860 2004-11-26  Havoc Pennington  <hp@redhat.com>
5861
5862         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5863         where I was trying to cache one too many messages
5864
5865 2004-11-26  Havoc Pennington  <hp@redhat.com>
5866
5867         * dbus/dbus-message.c: reimplement message cache as an array which 
5868         makes the cache about twice as fast and saves maybe 1.5% overall
5869
5870 2004-11-26  Havoc Pennington  <hp@redhat.com>
5871
5872         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5873         message cache lock here
5874
5875 2004-11-26  Havoc Pennington  <hp@redhat.com>
5876
5877         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5878         the "char byte_order" next to each other to save 4 bytes
5879         (dbus_message_new_empty_header): reduce preallocation, since the
5880         message cache should achieve a similar effect
5881         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5882         message cache that keeps a few DBusMessage around in a pool,
5883         another 8% speedup or so.
5884
5885         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5886
5887 2004-11-25  Havoc Pennington  <hp@redhat.com>
5888
5889         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5890         to write, without reading or blocking, try it before the poll()
5891         and skip the poll() if nothing remains to write. This is about a
5892         3% speedup in the echo client/server
5893
5894 2004-11-25  Havoc Pennington  <hp@redhat.com>
5895
5896         The primary change here is to always write() once before adding
5897         the write watch, which gives us about a 10% performance increase.
5898         
5899         * dbus/dbus-transport-unix.c: a number of modifications to cope
5900         with removing messages_pending
5901         (check_write_watch): properly handle
5902         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5903         messages_pending stuff
5904         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5905         AUTHENTICATED cases
5906         (unix_handle_watch): after writing, see if the write watch can be
5907         removed
5908         (unix_do_iteration): assert that write_watch/read_watch are
5909         non-NULL rather than testing that they aren't, since they 
5910         aren't allowed to be NULL. check_write_watch() at the end so 
5911         we add the watch if we did not finish writing (e.g. got EAGAIN)
5912
5913         * dbus/dbus-transport-protected.h: remove messages_pending call,
5914         since it resulted in too much inefficient watch adding/removing; 
5915         instead we now require that the transport user does an iteration 
5916         after queueing outgoing messages, and after trying the first
5917         write() we add a write watch if we got EAGAIN or exceeded our 
5918         max bytes to write per iteration setting
5919
5920         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5921         function
5922
5923         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5924         freed and then accessed, valgrind flagged this bug, fix it
5925
5926         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5927         as the last valid field plus 1, where really it is equal to the
5928         last valid field. Corrects some message corruption issues.
5929
5930         * dbus/dbus-mainloop.c: verbosity changes
5931
5932         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5933         instead of aborting in one of the test codepaths
5934
5935         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5936         caused not printing the pid ever again if a verbose was missing
5937         the newline at the end
5938         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5939
5940         * dbus/dbus-connection.c: verbosity changes; 
5941         (dbus_connection_has_messages_to_send): new function
5942         (_dbus_connection_message_sent): no longer call transport->messages_pending
5943         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5944         try to write() immediately, so we can avoid the write watch. This
5945         is the core purpose of this patchset
5946         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5947         dump the outgoing message queue, so nobody will get confused
5948         trying to send them or thinking stuff is pending to be sent
5949
5950         * bus/test.c: verbosity changes
5951
5952         * bus/driver.c: verbosity/assertion changes
5953
5954         * bus/dispatch.c: a bunch of little tweaks to get it working again
5955         because this patchset changes when/where you need to block.
5956
5957 2004-11-23  Havoc Pennington  <hp@redhat.com>
5958
5959         * test/glib/test-profile.c: modify to accept a plain_sockets
5960         argument in which case it will bench plain sockets instead of
5961         libdbus, for comparison purposes.
5962
5963 2004-11-22  Havoc Pennington  <hp@redhat.com>
5964
5965         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5966         threads for more time, so sysprof can get a grip on it.
5967
5968         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5969         pointless variable
5970
5971 2004-11-13  Havoc Pennington  <hp@redhat.com>
5972
5973         * test/glib/test-profile.c: fix this thing up a bit
5974
5975         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5976         preallocation sizes by a fair bit; not sure if this will be an
5977         overall performance win or not, but it does reduce reallocs.
5978
5979         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5980         the test hack that forced constant realloc if asserts are
5981         disabled, so we can profile sanely. Sprinkle in some
5982         _DBUS_UNLIKELY() which are probably pointless, but before I
5983         noticed the real performance problem I put them in.
5984         (_dbus_string_validate_utf8): micro-optimize this thing a little
5985         bit, though callgrind says it didn't help; then special-case
5986         ascii, which did help a lot; then be sure we detect nul bytes as
5987         invalid, which is a bugfix.
5988         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5989         superstition; use memset to nul the padding instead of a manual
5990         loop.
5991         (_dbus_string_get_length): inline this as a
5992         macro; it showed up in the profile because it's used for loop
5993         tests and so forth
5994
5995 2004-11-10  Colin Walters  <walters@verbum.org>
5996
5997         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5998         for extra paranoia.
5999
6000 2004-11-09  Colin Walters  <walters@verbum.org>
6001
6002         * dbus/dbus-string.c (_dbus_string_get_length): New
6003         function, writes DBusString to C buffer.
6004
6005         * dbus/dbus-string.h: Prototype it.
6006
6007         * dbus/dbus-message.c (dbus_message_type_to_string): New
6008         function, converts message type into C string.
6009
6010         * dbus/dbus-message.h: Prototype it.
6011
6012         * bus/selinux.c (bus_selinux_check): Take source pid,
6013         target pid, and audit data.  Pass audit data to
6014         avc_has_perm.
6015         (log_audit_callback): New function, appends extra
6016         audit information.
6017         (bus_selinux_allows_acquire_service): Also take
6018         service name, add it to audit data.
6019         (bus_selinux_allows_send): Also take message
6020         type, interface, method member, error name,
6021         and destination, and add them to audit data.
6022         (log_cb): Initialize func_audit.
6023         
6024         * bus/selinux.h (bus_selinux_allows_acquire_service)
6025         (bus_selinux_allows_send): Update prototypes 
6026
6027         * bus/services.c (bus_registry_acquire_service): Pass
6028         service name to bus_selinux_allows_acquire_service.
6029
6030         * bus/bus.c (bus_context_check_security_policy): Pass
6031         additional audit data.  Move assignment of dest
6032         to its own line.
6033
6034 2004-11-07  Colin Walters  <walters@verbum.org>
6035
6036         * dbus/dbus-transport-unix.c (do_authentication): Always
6037         initialize auth_completed.
6038         
6039 2004-11-07  Colin Walters  <walters@verbum.org>
6040
6041         * bus/bus.c (load_config): Break into three
6042         separate functions: process_config_first_time_only,
6043         process_config_every_time, and process_config_postinit.
6044         (process_config_every_time): Move call of
6045         bus_registry_set_service_context_table into
6046         process_config_postinit.
6047         (process_config_postinit): New function, does
6048         any processing that needs to happen late
6049         in initialization (and also on reload).
6050         (bus_context_new): Instead of calling load_config,
6051         open config parser here and call process_config_first_time_only
6052         and process_config_every_time directly.  Later, after
6053         we have forked but before changing UID,
6054         invoke bus_selinux_full_init, and then call
6055         process_config_postinit.
6056         (bus_context_reload_config): As in bus_context_new,
6057         load parse file inside here, and call process_config_every_time
6058         and process_config_postinit.
6059
6060         * bus/services.h, bus/services.c
6061         (bus_registry_set_service_context_table): Rename
6062         from bus_registry_set_sid_table.  Take string hash from config
6063         parser, and convert them here into SIDs.
6064
6065         * bus/config-parser.c (struct BusConfigParser): Have
6066         config parser only store a mapping of service->context
6067         string.
6068         (merge_service_context_hash): New function.
6069         (merge_included): Merge context string hashes instead
6070         of using bus_selinux_id_table_union.
6071         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6072         simply create a new string hash.
6073         (bus_config_parser_unref): Unref it.
6074         (start_selinux_child): Simply insert strings into hash,
6075         don't call bus_selinux_id_table_copy_over.
6076
6077         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6078         (bus_selinux_id_table_copy_over): Delete.
6079
6080 2004-11-03  Colin Walters  <walters@verbum.org>
6081
6082         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6083         variables.
6084         
6085 2004-11-03  Colin Walters  <walters@verbum.org>
6086
6087         * bus/test-main.c (test_pre_hook): Fix test logic,
6088         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6089
6090 2004-11-02  Colin Walters  <walters@redhat.com>
6091
6092         * bus/selinux.c (bus_selinux_init): Split into two functions,
6093         bus_selinux_pre_init and bus_selinux_post_init.
6094         (bus_selinux_pre_init): Just determine whether SELinux is
6095         enabled.
6096         (bus_selinux_post_init): Do everything else.
6097
6098         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6099         config file, and bus_selinux_post_init after.  This ensures that
6100         we don't lose the policyreload notification thread that
6101         bus_selinux_init created before forking previously.
6102         
6103         * bus/test-main.c (test_pre_hook): Update for split.
6104
6105 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6106
6107         Patch from Johan Fischer <linux@fischaz.com>
6108         
6109         * mono/doc/Makefile.am (install-data-local): Added directory
6110         install for DESTDIR
6111
6112 2004-10-29  Colin Walters  <walters@redhat.com>
6113
6114         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6115         parameter for fd to write pid to.       
6116
6117         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6118         
6119         * bus/bus.c (bus_context_new): Pass print_pid_fd
6120         to _dbus_become_daemon (bug #1720)
6121
6122 2004-10-29  Colin Walters  <walters@redhat.com>
6123
6124         Patch from Ed Catmur <ed@catmur.co.uk>
6125
6126         * mono/doc/Makefile.am (install-data-local): Handle
6127         DESTDIR.
6128
6129 2004-10-29  Colin Walters  <walters@redhat.com>
6130
6131         * bus/.cvsignore, qt/.cvsignore: Update.
6132
6133 2004-10-29  Colin Walters  <walters@redhat.com>
6134
6135         Patch from Kristof Vansant <de_lupus@pandora.be>
6136
6137         * configure.in: Detect Slackware.
6138         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6139         * bus/rc.messagebus.in: New file.
6140
6141 2004-10-29  Colin Walters  <walters@redhat.com>
6142
6143         * tools/dbus-monitor.c (filter_func): Return
6144         DBUS_HANDLER_RESULT_HANDLED in filter function
6145         for now.  See:
6146         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6147
6148 2004-10-29  Colin Walters  <walters@redhat.com>
6149
6150         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6151
6152         * bus/services.c (bus_registry_acquire_service): 
6153         Correctly retrieve service name from DBusString
6154         for printing.
6155
6156 2004-10-29  Colin Walters  <walters@redhat.com>
6157
6158         * dbus/dbus-glib.h: Update documentation to not
6159         refer to internal APIs.
6160
6161 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6162
6163         * mono/Arguments.cs (GetDBusTypeConstructor):
6164         type.UnderlyingSystemType will return "System.Byte" if you do it
6165         on "byte[]", which is not what we want.  So check the type.IsArray
6166         property and use System.Array instead.
6167
6168 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6169
6170         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6171         the DBusUserInfo structure since this is passed into the function.
6172         This would cause a double free when the function that allocated
6173         the structure would try to free it when an error occured.
6174
6175         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6176         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6177         for service activation to avoid 32bit/64bit parallel install issues
6178
6179 2004-10-21  Colin Walters  <walters@verbum.org>
6180
6181         * AUTHORS: Fix my email address, the @gnu.org one
6182         has been bouncing for some time.  Also add J5.
6183         
6184 2004-10-21  Colin Walters  <walters@verbum.org>
6185
6186         * dbus/dbus-transport-unix.c (do_authentication): Return
6187         authentication status to callers.
6188         (unix_handle_watch): If we completed authentication this round,
6189         don't do another read.  Instead wait until the next iteration,
6190         after we've read any pending data in the auth buffer.
6191         (unix_do_iteration): Ditto.
6192         (unix_handle_watch): Updated for new do_authentication prototype.
6193
6194 2004-10-18  Colin Walters  <walters@verbum.org>
6195
6196         * bus/selinux.c (bus_selinux_enabled): Handle
6197         --disable-selinux case.
6198         
6199 2004-10-18  Colin Walters  <walters@verbum.org>
6200
6201         * bus/selinux.h: Add bus_selinux_enabled.
6202         
6203         * bus/selinux.c (bus_selinux_enabled): Implement it.
6204         
6205         * bus/config-parser.c (struct include): Add
6206         if_selinux_enabled member.
6207         (start_busconfig_child): Parse if_selinux_enabled
6208         attribute for include.
6209         (bus_config_parser_content): Handle it.
6210
6211         * bus/session.conf.in, bus/system.conf.in: Add
6212         inclusion of context mapping to default config files;
6213         conditional on SELinux being enabled.
6214         
6215         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6216         
6217         * test/data/invalid-config-files/badselinux-1.conf, 
6218         test/data/invalid-config-files/badselinux-2.conf:
6219         Test files for bad syntax.
6220         
6221 2004-10-17  Colin Walters  <walters@verbum.org>
6222
6223         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6224         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6225         format specifier mismatches.
6226
6227 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6228
6229         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6230         format string.
6231
6232         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6233         pointer (bug #1540, Leonardo Boiko).
6234
6235 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6236
6237         * mono/BusDriver.cs: Changed BusDriver struct to remove
6238         the ServiceCreated and ServiceDeleted events and replace them
6239         with the new ServiceOwnerChanged event.
6240
6241         * mono/example/BusListener.cs: Added a new example program,
6242         which listens for and reports any ServiceOwnerChanged events
6243         on the bus driver.
6244
6245         * mono/example/Makefile.am (DESTDIR): Build changes for the
6246         new BusListener.cs example.
6247
6248 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6249
6250         * bus/signals.c (bus_match_rule_parse): validate the components of
6251         match rules (bug #1439).
6252
6253         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6254
6255 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6256
6257         * doc/dbus-specification.xml: document ServiceOwnerChanged
6258         signal.
6259         
6260         * bus/driver.c, bus/driver.h, bus/services.c: Use
6261         ServiceOwnerChanged signal instead of ServiceCreated and
6262         ServiceDeleted.
6263         
6264         * bus/dispatch.c: update testcase for the new signal.
6265
6266 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6267
6268         Patch from Nat Friedman <nat@novell.com>
6269
6270         * mono/Makefile.am: A number of small build fixes to allow "make
6271         distcheck" to succeed.
6272
6273         * mono/example/Makefile.am: "make distcheck" fixes.
6274
6275         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6276         key in @srcdir@.
6277
6278         * test/Makefile.am: "make distcheck" fixes.
6279
6280 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6281
6282         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6283
6284         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6285
6286         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6287         messages after the first one (bug #1389).
6288         
6289         * bus/dispatch.c (check_double_hello_message): add a test case for
6290         the double hello message bug.
6291         (check_existent_service_activation): fix check of spawning error.
6292         
6293 2004-09-16  David Zeuthen  <david@fubar.dk>
6294
6295         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6296
6297 2004-09-12  David Zeuthen  <david@fubar.dk>
6298
6299         Patch from Kay Sievers <kay.sievers@vrfy.org>
6300
6301         * bus/bus.c (bus_context_new):
6302         * bus/bus.h:
6303         * bus/main.c (usage)
6304         (main):
6305         Add commandline option --nofork to override configuration file
6306         setting.
6307
6308 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6309
6310         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6311         compilers don't like it (bug #974).
6312
6313 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6314
6315         * qt/connection.*: Applied patch by Jérôme Lodewyck
6316         <lodewyck@clipper.ens.fr> to integrate an existing
6317         connection into the Qt eventloop
6318
6319 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6320
6321         * mono/BusDriver.cs: Added.  This is a class for interacting with
6322         the org.freedesktop.DBus service.
6323
6324         * mono/Message.cs: Added a mechanism to expose the message that is
6325         currently being dispatched via the static Message.Current
6326         property.  Added Message.Sender and Message.Destination
6327         properties.
6328
6329         * mono/Handler.cs: Expose the dispatched message via
6330         Message.Current when handling method calls.
6331
6332         * mono/Service.cs: Expose the dispatched message via
6333         Message.Current when handling signal emissions.
6334         
6335         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6336         Connection.BaseService property.
6337
6338 2004-08-28  Havoc Pennington  <hp@redhat.com>
6339
6340         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6341
6342         More fixes from Steve Grubb
6343         
6344         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6345         (_dbus_listen_tcp_socket): fix fd leak
6346
6347         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6348         EINTR to a bit lower in the code
6349
6350 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6351
6352         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6353         TRUE if we are inquiring about the existence of the built-in
6354         org.freedesktop.DBus service.
6355
6356 2004-08-25  John Palmieri  <johnp@redhat.com>
6357         * bus/config-parser.c:
6358         (struct PolicyType): Add POLICY_CONSOLE
6359         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6360         (start_busconfig_child): Sets up console element when
6361         <policy at_console=""> is encountered in a policy file
6362         (append_rule_from_element): Convert console elements to console
6363         rules.
6364
6365         * bus/policy.c: 
6366         (bus_policy_create_client_policy): Add console rules to the client
6367         policy based on if the client is at the console
6368         (bus_policy_append_console_rule): New function for adding a
6369         console rule to a policy
6370         (bus_policy_merge): Handle console rule merging
6371
6372         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6373         where we check for console user files
6374         
6375         * dbus/dbus-sysdeps.c:
6376         (_dbus_file_exists): New function which checks if the given
6377         file exists
6378         (_dbus_user_at_console): New function which does the system
6379         specific process of checking if the user is at the console
6380
6381         * dbus/dbus-userdb.c:
6382         (_dbus_is_console_user): New function converts a UID to user name
6383         and then calls the system specific _dbus_user_at_console to 
6384         see if the user is at the console and therefor a console user
6385
6386 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6387
6388         * bus/config-parser.c (set_limit):
6389         * bus/dbus-daemon-1.1.in:
6390         * test/data/valid-config-files/many-rules.conf: set the
6391         max_match_rules_per_connection limt from the config file. 
6392
6393         * doc/busconfig.dtd: update the DTD.
6394
6395         * bus/driver.c: remove some unused variables.
6396
6397 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6398
6399         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6400         it's been replaced by dbus_g_bus_get
6401
6402 2004-08-23  Colin Walters  <walters@redhat.com>
6403
6404         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6405
6406         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6407
6408         * bus/selinux.c: Create a thread for policy reload notification.
6409         (bus_selinux_get_policy_root): Implement.
6410
6411         * bus/config-parser.c (start_busconfig_child)
6412         (bus_config_parser_content): Support SELinux-root relative
6413         inclusion.
6414
6415         * configure.in <HAVE_SELINUX>: Add -lpthread.
6416         
6417         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6418         (test_post_hook): Move memory checking into here.
6419         (test_pre_hook, test_post_hook): Move SELinux checks in
6420         here, but conditional on a DBUS_TEST_SELINUX environment
6421         variable.  Unfortunately we can't run the SELinux checks
6422         as a normal user, since they won't have any permissions
6423         for /selinux.  So this will have to be tested manually
6424         for now, until we have virtualization for most of
6425         libselinux.
6426         
6427 2004-08-23  Havoc Pennington  <hp@redhat.com>
6428
6429         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6430         drop supplementary groups, suggested by Steve Grubb
6431
6432 2004-08-20  Colin Walters  <walters@redhat.com>
6433
6434         * bus/config-parser.c (start_busconfig_child): Remove some unused
6435         variables.
6436         
6437         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6438         warning.
6439
6440 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6441
6442         * configure.in: If --enable-mono is passed in, if we can't find
6443         mono error out.
6444
6445         * mono/Makefile.am: Use /gacutil to install assemblies into the
6446         GAC and not /root.
6447
6448 2004-08-12  Havoc Pennington  <hp@redhat.com>
6449
6450         * NEWS: update for 0.22
6451
6452         * configure.in: release 0.22
6453
6454 2004-08-11  Colin Walters  <walters@redhat.com>
6455
6456         * tools/dbus-send.c (main, usage): Add --reply-timeout
6457         argument.
6458
6459 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6460
6461         * bus/bus.c (process_config_first_time_only): get rid of an unused
6462         DBusError that was causing a memoy leak (bug #989).
6463
6464         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6465         fix compilation on Solaris/Forte C (bug #974)
6466
6467         * bus/main.c (main): plug two minuscule memleaks.
6468
6469 2004-08-10  Havoc Pennington  <hp@redhat.com>
6470
6471         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6472
6473 2004-08-09  Havoc Pennington  <hp@redhat.com>
6474
6475         * COPYING: switch to Academic Free License version 2.1 instead of
6476         2.0, to resolve complaints about patent termination clause.
6477
6478 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6479
6480         * README: added documentation for the --enable-python 
6481         configure switch.
6482
6483 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6484
6485         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6486         _unref in the SELinux support.
6487
6488         * doc/busconfig.dtd: update DTD for SELinux support.
6489
6490         * bus/config-loader-libxml.c: fix error handler and parser
6491         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6492
6493         * configure.in: remove the warning about libxml2.
6494
6495         * dbus/dbus-bus.c: silence doxygen warning.
6496
6497 2004-07-31  Colin Walters  <walters@redhat.com>
6498
6499         * configure.in: Move #error in SELinux check to its own line.
6500
6501 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6502
6503         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6504         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6505         dbus_error_set.
6506
6507         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6508         broken by the change in the _SET_OOM macros.
6509
6510 2004-07-31  Colin Walters  <walters@redhat.com>
6511
6512         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6513         BUS_SET_OOM.
6514
6515 2004-07-31  Colin Walters  <walters@redhat.com>
6516
6517         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6518         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6519         AC_MSG_CHECKING.
6520
6521 2004-07-24  Havoc Pennington  <hp@redhat.com>
6522
6523         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6524
6525         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6526         functionality
6527
6528         * configure.in: add --enable-selinux
6529         
6530         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6531
6532         * bus/main.c (main): initialize and shut down selinux
6533
6534         * bus/connection.c: store SELinux ID on each connection, to avoid 
6535         repeated getting of the string context and converting it into 
6536         an ID
6537
6538         * bus/bus.c (bus_context_get_policy): new accessor, though it
6539         isn't used
6540         (bus_context_check_security_policy): check whether the security
6541         context of sender connection can send to the security context of
6542         recipient connection
6543
6544         * bus/config-parser.c: add parsing for <selinux> and <associate>
6545         
6546         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6547         implement dbus_connection_get_unix_fd()
6548
6549         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6550         function, used by the selinux stuff
6551         
6552 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6553
6554         * bus/config-loader-libxml.c: complete the implementation of
6555         libxml backend for config file loader. Doesn't work with full OOM
6556         test yet. 
6557         
6558         * configure.in: change error when selecting libxml into a warning.
6559         
6560         * test/data/invalid-config-files: add two non-well-formed XML
6561         files. 
6562         
6563         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6564         
6565         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6566         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6567         be necessary to read all the buffer. (bug #894)
6568
6569         * bus/activation.c (bus_activation_activate_service): fix a
6570         potential assertion failure (bug #896). Small optimization in the
6571         case of auto-activation messages.
6572
6573         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6574         add test case for byte-through-vararg bug (#901). patch by Kimmo
6575         Hämäläinen. 
6576
6577 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6578
6579         * python/dbus.py:
6580         * python/dbus_bindings.pyx.in:
6581         Add dbus.init_gthreads (), allow emit_signal to pass
6582         arguments to the signal.
6583         
6584 2004-07-24  Havoc Pennington  <hp@redhat.com>
6585
6586         * AUTHORS: add some people, not really comprehensively, let me
6587         know if I missed you
6588
6589 2004-07-24  Havoc Pennington  <hp@redhat.com>
6590
6591         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6592         Owen
6593
6594         * test/Makefile.am (DIST_SUBDIRS): here also
6595
6596 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6597
6598         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6599         breaking build on Solaris, reported by Farhad Saberi on the ML.
6600
6601         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6602         va_arg invocation to account for integer promotion in the case of
6603         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6604
6605         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6606         _dbus_list_get_first_link, not _dbus_list_get_first.
6607
6608         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6609
6610         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6611         handler functions so that the asserts in _dbus_object_subtree_unref
6612         do not fail.
6613
6614         * dbus/dbus-transport-unix.c (do_reading):
6615         _dbus_transport_queue_messages return value is of type
6616         dbus_bool_t, not DBusDispatchStatus.
6617         
6618 2004-07-19  David Zeuthen  <david@fubar.dk>
6619
6620         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6621
6622         * bus/dispatch.c:
6623         (check_get_connection_unix_user): Debug says GetProperty; but the
6624         method is called GetConnectionUnixUser
6625         (check_get_connection_unix_process_id): New function
6626         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6627         also call check_get_connection_unix_process_id()
6628         
6629         * bus/driver.c:
6630         (bus_driver_handle_get_connection_unix_process_id): New function,
6631         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6632         interface
6633         
6634         * dbus/dbus-auth.c:
6635         (handle_server_data_external_mech): Set pid from the credentials
6636         obtained from the socket
6637         
6638         * dbus/dbus-connection.c:
6639         (dbus_connection_get_unix_process_id): New function
6640         
6641         * dbus/dbus-connection.h: 
6642         Add prototype for dbus_connection_get_unix_process_id
6643         
6644         * dbus/dbus-transport.c:
6645         (_dbus_transport_get_unix_process_id): New function
6646         
6647         * dbus/dbus-transport.h:
6648         Add prototype for _dbus_transport_get_unix_process_id
6649         
6650 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6651
6652         * dbus/dbus-message.c: Message counter fix, patch by Christian
6653         Hammond <chipx86@gnupdate.org>
6654
6655 2004-07-18  Seth Nickell  <seth@gnome.org>
6656
6657         * python/dbus.py:
6658         * python/dbus_bindings.pyx.in:
6659         * python/tests/test-client.py:
6660
6661         Add dbus.ByteArray and dbus_bindings.ByteArray
6662         types so that byte streams can be passed back.
6663
6664         Give jdahlin the heaps of credit that are so
6665         rightfully his.
6666         
6667 2004-07-12  Seth Nickell  <seth@gnome.org>
6668
6669         * python/dbus.py:
6670
6671         Add message argument to the default object_method_handler
6672         function.
6673         
6674         * python/dbus_bindings.pyx.in:
6675
6676         Automatically return NIL when passed an empty list
6677         (we can't pass back a list since lists are typed
6678         and we don't have any idea what type the the client
6679         intended the list to be... :-( )
6680         
6681 2004-07-10  Seth Nickell  <seth@gnome.org>
6682
6683         * python/examples/Makefile.am:
6684
6685         Fix distcheck breakage caused by new examples.
6686
6687 2004-07-10  Seth Nickell  <seth@gnome.org>
6688
6689         * python/dbus.py:
6690
6691         Add "message" argument to service-side dbus.Object
6692         methods. This will break existing services written
6693         using the python bindings, but will allow extraction
6694         of all the message information (e.g. who its from).
6695
6696         Add improved "object oriented" signal handling/emission.
6697         
6698         * python/examples/example-service.py:
6699
6700         Nix this example.
6701         
6702         * python/examples/example-signal-emitter.py:
6703         * python/examples/example-signal-recipient.py:
6704
6705         Two new examples that show how to emit and receive
6706         signals using the new APIs.
6707         
6708         * python/examples/example-signals.py:
6709         * python/examples/gconf-proxy-service.py:
6710         * python/examples/gconf-proxy-service2.py:
6711
6712         Add "message" argument to service methods.
6713
6714 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6715
6716         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6717         * dbus/bus.c (dbus_bus_get_unix_user)
6718         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6719         method of org.freedesktop.DBus interface.
6720
6721         * bus/dispatch.c: test case
6722
6723 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6724
6725         * python/Makefile.am: switched include directory from glib/ to dbus/
6726         since dbus-glib.h moved
6727  
6728 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6729
6730         * configure.in: prevent building the gcj stuff and libxml loader
6731         since they are broken.
6732
6733 2004-06-20  Havoc Pennington  <hp@redhat.com>
6734
6735         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6736         codes from the dbus error names
6737         
6738         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6739         as dbus/dbus-glib.h and that breakage is now visible due to 
6740         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6741         
6742         * glib/dbus-glib.h: s/gproxy/g_proxy/
6743
6744         * dbus/dbus-shared.h: new header to hold stuff shared with
6745         binding APIs
6746         
6747         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6748         than dbus-errors.h
6749
6750         * glib/dbus-glib.h (dbus_set_g_error): move to
6751         dbus-glib-lowlevel.h
6752
6753         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6754         of stuff to enable this
6755
6756         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6757
6758         * a bunch of other changes with the same basic "separate glib 
6759         bindings from dbus.h" theme
6760         
6761 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6762
6763         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6764
6765         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6766
6767 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6768
6769         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6770         the reply value of the ServiceExists message.
6771
6772 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6773
6774         * python/dbus_bindings.pyx.in: No longer need to parse path
6775         elements and pass them as arrays of strings.  The C API now
6776         accepts plain path strings.
6777         (_build_parsed_path): removed 
6778
6779 2004-06-07  Havoc Pennington  <hp@redhat.com>
6780
6781         * doc/TODO: remove auto-activation item since it's done; sort
6782         items by importance/milestone
6783
6784 2004-06-07  Havoc Pennington  <hp@redhat.com>
6785
6786         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6787         random signature when using REQUIRED_FIELDS (this hack won't work
6788         in the long term)
6789
6790         * dbus/dbus-message.c: change the signature to be a header field,
6791         instead of message->signature special-case string. Incremental
6792         step forward. Then we can fix up code to send the signature in the
6793         message, then fix up code to validate said signature, then fix up
6794         code to not put the typecodes inline, etc.
6795         (load_one_message): don't make up the signature after the fact
6796         (decode_header_data): require signature field for the known
6797         message types
6798
6799         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6800
6801         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6802
6803 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6804
6805         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6806
6807         * mono/Handler.cs: Updated to follow new path argument for
6808         (un-)registering objects.
6809
6810         * mono/example/Makefile.am:
6811         * mono/Makefile.am:
6812         * configure.in: Bumped required version for mono and use new -pkg
6813         syntax for deps
6814
6815 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6816
6817         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6818         registration functions take the path argument as char* instead of
6819         char**.
6820
6821         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6822         split off the path decompostion part of
6823         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6824         warnings. 
6825
6826         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6827         
6828 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6829  
6830         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6831         machine approach.  A state is implemented as a function that
6832         handles incoming events as specified for that state.
6833         
6834         * doc/dbus-specification.xml: Update auth protocol state machine
6835         specification to match implementation.  Remove some leftover
6836         base64 examples.
6837
6838 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6839
6840         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6841         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6842         quiet doxygen.
6843
6844         * Doxyfile.in: remove deprecated options.
6845
6846         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6847         glib/test-thread.h, glib/test-thread-client.c,
6848         glib/test-thread-server.c, glib/test-profile.c,
6849         glib/test-dbus-glib.c: remove these unused files.
6850
6851 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6852
6853         * dbus/dbus-object-tree.c
6854         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6855         non-fallback handlers (bug #684).
6856         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6857         (find_subtree_recurse): report wether the returned subtree is an
6858         exact match or a "fallback" match higher up in the tree.
6859         (object_tree_test_iteration): update test case.
6860
6861 2004-06-01  Seth Nickell  <seth@gnome.org>
6862
6863         * python/dbus_bindings.pyx.in:
6864         * python/tests/test-client.py:
6865
6866         Round off basic type support. Add dicts (yay!), and 
6867         remaining array types.
6868
6869         Make MessageIter more general so it works for dicts too.
6870
6871         Mark all loop variables as C integers.
6872         
6873 2004-05-31  Havoc Pennington  <hp@redhat.com>
6874
6875         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6876         "in" before "out"
6877
6878         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6879
6880         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6881         option that runs the tests, and start filling in some code
6882         including for starters just dumping the interfaces to stdout
6883
6884         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6885
6886         * test/data/valid-introspection-files/lots-of-types.xml: test of
6887         an example introspection file
6888
6889         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6890         "node" (I think...)
6891
6892 2004-05-31  Seth Nickell  <seth@gnome.org>
6893
6894         * python/dbus_bindings.pyx.in:
6895         * python/tests/test-client.py:
6896
6897         Test Suite: 1
6898         Python Bindings: 0
6899
6900         Fix string array memory trashing bug... oops...
6901
6902 2004-05-30  Seth Nickell  <seth@gnome.org>
6903
6904         * python/dbus.py:
6905
6906         Add a nicer-but-less-flexible alternate API for handling 
6907         calls to virtual objects in dbus.ObjectTree.
6908
6909         Screw up the argument order to the dbus.Object constructor
6910         for consistency with dbus.ObjectTree (and to make dbus_methods
6911         optional for future extension)
6912         
6913         * python/examples/Makefile.am:
6914         * python/examples/gconf-proxy-service.py:
6915         * python/examples/gconf-proxy-service2.py:
6916
6917         Alternate implementation of gconf-proxy-service using the
6918         nicer dbus.ObjectTree API.
6919         
6920         * python/examples/example-service.py:
6921         * python/tests/test-server.py
6922
6923         Reverse the argument order to deal with dbus.Object constructor
6924         changes.
6925         
6926 2004-05-30  Seth Nickell  <seth@gnome.org>
6927
6928         * python/examples/example-client.py:
6929         * python/examples/example-service.py:
6930
6931         Take it back. Lists seem to work but they're broken
6932         in the test suite. Make the base examples use
6933         lists (works fine).
6934
6935 2004-05-30  Seth Nickell  <seth@gnome.org>
6936
6937         * python/dbus_bindings.pyx.in:
6938         * python/tests/test-client.py:
6939
6940         Add some more tests and fix errors that crop up.
6941         Unfortunately, currently it seems like marshalling
6942         and unmarshalling of lists is completely broken :-(
6943
6944 2004-05-30  Seth Nickell  <seth@gnome.org>
6945
6946         * python/dbus_bindings.pyx.in:
6947
6948         Add support for ObjectPath type.
6949
6950         * python/dbus.py:
6951
6952         Refactor message handling code to a common function.
6953         
6954         * python/tests/test-client.py:
6955         * python/tests/test-server.py:
6956
6957         Add tests that check to make sure values of all types
6958         can be echoed from a service w/o mangling.
6959         
6960 2004-05-29  Seth Nickell  <seth@gnome.org>
6961
6962         * python/dbus.py:
6963
6964         Add ObjectTree class which allows implementation
6965         of trees of "virtual" objects. Basically the python
6966         wrapper for "register_fallback".
6967         
6968         * python/examples/Makefile.am
6969         * python/examples/gconf-proxy-client.py:
6970         * python/examples/gconf-proxy-service.py:
6971
6972         Implement a simple GConf proxy service that supports
6973         get/set on string and int GConf keys using the ObjectTree.
6974         
6975 2004-05-29  Seth Nickell  <seth@gnome.org>
6976
6977         * python/dbus.py:
6978         * python/examples/example-client.py:
6979         * python/examples/example-service.py:
6980         * python/examples/list-system-services.py:
6981
6982         Add SessionBus, SystemBus and ActivationBus classes
6983         so you don't need to know the special little BUS_TYPE
6984         flag.
6985         
6986 2004-05-29  Havoc Pennington  <hp@redhat.com>
6987
6988         * bus/config-parser.c (process_test_valid_subdir): temporarily
6989         stop testing config parser OOM handling, since expat has issues
6990         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6991
6992         * bus/dbus-daemon-1.1.in: change requested_reply to
6993         send_requested_reply/receive_requested_reply so we can send the
6994         replies, not just receive them.
6995
6996         * bus/config-parser.c: parse the new
6997         send_requested_reply/receive_requested_reply
6998
6999         * bus/policy.c (bus_client_policy_check_can_send): add
7000         requested_reply argument and use it
7001
7002         * bus/bus.c (bus_context_check_security_policy): pass through
7003         requested_reply status to message send check
7004
7005         * bus/system.conf.in: adapt to requested_reply change
7006         
7007 2004-05-28  Havoc Pennington  <hp@redhat.com>
7008
7009         * test/glib/test-service-glib.c (main): remove unused variable
7010
7011         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7012
7013         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7014         from the enum, no longer in use.
7015
7016         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7017         works right.
7018
7019         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7020         whether error_name passed in is a valid error name.
7021
7022 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7023
7024         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7025         OBJECT_PATH and OBJECT_PATH_ARRAY
7026
7027 2004-05-28  Seth Nickell  <seth@gnome.org>
7028
7029         * python/examples/Makefile.am:
7030
7031         Forget to add Makefile.am. Do not pass go.
7032
7033 2004-05-28  Michael Meeks  <michael@ximian.com>
7034
7035         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7036         fix no int64 case.
7037
7038         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7039
7040         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7041         (_dbus_message_iter_get_basic_type_array): impl.
7042         drastically simplify ~all relevant _get methods to use these.
7043         (_dbus_message_iter_append_basic_array),
7044         (dbus_message_iter_append_basic): impl
7045         drastically simplify ~all relevant _append methods to use these.
7046
7047         * dbus/dbus-message-builder.c (parse_basic_type) 
7048         (parse_basic_array, lookup_basic_type): impl.
7049         (_dbus_message_data_load): prune scads of duplicate /
7050         cut & paste coding.
7051
7052         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7053         (_dbus_demarshal_basic_type): implement,
7054         (demarshal_and_validate_len/arg): beef up debug.
7055         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7056
7057 2004-05-27  Seth Nickell  <seth@gnome.org>
7058
7059         * configure.in:
7060         * python/Makefile.am:
7061
7062         Include the example python apps in the tarball.
7063         
7064         * python/examples/list-system-services.py
7065
7066         Add a python new example that fetches the list of services
7067         from the system bus.
7068         
7069 2004-05-27  Seth Nickell  <seth@gnome.org>
7070
7071         * python/dbus.py:
7072         * python/dbus_bindings.pyx.in:
7073
7074         Fix failure to notify that a signal was not handled,
7075         resulted in hung functions.
7076         
7077 2004-05-25  Colin Walters  <walters@redhat.com>
7078
7079         * tools/dbus-monitor.c (main): Monitor all types of messages.
7080
7081 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7082
7083         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7084         which unregisters the object path and disposes the handler.
7085
7086 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7087  
7088         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7089          
7090         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7091         operands to && so we call dbus_message_iter_next () for the last
7092         argument also.
7093
7094 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7095
7096         * dbus/dbus-object-tree.c
7097         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7098         children even if the requested path isn't registered.
7099         (object_tree_test_iteration): test object_tree_list_registered.
7100
7101         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7102         it to 0.
7103         
7104 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7105
7106         * doc/TODO: Remove resolved items.
7107
7108         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7109         field.
7110         
7111         * bus/connection.c (bus_connections_expect_reply): Enforce the
7112         per-connection limit on pending replies.
7113         
7114         Patch from Jon Trowbridge <trow@ximian.com>:
7115  
7116         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7117         up a watch that triggers a config reload when one end of the pipe
7118         becomes readable.
7119         (signal_handler): Instead of doing the config reload in our SIGHUP
7120         handler, just write to the reload pipe and let the associated
7121         watch handle the reload when control returns to the main loop.
7122  
7123         * bus/driver.c (bus_driver_handle_reload_config): Added.
7124         Implements a ReloadConfig method for requesting a configuration
7125         file reload via the bus driver.
7126  
7127 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7128
7129         * HACKING: Updated release instructions concerning the wiki page.
7130
7131 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7132
7133         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7134         filter against auth->allowed_mechs; we only add allowed mechs in
7135         record_mechanisms().
7136  
7137         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7138         ALLOWED_MECHS to auth-script format so we can set the list of
7139         allowed mechanisms.
7140  
7141         * data/auth/client-out-of-mechanisms.auth-script: New test to
7142         check client disconnects when it is out of mechanisms to try.
7143  
7144         * dbus/dbus-auth.c (process_command): Remove check for lines
7145         longer that 1 MB; we only buffer up maximum 16 kB.
7146  
7147         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7148         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7149         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7150         assume there might be unused bytes.
7151  
7152         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7153         client-out-of-mechs, it is handled in process_reject(). Move check
7154         for max failures to send_rejected(), as it's a server-only thing.
7155
7156         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7157         send_auth(), send_data(), send_rejected(), send_error(),
7158         send_ok(), send_begin() and send_cancel().
7159
7160 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7161
7162         Remove base64 encoding, replace with hex encoding. Original patch
7163         from trow@ximian.com, added error handling.
7164
7165         * dbus/dbus-string.c (_dbus_string_base64_encode)
7166         (_dbus_string_base64_decode): Remove.
7167         (_dbus_string_hex_decode): Add end_return argument so we can
7168         distinguish between OOM and invalid hex encoding.
7169         (_dbus_string_test): Remove base64 tests and add test case for
7170         invalid hex.
7171
7172         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7173         Replace base64 with hex.
7174
7175         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7176         for invalid hex encoded data in auth protocol.
7177
7178 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7179
7180         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7181         leak.
7182
7183 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7184
7185         * mono/dbus-sharp.dll.config.in: Added for GAC
7186         * mono/dbus-sharp.snk: Added for GAC
7187         * mono/Assembly.cs.in: Added for GAC
7188         * mono/Makefile.am: Changes for GAC installation        
7189         * configure.in: Added refs for dbus-sharp.dll.config.in and
7190         Assembly.cs.in. More fixes for mono testing
7191         * mono/example/Makefile.am: Changed var to CSC
7192         * Makefile.am: Changed flag name to DBUS_USE_CSC
7193
7194 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7195
7196         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7197         * mono/doc/*: Added documentation framework
7198         * configure.in: Added monodoc check
7199         * README: Added description of mono configure flags
7200
7201 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7202
7203         * doc/dbus-specification.xml: Added a "Required" column to the 
7204         header fields table and changed the "zero or more" verbage in
7205         the above paragraph to read "The header must contain the required 
7206         named header fields and zero or more of the optional named header 
7207         fields".
7208         * test/data/invalid-messages/*.message: Added the required PATH 
7209         named header field to the tests so that they don't fail on 
7210         'Missing path field'
7211
7212 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7213
7214         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7215         the stack by implicitly defining variable and parameter types and
7216         removing the hack of defining C pointers as python objects and later
7217         casting them.
7218
7219 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7220
7221         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7222
7223 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7224
7225         * mono/DBusType/Dict.cs: Handle empty dicts
7226         * mono/DBusType/Array.cs: Handle empty arrays
7227         * mono/Arguments.cs: Handle empty arguments
7228
7229 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7230
7231         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7232         field
7233
7234 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7235
7236         * test/data/valid-messages/standard-*.message: Update message
7237         test scripts to new header field names.
7238
7239 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7240
7241         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7242         overflow to times_we_did_each_thing array which would chop off the
7243         first character of the failure_dir string. Increased the size of
7244         the array to 7 to reflect the number of random mutation functions
7245         we have.
7246
7247 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7248
7249         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7250         unix_server->watch here, it is unreffed in disconnect.
7251         (_dbus_server_new_for_tcp_socket): convert NULL host to
7252         "localhost" here so we don't append NULL to address.
7253         
7254         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7255         various addresses, including tcp with no explicit host.
7256
7257 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7258
7259         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7260         fix incorrect setting of .name_offset in the HeaderField (it was
7261         off by two bytes, positioned right after the name and typecode)
7262
7263         * bus/bus.c (bus_context_new, bus_context_unref): test before
7264         calling dbus_server_free_data_slot and _dbus_user_database_unref
7265         in case of an error.
7266
7267         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7268         by libdbus-gtool.
7269
7270 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7271
7272         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7273         _dbus_poll() instead of select().
7274
7275 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7276
7277         * bus/main.c (signal_handler): Reload the configuration files
7278         on SIGHUP.
7279         (main): Set up our SIGHUP handler.
7280
7281         * bus/bus.c (struct BusContext): Store the config file, user and
7282         fork flag in the BusContext.
7283         (process_config_first_time_only): Added.  Contains the code
7284         (previously in bus_context_new) for setting up the BusContext from
7285         the BusConfigParser that should only be run the first time the
7286         config files are read.
7287         (process_config_every_time): Added.  Contains the code (previously
7288         in bus_context_new) for setting up the BusContext from the
7289         BusConfigParser that should be run every time the config files are
7290         read.
7291         (load_config): Added.  Builds a BusConfigParser from the config
7292         files and passes the resulting structure off to
7293         process_config_first_time_only (assuming this is the first time)
7294         and process_config_every_time.
7295         (bus_context_new): All of the config-related code has been moved
7296         to process_config_first_time_only and process_config_every_time.
7297         Now this function just does the non-config-related initializations
7298         and calls load_config.
7299         (bus_context_reload_config): Added.
7300
7301 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7302
7303         * bus/driver.c (bus_driver_handle_get_service_owner):
7304         implement a GetServiceOwner method.
7305         * doc/dbus-specification.xml: document it.
7306         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7307         
7308         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7309         implement, using the bus GetServiceOwner method.
7310
7311         * test/glib/test-dbus-glib.c:
7312         use dbus_gproxy_new_for_service_owner so that we can receive the
7313         signal. 
7314
7315 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7316
7317         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7318         dbus/dbus-message.c, dbus/dbus-protocol.h
7319         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7320
7321         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7322         dbus/dbus-message.c, dbus/dbus-protocol.h
7323         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7324
7325         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7326         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7327         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7328
7329         * doc/dbus-specification.xml (Header Fields Table):
7330         s/SERVICE/DESTINATION
7331         s/SENDER_SERVICE/SENDER
7332
7333
7334 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7335
7336         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7337         a few seconds.
7338
7339 2004-04-13  Michael Meeks  <michael@ximian.com>
7340
7341         * glib/dbus-gobject.c (handle_introspect): split out
7342         (introspect_properties): this.
7343         (handle_introspect): implement this.
7344
7345         * test/glib/Makefile.am: use the absolute path so the bus
7346         daemon's chdir ("/") doesn't kill us dead.
7347
7348         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7349
7350 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7351
7352         * bus/config-parser.c (struct BusConfigParser): Added
7353         included_files field.
7354         (seen_include): Added.  Checks whether or not a file has already
7355         been included by any parent BusConfigParser.
7356         (bus_config_parser_new): Copy the parent's included_files.
7357         (include_file): Track which files have been included, and fail on
7358         circular inclusions.
7359         (process_test_valid_subdir): Changed printf to report if we are
7360         testing valid or invalid conf files.
7361         (all_are_equiv): Changed printf to be a bit clearer about
7362         what we are actually doing.
7363         (bus_config_parser_test): Test invalid configuration files.
7364
7365 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7366
7367         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7368         argument.  If non-null, the newly-constructed BusConfigParser will
7369         be initialized with the parent's BusLimits instead of the default
7370         values.
7371         (include_file): When including a config file, pass in
7372         the current parser as the parent and then copy the BusLimits
7373         from the included BusConfigParser pack to the current parser.
7374         (process_test_valid_subdir): Renamed from process_test_subdir.
7375         (process_test_equiv_subdir): Added.  Walks through a directory,
7376         descending into each subdirectory and loading the config files
7377         it finds there.  If any subdirectory contains two config files
7378         that don't produce identical BusConfigParser structs, fail.
7379         For now, the BusConfigParser's BusPolicies are not compared.
7380         (bus_config_parser_test): Call both process_test_valid_subdir and
7381         process_test_equiv_subdir.
7382
7383         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7384         argument and pass it along to the call to bus_config_parser_new.
7385         Also made a few small changes to allow this code to compile.
7386
7387         * bus/config-loader-expat.c (bus_config_load): Take a parent
7388         argument and pass it along to the call to bus_config_parser_new.
7389
7390         * bus/bus.c (bus_context_new): Load the config file
7391         with a NULL parent argument.
7392
7393 2004-03-29  Michael Meeks  <michael@ximian.com>
7394
7395         * glib/dbus-gobject.c (introspect_properties): split
7396         out, fix mangled 'while' flow control.
7397         (introspect_signals): implement.
7398         (handle_introspect): update.
7399
7400 2004-03-29  Michael Meeks  <michael@ximian.com>
7401
7402         * glib/dbus-gobject.c (set_object_property): split out / 
7403         re-work, use the property type, and not the message type(!)
7404         (get_object_property): ditto.
7405
7406         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7407         (dbus_gvalue_marshal): make this code re-usable, needed
7408         for signals too, also on both proxy and server side.
7409         Re-write for more efficiency / readability.
7410
7411 2004-03-29  Michael Meeks  <michael@ximian.com>
7412
7413         * dbus/dbus-message.c
7414         (dbus_message_new_error_printf): impl.
7415
7416         * dbus/dbus-connection.c
7417         (dbus_connection_unregister_object_path): fix warning.
7418
7419         * configure.in: fix no-mono-installed situation.
7420
7421 2004-03-27  Havoc Pennington  <hp@redhat.com>
7422
7423         Patch from Timo Teräs:
7424         
7425         * tools/dbus-send.c (main): if --print-reply, assume type is
7426         method call; support boolean type args
7427         
7428         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7429         bunch of memleak and logic bugs
7430         
7431 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7432
7433         * mono/Arguments.cs:
7434         * mono/Introspector.cs:
7435         * mono/Handler.cs:
7436         * mono/InterfaceProxy.cs:
7437         * mono/Message.cs
7438         * mono/ProxyBuilder.cs:
7439         * mono/Service.cs:
7440         Added InterfaceProxy class to avoid building proxies for every
7441         object.
7442
7443         * dbus-message.h:
7444         * dbus-message.c (dbus_message_append_args_valist)
7445         (dbus_message_iter_get_object_path)
7446         (dbus_message_iter_get_object_path_array)
7447         (dbus_message_iter_append_object_path)
7448         (dbus_message_iter_append_object_path_array):
7449         Added object_path iter functions to handle OBJECT_PATH arguments
7450         
7451 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7452
7453         First checkin of mono bindings.
7454         * configure.in:
7455         * Makefile.am:
7456         Build stuff for the bindings
7457         * dbus-sharp.pc.in: Added for pkgconfig
7458         
7459 2004-03-21  Havoc Pennington  <hp@redhat.com>
7460
7461         * test/test-service.c (main): remove debug spew
7462
7463 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7464
7465         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7466         arrays
7467
7468         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7469         (dbus_message_iter_init_array_iterator)
7470         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7471         indicate whether the iterator is empty
7472
7473         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7474         warnings
7475
7476 2004-03-19  Havoc Pennington  <hp@redhat.com>
7477
7478         * NEWS: 0.21 updates
7479
7480         * configure.in: 0.21
7481
7482         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7483         
7484         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7485         you don't need pyrex to make dist
7486
7487         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7488         sources; run moc
7489         
7490 2004-03-18  Richard Hult  <richard@imendio.com>
7491
7492         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7493         (dbus_message_set_auto_activation): Add doxygen docs.
7494
7495 2004-03-16  Richard Hult  <richard@imendio.com>
7496
7497         * bus/activation.c: (bus_activation_service_created),
7498         (bus_activation_send_pending_auto_activation_messages),
7499         (bus_activation_activate_service):
7500         * bus/activation.h:
7501         * bus/dispatch.c: (bus_dispatch),
7502         (check_nonexistent_service_auto_activation),
7503         (check_service_auto_activated),
7504         (check_segfault_service_auto_activation),
7505         (check_existent_service_auto_activation), (bus_dispatch_test):
7506         * bus/driver.c: (bus_driver_handle_activate_service):
7507         * bus/services.c: (bus_registry_acquire_service):
7508         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7509         (dbus_message_get_auto_activation):
7510         * dbus/dbus-message.h:
7511         * dbus/dbus-protocol.h: Implement auto-activation.
7512         
7513         * doc/dbus-specification.xml: Add auto-activation to the spec.
7514
7515 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7516
7517         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7518         fix a bug with CUSTOM types.
7519
7520         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7521         a unit test for this bug (used to fail).
7522
7523 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7524
7525         * bus/activation.c:
7526         (babysitter_watch_callback): notify all pending activations waiting for
7527           the same exec that the activation failed.
7528         (bus_activation_activate_service): shortcut the activation if we 
7529           already waiting for the same executable to start up.
7530
7531 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7532
7533         * bus/activation.c: 
7534         - Added service file reloading. 
7535           Each service files directory is kept in an hash table in 
7536           BusActivation and each BusActivationEntry knows what .service-file it
7537           was read from. So when you try to activate a service the bus will 
7538           check if it's been updated, removed or if new .service-files has 
7539           been installed.
7540         - Test code at the bottom for the service file reloading.
7541         * bus/test-main.c: (main):
7542         * bus/test.h:
7543         - added service reloading test.
7544         * dbus/dbus-sysdeps.c: 
7545         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7546
7547 2004-03-08  Michael Meeks  <michael@ximian.com>
7548
7549         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7550         bail immediately if disconnected, to avoid busy loop.
7551
7552         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7553         cleanup cut/paste/inefficiency.
7554
7555 2004-03-01  David Zeuthen  <david@fubar.dk>
7556
7557         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7558         bug where args were used twice. This bug resulted in a segfault
7559         on a Debian/PPC system when starting the messagebus daemon. Include
7560         dbus-sysdeps.h for DBUS_VA_COPY
7561
7562         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7563
7564         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7565         appropriate va_copy implementation. From GLib
7566         
7567 2004-02-24  Joe Shaw  <joe@ximian.com>
7568
7569         * bus/services.c (bus_registry_acquire_service): We need to pass
7570         in the service name to dbus_set_error() to prevent a crash.
7571
7572 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7573
7574         * AUTHORS: Reveal my True identity.
7575
7576 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7577
7578         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7579         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7580
7581 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7582
7583         * doc/TODO: Added not about better error check of configuration files.
7584
7585 2003-12-02  Richard Hult  <richard@imendio.com>
7586
7587         * Update AFL version to 2.0 throughout the source files to reflect
7588         the update that was done a while ago.
7589
7590 2003-12-02  Richard Hult  <richard@imendio.com>
7591
7592         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7593         wrote_dict_key to FALSE on the iter that the dict is appended to,
7594         just like when appending other types. Fixes a bug where a dict
7595         couldn't be put inside a dict.
7596         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7597         (message_iter_test, _dbus_message_test): Add test case for dict
7598         inside dict.
7599
7600 2003-12-01  David Zeuthen  <david@fubar.dk>
7601
7602         * python/dbus.py: Add the actual message when calling the reciever
7603         of a signal such that parameters can be inspected. Add the method
7604         remove_signal_receiver
7605         
7606 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7607
7608         * bus/*.[ch]:
7609         * dbus/*.[ch]:
7610         * glib/*.[ch]: Made ref functions return the pointer
7611
7612 2003-11-25  Zack Rusin  <zack@kde.org>
7613
7614         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7615
7616         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7617         wrappers,
7618
7619         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7620         the Integrator and to better fit with the server,
7621
7622 2003-11-24  Zack Rusin  <zack@kde.org>
7623
7624         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7625         the integrator handles it now
7626
7627         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7628         since QTimer wasn't really meant to be used the way DBusTimeout is
7629
7630 2003-11-24  Zack Rusin  <zack@kde.org>
7631
7632         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7633         Integrator class which integrates D-BUS with the Qt event loop,
7634
7635         * qt/connection.h, qt/connection.cpp: Move all the code which
7636         was dealing with D-BUS integration to the Integrator class,
7637         and start using Integrator,
7638
7639 2003-11-23  Zack Rusin  <zack@kde.org>
7640
7641         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7642         wrapper
7643
7644         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7645         switching namespaces to DBusQt, reworking the class,
7646
7647         * Makefile.cvs: switching dependencies so that it matches KDE 
7648         schematics,
7649         
7650         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7651         the library
7652
7653 2003-11-19  Havoc Pennington  <hp@redhat.com>
7654
7655         * NEWS: update
7656
7657         * configure.in: bump version to 0.20
7658
7659         * configure.in (have_qt): add yet another place to look for qt
7660         (someone hand trolltech a .pc file...)
7661
7662 2003-11-01  Havoc Pennington  <hp@redhat.com>
7663
7664         * doc/dbus-specification.xml: add state machine docs on the auth
7665         protocol; just a first draft, I'm sure it's wrong.      
7666
7667 2003-10-28  David Zeuthen  <david@fubar.dk>
7668
7669         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7670         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7671         
7672 2003-10-28  Havoc Pennington  <hp@redhat.com>
7673
7674         * dbus/dbus-message.c (get_next_field): delete unused function
7675
7676 2003-10-28  Havoc Pennington  <hp@redhat.com>
7677
7678         * bus/expirelist.c (do_expiration_with_current_time): detect
7679         failure of the expire_func due to OOM
7680
7681         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7682
7683         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7684         NoReply error that's now created by the bus when the service exits
7685
7686 2003-10-28  Havoc Pennington  <hp@redhat.com>
7687
7688         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7689         tests for set_path, set_interface, set_member, etc.
7690
7691         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7692
7693         * dbus/dbus-message.c (set_string_field): always just delete and
7694         re-append the field; accept NULL for deletion
7695         (re_align_fields_recurse): reimplement
7696         
7697 2003-10-26  Havoc Pennington  <hp@redhat.com>
7698
7699         * dbus/dbus-connection.c: fix docs to properly describe the
7700         disconnected message
7701         (_dbus_connection_notify_disconnected): remove this function; 
7702         we can't synchronously add the disconnected message, we have to 
7703         do it after we've queued any remaining real messages
7704         (_dbus_connection_get_dispatch_status_unlocked): queue the
7705         disconnect message only if the transport has finished queueing all
7706         its real messages and is disconnected.
7707         (dbus_connection_disconnect): update the dispatch status here
7708
7709 2003-10-22  Havoc Pennington  <hp@redhat.com>
7710
7711         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7712
7713         * bus/connection.c (bus_transaction_send_from_driver): set the
7714         destination to the connection's base service
7715
7716 2003-10-20  Havoc Pennington  <hp@redhat.com>
7717
7718         hmm, make check is currently not passing.
7719         
7720         * doc/dbus-specification.xml: add requirement that custom type
7721         names follow the same rules as interface names.
7722
7723         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7724         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7725         'map'
7726
7727         * doc/dbus-specification.xml: update type codes to match
7728         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7729         CUSTOM. Add type OBJECT_PATH to the spec.
7730
7731 2003-10-17  Havoc Pennington  <hp@redhat.com>
7732
7733         * bus/driver.c (create_unique_client_name): use "." as separator
7734         in base service names instead of '-'
7735
7736         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7737         byte at the end of the string
7738
7739         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7740         optimization macros since string validation seems to be a slow
7741         point.
7742         
7743         * doc/dbus-specification.xml: restrict valid
7744         service/interface/member/error names. Add test suite code for the
7745         name validation.
7746
7747         * dbus/dbus-string.c: limit service/interface/member/error names 
7748         to [0-9][A-Z][a-z]_
7749
7750         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7751         format arg to verbose spew
7752
7753         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7754         memory, return instead of g_error
7755
7756         * test/test-service.c (path_message_func): support emitting a
7757         signal on request
7758
7759         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7760         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7761         assuming the activation bus was the session bus so that services
7762         started manually will still register.
7763         (init_connections_unlocked): fix so that in OOM situation we get
7764         the same semantics when retrying the function
7765         
7766         * test/test-service.c (main): change to use path registration, to
7767         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7768         than DBUS_BUS_SESSION
7769
7770 2003-10-16  Havoc Pennington  <hp@redhat.com>
7771
7772         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7773
7774         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7775         coverage of the tests
7776         (coverage-report.txt): don't move the .da and .bbg files around
7777
7778 2003-10-16  Havoc Pennington  <hp@redhat.com>
7779
7780         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7781         to put there
7782
7783 2003-10-16  Havoc Pennington  <hp@redhat.com>
7784
7785         * bus/connection.c (bus_pending_reply_expired): either cancel or
7786         execute, not both
7787         (bus_connections_check_reply): use unlink, not remove_link, as we
7788         don't want to free the link; fixes double free mess
7789
7790         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7791         where no reply was received
7792
7793         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7794         fix a refcount leak
7795
7796         * bus/signals.c (match_rule_matches): add special cases for the
7797         bus driver, so you can match on sender/destination for it.
7798
7799         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7800         DBUS_PRINT_BACKTRACE is set
7801
7802         * dbus/dbus-internals.c: add pid to assertion failure messages
7803
7804         * dbus/dbus-connection.c: add message type code to the debug spew
7805
7806         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7807         sender=foo not service=foo
7808
7809         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7810         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7811         DBUS_ACTIVATION_ADDRESS instead
7812
7813         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7814         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7815
7816         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7817         context struct
7818
7819         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7820         (dbus_message_iter_get_object_path_array): new function (half
7821         finished, disabled for the moment)
7822         
7823         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7824         DBUS_MESSAGE_TYPE_ERROR
7825
7826         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7827         avoid redirecting stderr to /dev/null
7828         (babysit): close stdin if not doing the "exit_with_session" thing
7829
7830         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7831         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7832         stdout/stdin, so things don't get confused
7833         
7834         * bus/system.conf.in: fix to allow replies, I modified .conf
7835         instead of .conf.in again.
7836
7837 2003-10-14  David Zeuthen  <david@fubar.dk>
7838
7839         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7840         argtype to arg_type when raising unknown arg type exception.
7841         Changed type list to reflect the changes in dbus-protocol.h so 
7842         the bindings actually work.
7843
7844 2003-10-14  Havoc Pennington  <hp@redhat.com>
7845
7846         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7847         to have a bug keeping it from outputting the .da files sometimes
7848         (string_get_string): don't append garbage nul bytes to the string.
7849
7850 2003-10-15  Seth Nickell  <seth@gnome.org>
7851
7852         * python/Makefile.am:
7853
7854         Include dbus_h_wrapper.h in the dist tarball.
7855
7856 2003-10-14  Havoc Pennington  <hp@redhat.com>
7857
7858         * bus/bus.c (bus_context_check_security_policy): revamp this to
7859         work more sanely with new policy-based requested reply setup
7860
7861         * bus/connection.c (bus_transaction_send_from_driver): set bus
7862         driver messages as no reply
7863
7864         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7865         requested_reply attribute on allow/deny rules
7866
7867         * bus/system.conf: add <allow requested_reply="true"/>
7868
7869         * bus/driver.c (bus_driver_handle_message): fix check for replies
7870         sent to the bus driver, which was backward. How did this ever work
7871         at all though? I think I'm missing something.
7872
7873         * dbus/dbus-message.c (decode_header_data): require error and
7874         method return messages to have a reply serial field to be valid
7875         (_dbus_message_loader_queue_messages): break up this function;
7876         validate that reply serial and plain serial are nonzero; 
7877         clean up the OOM/error handling.
7878         (get_uint_field): don't return -1 from this
7879         (dbus_message_create_header): fix signed/unsigned bug
7880
7881         * bus/connection.c (bus_connections_expect_reply): save serial of
7882         the incoming message, not reply serial
7883
7884 2003-10-14  Havoc Pennington  <hp@redhat.com>
7885
7886         * bus/connection.c: implement pending reply tracking using
7887         BusExpireList
7888
7889         * bus/bus.c (bus_context_check_security_policy): verify that a
7890         reply is pending in order to allow a reply to be sent. Deny 
7891         messages of unknown type.
7892
7893         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7894
7895         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7896         (bus_context_get_reply_timeout): new
7897
7898 2003-10-13  Seth Nickell  <seth@gnome.org>
7899
7900         * python/Makefile.am:
7901
7902         Pass "make distcheck": remove a couple files from DIST_FILES
7903         that weren't included in the final version.
7904
7905 2003-10-12  Havoc Pennington  <hp@pobox.com>
7906
7907         Added test code that 1) starts an actual bus daemon and 2) uses
7908         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7909         more testing possible, but this is the basic framework.
7910         
7911         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7912         empty proxy lists from the proxy list hash
7913
7914         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7915         couple of return_if_fail checks
7916
7917         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7918         to allocate, so everything is cleared to NULL as it should be.
7919
7920         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7921         source as data to dbus_connection_set_timeout_functions() as the 
7922         timeout functions expected
7923
7924         * test/glib/run-test.sh: add a little script to start up a message
7925         bus and run tests using it
7926
7927         * tools/dbus-launch.1: updates
7928
7929         * tools/dbus-launch.c (main): add --config-file option
7930
7931         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7932         that could never be reached.
7933
7934         * dbus/dbus-message.c (dbus_message_new_method_return) 
7935         (dbus_message_new_error, dbus_message_new_signal): set the
7936         no-reply-expected flag on all these. Redundant, but may
7937         as well be consistent.
7938
7939 2003-10-11  Havoc Pennington  <hp@pobox.com>
7940
7941         * test/decode-gcov.c (function_solve_graph): make broken block
7942         graph a nonfatal error since it seems to be broken. Need to debug
7943         this.
7944
7945         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7946         can't just check type > INVALID < LAST anymore
7947
7948         * dbus/dbus-message.c (dbus_message_get_signature): new function
7949         (dbus_message_has_signature): new function
7950         (struct DBusMessage): add signature field (right now it isn't sent
7951         over the wire, just generated on the fly)
7952         (dbus_message_copy): copy the signature, and init strings to
7953         proper length to avoid some reallocs
7954         (dbus_message_iter_init_array_iterator): return void, since it
7955         can't fail
7956         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7957         (_dbus_message_loader_queue_messages): add silly temporary hack to
7958         fill in message->signature on load
7959
7960         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7961         characters, so they are relatively human-readable.
7962
7963 2003-10-11  Havoc Pennington  <hp@pobox.com>
7964
7965         * dbus/dbus-message.c (_dbus_message_test): add more test
7966         coverage, but #if 0 for now since they uncover a bug 
7967         not fixed yet; I think in re_align_field_recurse()
7968         (re_align_field_recurse): add FIXME about broken assertion
7969
7970         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7971
7972         * bus/connection.c: share a couple code bits with expirelist.c
7973
7974         * bus/expirelist.h, bus/expirelist.c: implement a generic
7975         expire-items-after-N-seconds facility, was going to share between
7976         expiring connections and replies, decided not to use for expiring
7977         connections for now.
7978
7979         * COPYING: include AFL 2.0 (still need to change all the file headers)
7980
7981 2003-10-09  Havoc Pennington  <hp@redhat.com>
7982
7983         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7984         gcc 3.3. Not that we do anything about it yet.
7985
7986         * bus/signals.c (bus_match_rule_parse): impose max length on the
7987         match rule text
7988
7989         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7990
7991 2003-10-09  Havoc Pennington  <hp@redhat.com>
7992
7993         Make matching rules theoretically work (add parser).
7994         
7995         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7996         the case where destination is explicitly specified as bus driver
7997         and someone else is eavesdropping.
7998         
7999         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8000         definition of eavesdropping and assertion
8001
8002         * tools/dbus-send.c (main): use dbus_message_type_from_string
8003
8004         * bus/signals.c (bus_match_rule_parse): implement
8005
8006         * dbus/dbus-message.c (dbus_message_type_from_string): new
8007
8008         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8009
8010 2003-10-02  Havoc Pennington  <hp@pobox.com>
8011
8012         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8013         dbus_gproxy_oneway_call
8014
8015         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8016         (dbus_server_setup_with_g_main): fix to allow calling them more
8017         than once on the same args
8018         (dbus_bus_get_with_g_main): new function
8019
8020 2003-10-02  Havoc Pennington  <hp@redhat.com>
8021
8022         * doc/dbus-tutorial.xml: write some stuff
8023
8024 2003-09-29  Havoc Pennington  <hp@pobox.com>
8025
8026         * configure.in: split checks for Doxygen from XML docs, check for
8027         xmlto
8028
8029         * doc/Makefile.am: XML-ify all the docs, and add a blank
8030         dbus-tutorial.xml
8031
8032 2003-09-29  Havoc Pennington  <hp@pobox.com>
8033
8034         * Merge dbus-object-names branch. To see the entire patch 
8035         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8036         it's huuuuge though.
8037         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8038         
8039 2003-09-28  Havoc Pennington  <hp@pobox.com>
8040
8041         * HACKING: update to reflect new server
8042
8043 2003-09-26  Seth Nickell  <seth@gnome.org>
8044
8045         * python/dbus.py:
8046         * python/examples/example-signals.py:
8047
8048         Start implementing some notions of signals. The API
8049         is really terrible, but they sort of work (with the
8050         exception of being able to filter by service, and to
8051         transmit signals *as* a particular service). Need to
8052         figure out how to make messages come from the service
8053         we registered :-(
8054         
8055         * python/dbus_bindings.pyx.in:
8056
8057         Removed duplicate message_handler callbacks.
8058         
8059 2003-09-25  Havoc Pennington  <hp@redhat.com>
8060
8061         * bus/session.conf.in: fix my mess
8062
8063 2003-09-25  Havoc Pennington  <hp@pobox.com>
8064
8065         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8066
8067 2003-09-25  Seth Nickell  <seth@gnome.org>
8068
8069         * python/examples/example-service.py:
8070
8071         Johan notices complete wrong code in example-service, but
8072         completely wrong in a way that works exactly the same (!).
8073         Johan is confused, how could this possibly work? Example
8074         code fails to serve purpose of making things clear.
8075         Seth fixes.
8076
8077 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8078
8079         * doc/dbus-specification.sgml: don't require header fields
8080         to be 4-byte aligned and specify that fields should be
8081         distinguished from padding by the fact that zero is not
8082         a valid field name.
8083         
8084         * doc/TODO: remove re-alignment item and add item to doc
8085         the OBJECT_PATH type.
8086         
8087         * dbus/dbus-message.c:
8088         (HeaderField): rename the original member to value_offset
8089         and introduce a name_offset member to keep track of where
8090         the field actually begins.
8091         (adjust_field_offsets): remove.
8092         (append_int_field), (append_uint_field),
8093         (append_string_field): don't align the start of the header
8094         field to a 4-byte boundary.
8095         (get_next_field): impl finding the next marhsalled field
8096         after a given field.
8097         (re_align_field_recurse): impl re-aligning a number of
8098         already marshalled fields.
8099         (delete_field): impl deleting a field of any type and
8100         re-aligning any following fields.
8101         (delete_int_or_uint_field), (delete_string_field): remove.
8102         (set_int_field), (set_uint_field): no need to re-check
8103         that we have the correct type for the field.
8104         (set_string_field): ditto and impl re-aligning any
8105         following fields.
8106         (decode_header_data): update to take into account that
8107         the fields aren't 4-byte aligned any more and the new
8108         way to distinguish padding from header fields. Also,
8109         don't exit when there is too much header padding.
8110         (process_test_subdir): print the directory.
8111         (_dbus_message_test): add test to make sure a following
8112         field is re-aligned correctly after field deletion.
8113         
8114         * dbus/dbus-string.[ch]:
8115         (_dbus_string_insert_bytes): rename from insert_byte and
8116         allow the insert of multiple bytes.
8117         (_dbus_string_test): test inserting multiple bytes.
8118
8119         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8120         warning note to docs about having to re-align any
8121         marshalled values following the string.
8122         
8123         * dbus/dbus-message-builder.c:
8124         (append_string_field), (_dbus_message_data_load):
8125         don't align the header field.
8126         
8127         * dbus/dbus-auth.c: (process_test_subdir): print the
8128         directory.
8129         
8130         * test/break-loader.c: (randomly_add_one_byte): upd. for
8131         insert_byte change.
8132         
8133         * test/data/invalid-messages/bad-header-field-alignment.message:
8134         new test case.
8135         
8136         * test/data/valid-messages/unknown-header-field.message: shove
8137         a dict in the unknown field.
8138
8139 2003-09-25  Seth Nickell  <seth@gnome.org>
8140
8141         * python/dbus.py:
8142         * python/dbus_bindings.pyx.in:
8143
8144         Handle return values.
8145         
8146         * python/examples/example-client.py:
8147         * python/examples/example-service.py:
8148
8149         Pass back return values from the service to the client.
8150         
8151 2003-09-24  Seth Nickell  <seth@gnome.org>
8152
8153         * python/dbus.py:
8154
8155         Connect Object methods (when you are sharing an object) up... pass
8156         in a list of methods to be shared. Sharing all the methods just
8157         worked out too weird. You can now create nice Services over the
8158         DBus in Python. :-)
8159         
8160         * python/dbus_bindings.pyx.in:
8161
8162         Keep references to user_data tuples passed into C functions so 
8163         Python doesn't garbage collect on us.
8164
8165         Implement MethodReturn and Error subclasses of Message for creating
8166         DBusMessage's of those types.
8167         
8168         * python/examples/example-client.py:
8169         * python/examples/example-service.py:
8170
8171         Simple example code showing both how create DBus services and objects,
8172         and how to use them.
8173
8174 2003-09-23  Havoc Pennington  <hp@pobox.com>
8175
8176         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8177
8178 2003-09-23  Havoc Pennington  <hp@redhat.com>
8179
8180         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8181         (dbus_gproxy_disconnect_signal): implement
8182         (dbus_gproxy_manager_remove_signal_match): implement
8183         (dbus_gproxy_manager_add_signal_match): implement
8184         (dbus_gproxy_oneway_call): implement
8185
8186 2003-09-23  Havoc Pennington  <hp@pobox.com>
8187
8188         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8189         subclass. This means dropping the transparent thread safety of the
8190         proxy; you now need a separate proxy per-thread, or your own
8191         locking on the proxy. Probably right anyway.
8192         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8193
8194 2003-09-22  Havoc Pennington  <hp@redhat.com>
8195
8196         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8197
8198 2003-09-21  Seth Nickell  <seth@gnome.org>
8199
8200         First checkin of the Python bindings.
8201         
8202         * python/.cvsignore:
8203         * python/Makefile.am:
8204         * python/dbus_bindings.pyx.in:
8205         * python/dbus_h_wrapper.h:
8206
8207         Pieces for Pyrex to operate on, building a dbus_bindings.so
8208         python module for low-level access to the DBus APIs.
8209         
8210         * python/dbus.py:
8211
8212         High-level Python module for accessing DBus objects.
8213
8214         * configure.in:
8215         * Makefile.am:
8216
8217         Build stuff for the python bindings.
8218
8219         * acinclude.m4:
8220
8221         Extra macro needed for finding the Python C header files.
8222
8223 2003-09-21  Havoc Pennington  <hp@pobox.com>
8224
8225         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8226         implementing the proxy manager, didn't get very far.
8227
8228         * dbus/dbus-bus.c (dbus_bus_add_match): new
8229         (dbus_bus_remove_match): new
8230
8231         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8232         path_name argument; adjust the other not-yet-implemented 
8233         gproxy constructors to be what I think they should be.
8234
8235 2003-09-21  Havoc Pennington  <hp@pobox.com>
8236
8237         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8238         by default for message bus connections.
8239
8240         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8241         exit_on_disconnect flag is set and we process the disconnected
8242         signal.
8243         (dbus_connection_set_exit_on_disconnect): new function
8244
8245 2003-09-21  Havoc Pennington  <hp@pobox.com>
8246
8247         Get matching rules mostly working in the bus; only actually
8248         parsing the rule text remains. However, the client side of
8249         "signal connections" hasn't been started, this patch is only the
8250         bus side.
8251         
8252         * dbus/dispatch.c: fix for the matching rules changes
8253         
8254         * bus/driver.c (bus_driver_handle_remove_match)
8255         (bus_driver_handle_add_match): send an ack reply from these
8256         method calls
8257
8258         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8259         arguments, reported by Seth Nickell
8260
8261         * bus/config-parser.c (append_rule_from_element): support
8262         eavesdrop=true|false attribute on policies so match rules 
8263         can be prevented from snooping on the system bus.
8264
8265         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8266         and "destination" in attribute names; fix some docs bugs; 
8267         add eavesdrop=true|false attribute
8268
8269         * bus/driver.c (bus_driver_handle_add_match)
8270         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8271         messages
8272
8273         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8274         rid of broadcast service concept, signals are just always broadcast
8275
8276         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8277         mostly implement matching rules stuff (currently only exposed as signal
8278         connections)
8279
8280 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8281
8282         * doc/dbus-specification.sgml: Change the header field name
8283         to be an enum and update the rest of the spec to reference
8284         the fields using the conventinal name.
8285
8286         * dbus/dbus-protocol.h: update to reflect the spec.
8287
8288         * doc/TODO: add item to remove the 4 byte alignment requirement.
8289         
8290         * dbus/dbus-message.c: Remove the code to generalise the
8291         header/body length and serial number header fields as named
8292         header fields so we can reference field names using the 
8293         protocol values.
8294         (append_int_field), (append_uint_field), (append_string_field):
8295         Append the field name as a byte rather than four chars.
8296         (delete_int_or_uint_field), (delete_string_field): reflect the
8297         fact that the field name and typecode now occupy 4 bytes instead
8298         of 8.
8299         (decode_string_field), (decode_header_data): update to reflect
8300         protocol changes and move the field specific encoding from
8301         decode_string_field() back into decode_header_data().
8302         
8303         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8304         Add utility to aid debugging.
8305         
8306         * dbus/dbus-message-builder.c:
8307         (append_string_field), (_dbus_message_data_load): Update to
8308         reflect protocol changes; Change the FIELD_NAME directive
8309         to HEADER_FIELD and allow it to take the field's conventional
8310         name rather than the actual value.
8311         
8312         * test/data/*/*.message: Update to use HEADER_FIELD instead
8313         of FIELD_NAME; Always align the header on an 8 byte boundary
8314         *before* updating the header length.
8315
8316 2003-09-15  Havoc Pennington  <hp@pobox.com>
8317
8318         * dbus/dbus-pending-call.c: add the get/set object data
8319         boilerplate as for DBusConnection, etc. Use generic object data
8320         for the notify callback.
8321
8322         * glib/dbus-gparser.c (parse_node): parse child nodes
8323
8324         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8325         
8326         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8327         contain functions shared between the convenience lib and the
8328         installed lib
8329
8330         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8331         -export-symbols-regex to the GLib library
8332
8333         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8334         fix the locking in here, and add a default handler for
8335         Introspect() that just returns sub-nodes.
8336
8337 2003-09-14  Havoc Pennington  <hp@pobox.com>
8338
8339         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8340         rather than gfoo consistent
8341
8342         * glib/dbus-gproxy.h: delete for now, move contents to
8343         dbus-glib.h, because the include files don't work right since we
8344         aren't in the dbus/ subdir.
8345         
8346         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8347         (dbus_gproxy_end_call): finish
8348         (dbus_gproxy_begin_call): finish
8349
8350         * glib/dbus-gmain.c (dbus_set_g_error): new
8351
8352         * glib/dbus-gobject.c (handle_introspect): include information
8353         about child nodes in the introspection
8354
8355         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8356         function to help in implementation of introspection
8357
8358         * dbus/dbus-object-tree.c
8359         (_dbus_object_tree_list_registered_and_unlock): new function
8360
8361 2003-09-12  Havoc Pennington  <hp@pobox.com>
8362
8363         * glib/dbus-gidl.h: add common base class for all the foo_info
8364         types
8365
8366         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8367         similar to kdcop
8368
8369         * test/Makefile.am: try test srcdir -ef . in addition to test
8370         srcdir = ., one of them should work (yeah lame)
8371         
8372         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8373         library
8374         
8375         * glib/dbus-gparser.h: make description_load routines return
8376         NodeInfo* not Parser*
8377
8378         * Makefile.am (SUBDIRS): build test dir after all library dirs
8379
8380         * configure.in: add GTK+ detection
8381
8382 2003-09-07  Havoc Pennington  <hp@pobox.com>
8383
8384         * Make Doxygen contented.
8385
8386 2003-09-07  Havoc Pennington  <hp@pobox.com>
8387
8388         * doc/dbus-specification.sgml: more updates
8389
8390 2003-09-06  Havoc Pennington  <hp@pobox.com>
8391
8392         * doc/dbus-specification.sgml: partial updates
8393
8394         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8395         zillionth time; hopefully I edited the right file this time.
8396
8397         * bus/config-parser.c (append_rule_from_element): support
8398         send_type, send_path, receive_type, receive_path
8399
8400         * bus/policy.c: add message type and path to the list of things
8401         that can be "firewalled"
8402
8403 2003-09-06  Havoc Pennington  <hp@pobox.com>
8404
8405         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8406         (dbus_connection_register_object_path): make this not handle
8407         messages to paths below the given path
8408
8409 2003-09-03  Havoc Pennington  <hp@pobox.com>
8410
8411         * test/glib/Makefile.am: add this with random glib-linked test
8412         programs
8413
8414         * glib/Makefile.am: remove the random test programs from here,
8415         leave only the unit tests
8416
8417         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8418         uscore/javacaps conversion, and fix     
8419         (get_object_property, set_object_property): change to .NET
8420         convention for mapping props to methods, set_FooBar/get_FooBar, 
8421         since one language has such a convention we may as well copy it. 
8422         Plus real methods in either getFooBar or get_foo_bar style won't 
8423         collide with this convention.
8424
8425 2003-09-01  Havoc Pennington  <hp@pobox.com>
8426
8427         * glib/dbus-gparser.c: implement
8428
8429         * glib/dbus-gobject.c: start implementing skeletons support
8430
8431         * configure.in: when disabling checks/assert, also define
8432         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8433
8434 2003-09-01  Havoc Pennington  <hp@pobox.com>
8435
8436         * glib/Makefile.am: rearrange a bunch of files and get "make
8437         check" framework set up
8438
8439 2003-08-31  Havoc Pennington  <hp@pobox.com>
8440
8441         * fix build with --disable-tests
8442
8443 2003-08-30  Havoc Pennington  <hp@pobox.com>
8444
8445         * dbus/dbus-connection.c: purge DBusMessageHandler
8446
8447         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8448         use callbacks everywhere
8449
8450 2003-08-30  Havoc Pennington  <hp@pobox.com>
8451
8452         * test/data/valid-config-files/system.d/test.conf: change to 
8453         root for the user so warnings don't get printed
8454
8455         * dbus/dbus-message.c: add dbus_message_get_path,
8456         dbus_message_set_path
8457         
8458         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8459         dispatching to a path
8460
8461         * dbus/dbus-string.c (_dbus_string_validate_path): add
8462
8463         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8464         (_dbus_marshal_object_path): implement
8465
8466         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8467         to contain the path to the target object
8468         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8469         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8470
8471 2003-08-30  Havoc Pennington  <hp@pobox.com>
8472
8473         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8474
8475 2003-08-29  Havoc Pennington  <hp@pobox.com>
8476
8477         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8478         registered
8479         (struct DBusObjectSubtree): shrink this
8480         a lot, since we may have a lot of them
8481         (_dbus_object_tree_free_all_unlocked): implement
8482         (_dbus_object_tree_dispatch_and_unlock): implement
8483
8484 2003-08-29  Havoc Pennington  <hp@pobox.com>
8485
8486         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8487
8488 2003-08-28  Havoc Pennington  <hp@pobox.com>
8489
8490         purge DBusObjectID
8491         
8492         * dbus/dbus-connection.c: port to no ObjectID, create a
8493         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8494
8495         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8496         everything except UnregisterFunction and MessageFunction
8497         
8498         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8499         add DBUS_TYPE_OBJECT_PATH
8500         
8501         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8502         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8503         path-based object IDs
8504
8505 2003-08-25  Havoc Pennington  <hp@pobox.com>
8506
8507         Just noticed that dbus_message_test is hosed, I wonder when I
8508         broke that. I thought make check was passing earlier...
8509         
8510         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8511         container tree, will replace most of dbus-object-registry
8512
8513         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8514         screwup
8515
8516 2003-08-19  Havoc Pennington  <hp@pobox.com>
8517
8518         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8519         (dbus_message_is_error): fix this function
8520
8521         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8522         match
8523
8524         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8525         reflect clarified man page
8526         (bus_client_policy_check_can_send): ditto
8527         
8528         * bus/session.conf.in: fixup
8529
8530         * bus/system.conf.in: fixup
8531
8532 2003-08-18  Havoc Pennington  <hp@redhat.com>
8533
8534         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8535
8536         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8537         dumb bug created earlier (wrong order of args to
8538         decode_header_data())
8539         
8540         * tools/dbus-send.c: port
8541
8542         * tools/dbus-print-message.c (print_message): port
8543
8544         * test/data/*messages: port all messages over
8545         
8546         * dbus/dbus-message-builder.c: support including 
8547         message type
8548         
8549         * bus/driver.c: port over
8550         
8551         * bus/dispatch.c: port over to new stuff
8552
8553         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8554         rename disconnect signal to "Disconnected"
8555
8556 2003-08-17  Havoc Pennington  <hp@pobox.com>
8557
8558         This doesn't compile yet, but syncing up so I can hack on it from
8559         work. What are branches for if not broken code? ;-)
8560         
8561         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8562         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8563         DBUS_HEADER_FIELD_ERROR_NAME
8564         
8565         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8566         for the interface+member pairs
8567         (string_hash): change to use g_str_hash algorithm
8568         (find_direct_function, find_string_function): refactor these to
8569         share most code.
8570         
8571         * dbus/dbus-message.c: port all of this over to support 
8572         interface/member fields instead of name field
8573
8574         * dbus/dbus-object-registry.c: port over
8575         
8576         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8577         from _dbus_string_validate_name
8578
8579         * bus/dbus-daemon-1.1: change file format for the 
8580         <deny>/<allow> stuff to match new message naming scheme
8581
8582         * bus/policy.c: port over
8583
8584         * bus/config-parser.c: parse new format
8585         
8586 2003-08-16  Havoc Pennington  <hp@pobox.com>
8587
8588         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8589         broken assertion
8590
8591         * glib/dbus-gproxy.c: some hacking
8592
8593 2003-08-15  Havoc Pennington  <hp@redhat.com>
8594
8595         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8596
8597         * dbus/dbus-connection.c
8598         (dbus_connection_send_with_reply_and_block): factor out internals;
8599         change to convert any error replies to DBusError instead of 
8600         returning them as a message
8601
8602 2003-08-15  Havoc Pennington  <hp@pobox.com>
8603
8604         * dbus/dbus-connection.c, 
8605         dbus/dbus-pending-call.c: Finish the pending call stuff
8606
8607 2003-08-14  Havoc Pennington  <hp@redhat.com>
8608
8609         * dbus/dbus-pending-call.c: start on new object that will replace
8610         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8611         replies
8612
8613         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8614         with remote interfaces
8615
8616         * dbus/dbus-gidl.c: do the boring boilerplate in here
8617         
8618 2003-08-12  Havoc Pennington  <hp@pobox.com>
8619
8620         * bus/dispatch.c (bus_dispatch): make this return proper 
8621         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8622
8623         * dbus/dbus-errors.c (dbus_set_error): use
8624         _dbus_string_append_printf_valist
8625
8626         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8627         (_dbus_string_append_printf): new
8628
8629         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8630         UNKNOWN_METHOD
8631
8632         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8633         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8634         message is unhandled.
8635
8636 2003-08-11  Havoc Pennington  <hp@pobox.com>
8637
8638         * bus/test.c (client_disconnect_handler): change to return
8639         HANDLED (would have been REMOVE_MESSAGE)
8640
8641         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8642         HANDLED/NOT_YET_HANDLED instead of
8643         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8644         should be used.
8645
8646 2003-08-10  Havoc Pennington  <hp@pobox.com>
8647
8648         * tools/dbus-send.c (main): add --type argument, for now
8649         supporting only method_call and signal types.
8650
8651         * tools/dbus-print-message.c: print message type
8652
8653         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8654         init connection->objects
8655
8656         * doc/dbus-specification.sgml: fix sgml
8657
8658         * bus/*.c: port over to object-instance API changes
8659
8660         * test/test-service.c: ditto
8661         
8662         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8663         name, we will have to fix up the rest of the code to also handle
8664         this
8665         (dbus_message_new): generic message-creation call
8666         (set_string_field): allow appending name field
8667
8668 2003-08-06  Havoc Pennington  <hp@pobox.com>
8669
8670         * dbus/dbus-object-registry.c: implement signal connection 
8671         and dispatch
8672
8673         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8674
8675         * dbus/dbus-internals.c (_dbus_memdup): new function
8676
8677 2003-08-02  Havoc Pennington  <hp@pobox.com>
8678
8679         * dbus/dbus-message.c (dbus_message_get_no_reply)
8680         (dbus_message_set_no_reply): add these and remove
8681         set_is_error/get_is_error
8682
8683         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8684         remove the ERROR flag, since there's now an ERROR type
8685
8686 2003-08-01  Havoc Pennington  <hp@pobox.com>
8687
8688         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8689         implement
8690
8691         * dbus/dbus-message.c (dbus_message_get_type): new function
8692
8693         * doc/dbus-specification.sgml: add "type" byte to messages
8694
8695 2003-08-01  Havoc Pennington  <hp@pobox.com>
8696
8697         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8698         a message type enum to distinguish kinds of message
8699         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8700         that need not be replied to
8701
8702 2003-08-01  Havoc Pennington  <hp@pobox.com>
8703
8704         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8705         (unpack_8_octets): fix no-64-bit-int bug
8706
8707         * dbus/dbus-object-registry.c (validate_id): validate the 
8708         connection ID bits, not just the instance ID.
8709
8710         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8711         the connection-global 33 bits of the object ID
8712
8713         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8714         object ID in the new way
8715
8716         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8717         define server/client/instance bits.
8718
8719 2003-07-30  Havoc Pennington  <hp@pobox.com>
8720
8721         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8722         build
8723
8724 2003-07-13  Havoc Pennington  <hp@pobox.com>
8725
8726         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8727         fields to DBusObjectVTable and DBusObjectInfo
8728
8729 2003-07-12  Havoc Pennington  <hp@pobox.com>
8730
8731         * dbus/dbus-object-registry.c: implement unit test,
8732         fix bugs discovered in process
8733
8734         * dbus/dbus-connection.c: remove handler_table and
8735         register_handler(), add DBusObjectRegistry usage
8736
8737         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8738         (dbus_object_id_set_null): new functions
8739
8740 2003-07-08  Havoc Pennington  <hp@pobox.com>
8741
8742         * dbus/dbus-object.c: implement some of this
8743
8744         * dbus/dbus-object-registry.c
8745         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8746         param
8747         (_dbus_object_registry_new): handle OOM
8748
8749 2003-07-08  Havoc Pennington  <hp@pobox.com>
8750
8751         * dbus/dbus-object.h: sketch out an API for registering objects
8752         with a connection, that allows us to use as little as 24 bytes
8753         per object and lets application code represent an object in 
8754         any conceivable way.
8755
8756         * dbus/dbus-object-registry.c: implement the hard bits of the
8757         DBusConnection aspect of object API. Not yet wired up.
8758         
8759 2003-07-06  Havoc Pennington  <hp@pobox.com>
8760
8761         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8762         (_dbus_marshal_object_id): new
8763         (_dbus_demarshal_object_id): new
8764         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8765         consolidate identical switch cases. Don't conditionalize handling
8766         of DBUS_TYPE_UINT64, need to handle the type always.
8767         (_dbus_marshal_validate_arg): consolidate identical cases, and
8768         handle DBUS_TYPE_OBJECT_ID
8769
8770         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8771
8772         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8773
8774 2003-09-28  Havoc Pennington  <hp@pobox.com>
8775
8776         * real 0.13 release
8777
8778 2003-09-28  Havoc Pennington  <hp@pobox.com>
8779
8780         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8781         to work with Debian db2html
8782
8783 2003-09-28  Havoc Pennington  <hp@pobox.com>
8784
8785         * configure.in: 0.13
8786
8787         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8788         stylesheet-images for benefit of Debian
8789         
8790         Change back to using filesystem-linked sockets for the system
8791         bus, so only root can create the default system bus address.
8792         
8793         * bus/system.conf.in: change to use
8794         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8795
8796         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8797         from here.
8798
8799         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8800         here, and AC_DEFINE DBUS_SYSTEM_PATH
8801
8802 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8803
8804         * doc/TODO:
8805         * doc/busconfig.dtd:
8806         Add busconfig DTD.
8807         
8808 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8809
8810         * doc/dbus-specification.sgml:
8811         Add activation reply values.
8812         
8813 2003-08-05  Havoc Pennington  <hp@redhat.com>
8814
8815         * configure.in: 0.12
8816
8817 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8818
8819         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8820         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8821         (add_watch), (remove_watch), (create_source):
8822         Refcount fds, fixes some reentrancy issues.
8823         
8824 2003-07-30  Havoc Pennington  <hp@redhat.com>
8825
8826         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8827         bus address to be abstract if we have abstract sockets
8828
8829         * NEWS: update
8830
8831 2003-07-28  Havoc Pennington  <hp@redhat.com>
8832
8833         * bus/messagebus.in: fix to avoid processname/servicename 
8834         confusion, from Michael Kearey
8835         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8836         
8837 2003-07-23  Havoc Pennington  <hp@pobox.com>
8838
8839         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8840         fix from Andy Hanton to remove broken "+1"
8841
8842 2003-07-16  Havoc Pennington  <hp@pobox.com>
8843
8844         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8845         babysitter process, as suggested by Thomas Leonard, so 
8846         an "eval `dbus-launch --exit-with-session`" will actually 
8847         return
8848
8849 2003-07-16  Havoc Pennington  <hp@pobox.com>
8850
8851         * configure.in: print out EXPANDED_* variables in the summary at
8852         the end; clean up the code that computes EXPANDED_ variables and
8853         get the ones using exec_prefix right. Should make things work
8854         when you build without --prefix
8855
8856 2003-06-29  Havoc Pennington  <hp@pobox.com>
8857
8858         * mono/Test.cs (class Test): fire up a main loop and run it
8859
8860         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8861         done once, the app has to do it
8862
8863 2003-06-26  Havoc Pennington  <hp@pobox.com>
8864
8865         * mono/Connection.cs: set up connection with the glib main loop
8866
8867 2003-07-01  Havoc Pennington  <hp@redhat.com>
8868
8869         * doc/dbus-specification.sgml: clarify the format of a type code,
8870         change suggested by Jim Blandy
8871
8872 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8873
8874         * doc/Makefile.am:
8875         * tools/Makefile.am: Don't assume srcdir == builddir.
8876
8877         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8878         the allocated block.
8879         (_dbus_memory_test): New function.
8880         * dbus/dbus-test.h: Add _dbus_memory_test ().
8881         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8882
8883         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8884         of %c%c%c%c.
8885         (dbus_message_new): Remove obsolete @todo.
8886
8887         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8888         (_dbus_marshal_set_uint64): Fix comment.
8889
8890         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8891         hardcode FIELD_REPLY_SERIAL.
8892
8893         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8894         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8895
8896         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8897         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8898
8899 2003-06-24  Havoc Pennington  <hp@pobox.com>
8900
8901         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8902
8903 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8904
8905         * configure.in:
8906         * gcj/.cvsignore:
8907         * gcj/Hello.java:
8908         * gcj/Makefile.am:
8909         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8910         * gcj/org/.cvsignore:
8911         * gcj/org/Makefile.am:
8912         * gcj/org/freedesktop/.cvsignore:
8913         * gcj/org/freedesktop/Makefile.am:
8914         * gcj/org/freedesktop/dbus/.cvsignore:
8915         * gcj/org/freedesktop/dbus/Makefile.am:
8916         * gcj/org/freedesktop/dbus/Message.java: (Message),
8917         (Message.Message):
8918         * gcj/org/freedesktop/dbus/natMessage.cc:
8919         Fix the build system.
8920
8921 2003-06-22  Havoc Pennington  <hp@pobox.com>
8922
8923         * mono/Connection.cs: add more bindings
8924
8925         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8926         more than once.
8927
8928 2003-06-22  Havoc Pennington  <hp@pobox.com>
8929
8930         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8931         Start wrapping more stuff.
8932
8933 2003-06-22  Havoc Pennington  <hp@pobox.com>
8934
8935         * mono/Message.cs: implement Message.Wrap() that ensures we only
8936         have a single C# wrapper per DBusMessage, assuming it works which
8937         it probably doesn't.
8938
8939         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8940         (dbus_message_free_data_slot): new
8941         (dbus_message_set_data): new
8942         (dbus_message_get_data): new
8943
8944 2003-06-22  Havoc Pennington  <hp@pobox.com>
8945
8946         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8947         (_dbus_data_slot_allocator_alloc): rework these to keep a
8948         reference count on each slot and automatically manage a global
8949         slot ID variable passed in by address
8950
8951         * bus/bus.c: convert to new dataslot API
8952
8953         * dbus/dbus-bus.c: convert to new dataslot API
8954
8955         * dbus/dbus-connection.c: convert to new dataslot API
8956
8957         * dbus/dbus-server.c: convert to new dataslot API
8958
8959         * glib/dbus-gmain.c: ditto
8960
8961         * bus/test.c: ditto
8962
8963         * bus/connection.c: ditto
8964
8965 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8966
8967         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8968         after the gcj checks so that the correct configuration tags
8969         will be added to libtool.
8970
8971         * dbus-glib-1.pc.in: No need to specify any includes since
8972         dbus-1.pc.in has those.
8973
8974 2003-06-22  Havoc Pennington  <hp@pobox.com>
8975
8976         * mono/*, gcj/*, configure.in, Makefile.am:
8977         Check in makefiles and subdirs for mono and gcj bindings.
8978         Neither binding actually exists, just trying to get through
8979         all the build and other boring bits.
8980
8981 2003-06-21  Philip Blundell  <philb@gnu.org>
8982
8983         * tools/dbus-monitor.1: Updated.
8984
8985         * tools/dbus-send.1: Likewise.
8986
8987 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8988
8989         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8990         for hangup and error after checking read so we won't discard
8991         pending data if both hangup and read are set.
8992
8993 2003-06-19  Philip Blundell  <philb@gnu.org>
8994
8995         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8996
8997         * tools/dbus-send.c: Accept both --system and --session.
8998
8999         * tools/dbus-monitor.c: Same here.
9000
9001 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9002
9003         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9004         from C++ (Patch by Miloslav Trmac).
9005
9006 2003-06-15  Joe Shaw  <joe@assbarn.com>
9007
9008         * configure.in: Check for socklen_t.
9009
9010         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9011
9012         * test/test-segfault.c: Add #include <sys/time.h>
9013
9014         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9015         dbus-launch needs it.
9016
9017 2003-06-09  Havoc Pennington  <hp@redhat.com>
9018
9019         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9020         SUN_LEN, it breaks abstract socket usage
9021
9022         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9023         starts of lines.
9024
9025 2003-06-04  Havoc Pennington  <hp@pobox.com>
9026
9027         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9028         using unix:abstract=/foo, and when listening in a tmpdir
9029         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9030
9031         * dbus/dbus-transport.c (_dbus_transport_open): support
9032         unix:abstract=/foo
9033
9034         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9035         support abstract sockets
9036
9037         * dbus/dbus-transport-unix.c
9038         (_dbus_transport_new_for_domain_socket): support abstract sockets
9039
9040         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9041         toggle as an argument, implement abstract namespace support
9042         (_dbus_listen_unix_socket): ditto
9043
9044         * configure.in: add --enable-abstract-sockets and implement
9045         a configure check for autodetection of the right value.
9046
9047 2003-06-01  Havoc Pennington  <hp@pobox.com>
9048
9049         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9050         in /tmp (though on Linux this will end up being useless,
9051         when we add abstract namespace support)
9052
9053         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9054         subst'ing it
9055
9056 2003-05-28  Colin Walters  <walters@verbum.org>
9057
9058         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9059
9060 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9061
9062         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9063
9064 2003-05-17  Colin Walters  <walters@gnu.org>
9065
9066         * tools/dbus-send.c: Don't exit with an error code if --help was
9067         passed.  Default to using the session bus instead of the system
9068         one.
9069
9070         * tools/dbus-launch.c: Ditto.
9071
9072         * tools/dbus-monitor.c: Ditto.
9073
9074         * tools/dbus-send.1: Update with new arguments.
9075
9076         * tools/dbus-launch.c: Emit code to export variables.  New
9077         arguments -s and -c to specify shell syntax, and a bit of code to
9078         autodetect syntax.  Also, allow specifying a program to run.
9079
9080         * tools/dbus-launch.1: Update with new arguments.
9081
9082         * tools/dbus-send.1: Ditto.
9083
9084         * tools/dbus-monitor.1: Ditto.
9085
9086 2003-05-17  Havoc Pennington  <hp@pobox.com>
9087
9088         * bus/config-parser.c (merge_included): merge in policies from
9089         child configuration file.
9090
9091         * bus/policy.c (bus_policy_merge): function to merge two policies
9092         together
9093
9094 2003-05-16  Havoc Pennington  <hp@redhat.com>
9095
9096         * dbus/dbus-connection.c: disable verbose lock spew
9097
9098         * tools/dbus-send.c: add --print-reply command line option
9099
9100         * tools/dbus-print-message.h (print_message): new util function
9101         shared by dbus-send and dbus-monitor
9102
9103         * tools/dbus-monitor.c (handler_func): exit on disconnect
9104
9105         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9106         disconnected, don't try to use the read_watch
9107
9108         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9109         so we can find this bug more easily
9110
9111 2003-05-16  Havoc Pennington  <hp@redhat.com>
9112
9113         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9114         NULL as DBusHashTable is annoyingly likely to do.
9115
9116 2003-05-16  Colin Walters  <walters@verbum.org>
9117
9118         * tools/dbus-monitor.c: Add --session argument and usage()
9119         function.
9120
9121         * tools/dbus-monitor.1: Update with new --session arg.
9122
9123         * bus/Makefile.am (install-data-hook): Create
9124         $(libdir)/dbus-1.0/services so that the session bus is happy.
9125
9126 2003-05-15  Havoc Pennington  <hp@redhat.com>
9127
9128         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9129         on non-x86. ifdef's are evil.
9130
9131 2003-05-15  Havoc Pennington  <hp@redhat.com>
9132
9133         * configure.in: 0.11
9134
9135         * NEWS: update
9136
9137         * bus/Makefile.am (initddir): apparently we are supposed to put
9138         init scripts in /etc/rc.d/init.d not /etc/init.d
9139
9140         * bus/Makefile.am: remove the "you must --enable-tests to make
9141         check" as it broke distcheck
9142
9143         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9144
9145 2003-05-13  James Willcox  <jwillcox@gnome.org>
9146
9147         * configure.in:
9148         * bus/activation.c: (bus_activation_service_created),
9149         (bus_activation_activate_service):
9150         * bus/driver.c: (bus_driver_send_service_deleted),
9151         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9152         (bus_driver_send_service_acquired),
9153         (bus_driver_send_welcome_message),
9154         (bus_driver_handle_list_services):
9155         * bus/session.conf.in:
9156         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9157         (dbus_bus_service_exists), (dbus_bus_activate_service):
9158         * dbus/dbus-bus.h:
9159
9160         Add some convenience API which lets you activate a service, and did a
9161         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9162         and dbus_message_get_args()
9163
9164 2003-05-11  Havoc Pennington  <hp@pobox.com>
9165
9166         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9167         calling _dbus_marshal_validate_arg() for every byte in a byte
9168         array, etc.
9169
9170         * dbus/dbus-message-handler.c: use atomic reference counting to
9171         reduce number of locks slightly; the global lock in here sucks
9172
9173         * dbus/dbus-connection.c
9174         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9175         update_dispatch_status that can be called with lock held; then use
9176         in a couple places to reduce locking/unlocking
9177         (dbus_connection_send): hold the lock over the whole function
9178         instead of acquiring it twice.
9179
9180         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9181
9182         * bus/connection.c (bus_connections_setup_connection): fix access
9183         to already-freed memory.
9184
9185         * dbus/dbus-connection.c: keep a little cache of linked list
9186         nodes, to avoid using the global linked list alloc lock in the
9187         normal send-message case. Instead we just use the connection lock
9188         that we already have to take.
9189
9190         * dbus/dbus-list.c (_dbus_list_find_last): new function
9191
9192         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9193         change to use a struct for the atomic type; fix docs,
9194         they return value before increment, not after increment.
9195
9196         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9197         (_dbus_string_append_8_aligned): new functions to try to
9198         microoptimize this operation.
9199         (reallocate_for_length): break this out of set_length(), to
9200         improve profile info, and also so we can consider inlining the
9201         set_length() part.
9202
9203         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9204         strings with some preallocation, cuts down on our calls to realloc
9205         a fair bit. Though if we can get the "move entire string to empty
9206         string" optimization below to kick in here, it would be better.
9207
9208         * dbus/dbus-string.c (_dbus_string_move): just call
9209         _dbus_string_move_len
9210         (_dbus_string_move_len): add a special case for moving
9211         an entire string into an empty string; we can just
9212         swap the string data instead of doing any reallocs.
9213         (_dbus_string_init_preallocated): new function
9214
9215 2003-05-11  Havoc Pennington  <hp@pobox.com>
9216
9217         Write a "test-profile" that does echo client-server with threads;
9218         profile reveals lock contention, memcpy/realloc of buffers, and
9219         UTF-8 validation as hot spots. 20% of lock contention eliminated
9220         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9221         contention is global mempool locks for GList and DBusList.
9222
9223         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9224         x86 implementation
9225
9226         * dbus/dbus-connection.c (struct DBusConnection): use
9227         dbus_atomic_t for the reference count
9228
9229         * dbus/dbus-message.c (struct DBusMessage): declare
9230         dbus_atomic_t values as volatile
9231
9232         * configure.in: code to detect ability to use atomic integer
9233         operations in assembly, from GLib patch
9234
9235         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9236         time, tired of it being wrong in threads and forked processes
9237
9238         * glib/test-profile.c: a little program to bounce messages back
9239         and forth between threads and eat CPU
9240
9241         * dbus/dbus-connection.c: add debug spew macros for debugging
9242         thread locks; include config.h at top; fix deadlock in
9243         dbus_connection_flush()
9244
9245 2003-05-08  Havoc Pennington  <hp@pobox.com>
9246
9247         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9248         data from getting written, and there wasn't a good reason to
9249         use _exit really.
9250
9251         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9252         dbus_verbose lines in test coverage
9253         (main): add list of functions sorted by # of untested blocks
9254         to the coverage report
9255
9256         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9257
9258         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9259
9260         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9261         extend test coverage
9262
9263         * test/data/auth/cancel.auth-script: test canceling an
9264         authentication
9265
9266         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9267         aren't used. in CVS history if we end up needing them.
9268
9269 2003-05-04  Havoc Pennington  <hp@pobox.com>
9270
9271         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9272         unit test
9273
9274         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9275         function, which assumed length was in # of strings, not bytes
9276
9277         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9278         missing coverage
9279
9280         * dbus/dbus-connection.c
9281         (_dbus_connection_queue_received_message): disable function for
9282         now, we are only using it in test mode
9283
9284         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9285         remove a mistaken FIXME
9286
9287 2003-05-04  Havoc Pennington  <hp@pobox.com>
9288
9289         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9290         unlock mutex on successful return, patch from Anders Gustafsson
9291
9292 2003-05-04  Havoc Pennington  <hp@pobox.com>
9293
9294         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9295         Anders Gustafsson
9296
9297 2003-05-04  Havoc Pennington  <hp@pobox.com>
9298
9299         * tools/dbus-launch.c: implement
9300
9301         * bus/main.c (main), bus/bus.c (bus_context_new):
9302         implement --print-pid and --fork
9303
9304 2003-05-03  Havoc Pennington  <hp@redhat.com>
9305
9306         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9307         the address had no value, and add to test suite. Fix and
9308         regression test from Miloslav Trmac
9309
9310 2003-05-03  Havoc Pennington  <hp@pobox.com>
9311
9312         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9313         watch is invalid when handled
9314
9315         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9316         dbus-launch utility to launch the bus from a shell script.  Didn't
9317         actually implement dbus-launch yet, it's just a placeholder still.
9318
9319 2003-05-03  Havoc Pennington  <hp@pobox.com>
9320
9321         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9322         daemon; also documents daemon config file, so replaces
9323         doc/config-file.txt. Corrected some stuff from config-file.txt in
9324         the process of moving it.
9325
9326 2003-05-03  Havoc Pennington  <hp@pobox.com>
9327
9328         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9329         add some man pages
9330
9331 2003-05-03  Colin Walters  <walters@verbum.org>
9332
9333         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9334         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9335
9336         * Makefile.am: Update to use new .pc versioning scheme.
9337
9338 2003-05-02  Havoc Pennington  <hp@redhat.com>
9339
9340         * bus/system.conf.in: allow send/receive to/from message bus
9341         service
9342
9343 2003-04-30  Havoc Pennington  <hp@redhat.com>
9344
9345         * configure.in: print a note when building with unit tests and
9346         without assertions
9347
9348 2003-04-30  Havoc Pennington  <hp@redhat.com>
9349
9350         * Makefile.am: add a check-local that complains if you didn't
9351         configure with --enable-tests
9352
9353 2003-04-29  Havoc Pennington  <hp@redhat.com>
9354
9355         * glib/dbus-gmain.c: docs cleanups
9356
9357         * dbus/dbus-types.h: add docs on int64 types
9358
9359         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9360         public API docs section
9361
9362 2003-04-29  Havoc Pennington  <hp@redhat.com>
9363
9364         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9365         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9366         parallel install API version, not with the D-BUS package version.
9367
9368         * HACKING: move some of README over here
9369
9370         * README: updates, and document API/ABI policy
9371
9372         * configure.in: reindentation
9373
9374 2003-04-29  Havoc Pennington  <hp@redhat.com>
9375
9376         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9377         to use this library" to be sure people have the right
9378         expectations.
9379
9380 2003-04-28  Havoc Pennington  <hp@redhat.com>
9381
9382         * configure.in: add --enable-docs which by default is auto yes if
9383         doxygen and db2html found, no otherwise; but can be forced on/off
9384
9385         * doc/Makefile.am: conditionalize whether to build docs on
9386         --enable-docs
9387
9388 2003-04-28  Havoc Pennington  <hp@redhat.com>
9389
9390         * configure.in: 0.10
9391
9392         * NEWS: update
9393
9394         * bus/system.conf.in: add <includedir>system.d</includedir>
9395
9396         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9397         username was provided but not uid
9398
9399         * bus/config-parser.c (struct BusConfigParser): keep track of
9400         whether the parser is toplevel or was included; change some
9401         of the error handling if it's included.
9402
9403 2003-04-27  Havoc Pennington  <hp@pobox.com>
9404
9405         Unbreak my code...
9406
9407         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9408         report correct status if we finish processing authentication
9409         inside this function.
9410
9411         * bus/activation.c (try_send_activation_failure): use
9412         bus_transaction_send_error_reply
9413
9414         * bus/connection.c (bus_connection_get_groups): return an error
9415         explaining the problem
9416
9417         * bus/bus.c (bus_context_check_security_policy): implement
9418         restriction here that inactive connections can only send the
9419         hello message. Also, allow bus driver to send anything to
9420         any recipient.
9421
9422         * bus/connection.c (bus_connection_complete): create the
9423         BusClientPolicy here instead of on-demand.
9424         (bus_connection_get_policy): don't return an error
9425
9426         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9427         sender field in message being replied to
9428
9429         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9430         causing it to return FALSE always
9431
9432         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9433         we checked sender rather than destination
9434
9435 2003-04-25  Havoc Pennington  <hp@redhat.com>
9436
9437         test suite is slightly hosed at the moment, will fix soon
9438
9439         * bus/connection.c (bus_connections_expire_incomplete): fix to
9440         properly disable the timeout when required
9441         (bus_connection_set_name): check whether we can remove incomplete
9442         connections timeout after we complete each connection.
9443
9444         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9445         probably still broken.
9446
9447         * bus/services.c (bus_registry_acquire_service): implement max
9448         number of services owned, and honor allow/deny rules on which
9449         services a connection can own.
9450
9451         * bus/connection.c (bus_connection_get_policy): report errors here
9452
9453         * bus/activation.c: implement limit on number of pending
9454         activations
9455
9456 2003-04-25  Havoc Pennington  <hp@redhat.com>
9457
9458         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9459         where we used >= 0 instead of != DBUS_UID_UNSET.
9460
9461 2003-04-25  Havoc Pennington  <hp@redhat.com>
9462
9463         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9464         were toggled without add/remove, fix from Anders Gustafsson
9465
9466 2003-04-24  Havoc Pennington  <hp@redhat.com>
9467
9468         * test/data/valid-config-files/basic.conf: add <limit> tags to
9469         this test
9470
9471         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9472         <limit> tag in configuration file.
9473
9474 2003-04-24  Havoc Pennington  <hp@redhat.com>
9475
9476         * bus/dispatch.c: somehow missed some name_is
9477
9478         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9479         (_dbus_timeout_set_interval): new
9480
9481         * bus/connection.c (bus_connections_setup_connection): record time
9482         when each connection is first set up, and expire them after the
9483         auth timeout passes.
9484
9485 2003-04-24  Havoc Pennington  <hp@redhat.com>
9486
9487         * dbus/dbus-message.c (dbus_message_name_is): rename
9488         (dbus_message_service_is): rename
9489         (dbus_message_sender_is): rename
9490         (dbus_message_get_service): rename
9491
9492 2003-04-24  Havoc Pennington  <hp@redhat.com>
9493
9494         * configure.in: add --enable-checks
9495
9496         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9497
9498         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9499         to use thread locks.
9500         (_dbus_connection_handler_destroyed_locked): move some private
9501         functions into proper docs group
9502
9503         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9504         _dbus_return_val_if_fail
9505
9506         Throughout: use dbus_return_if_fail
9507
9508 2003-04-23  James Willcox  <jwillcox@gnome.org>
9509
9510         * glib/dbus-glib.h:
9511         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9512         (dbus_connection_setup_with_g_main),
9513         (dbus_server_setup_with_g_main):
9514         * glib/test-dbus-glib.c: (main):
9515         * glib/test-thread-client.c: (main):
9516         * glib/test-thread-server.c: (new_connection_callback), (main):
9517         * tools/dbus-monitor.c: (main):
9518
9519         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9520         and dbus_server_setup_with_g_main().
9521
9522 2003-04-20  Havoc Pennington  <hp@pobox.com>
9523
9524         * doc/dbus-specification.sgml: document the restrictions on
9525         message and service names
9526
9527 2003-04-22  Havoc Pennington  <hp@redhat.com>
9528
9529         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9530         support, and do some code cleanups to share more code and
9531         speed up array marshal/demarshal.
9532
9533         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9534
9535         * configure.in: generate dbus-arch-deps.h
9536
9537         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9538         64-bit typecodes
9539
9540 2003-04-22  Havoc Pennington  <hp@redhat.com>
9541
9542         * test/data/valid-messages/opposite-endian.message: fix test
9543         to use proper type for rply field
9544
9545         * test/data/invalid-messages: add tests for below validation
9546
9547         * dbus/dbus-message.c (decode_header_data): validate field types,
9548         and validate that named fields are valid names
9549         (decode_name_field): consider messages in the
9550         org.freedesktop.Local. namespace to be invalid.
9551
9552         * dbus/dbus-string.c (_dbus_string_validate_name): new
9553
9554 2003-04-19  Havoc Pennington  <hp@pobox.com>
9555
9556         * bus/driver.c (bus_driver_handle_hello): check limits and
9557         return an error if they are exceeded.
9558
9559         * bus/connection.c: maintain separate lists of active and inactive
9560         connections, and a count of each. Maintain count of completed
9561         connections per user. Implement code to check connection limits.
9562
9563         * dbus/dbus-list.c (_dbus_list_unlink): export
9564
9565         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9566         number of bytes in the message queue for a connection
9567
9568 2003-04-18  Havoc Pennington  <hp@pobox.com>
9569
9570         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9571
9572         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9573         memleaks
9574
9575         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9576         on realloc be sure to update the pointer in the keyring
9577
9578         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9579         offset to avoid writing to unallocated memory
9580
9581         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9582         try the next mechanism, so we properly handle OOM
9583
9584         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9585         on OOM.
9586         (_dbus_keyring_new): fix OOM bug
9587         (_dbus_keyring_new_homedir): always set error; impose a maximum
9588         number of keys we'll load from the file, mostly to speed up the
9589         test suite and make its OOM checks more useful, but also for
9590         general sanity.
9591
9592         * dbus/dbus-auth.c (process_error_server): reject authentication
9593         if we get an error from the client
9594         (process_cancel): on cancel, send REJECTED, per the spec
9595         (process_error_client): send CANCEL if we get an error from the
9596         server.
9597
9598 2003-04-18  Havoc Pennington  <hp@pobox.com>
9599
9600         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9601         debug spew
9602
9603         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9604         handling problem
9605
9606         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9607         about DBUS_TEST_HOMEDIR once
9608
9609         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9610         the environment
9611
9612         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9613         config file so we test the right thing
9614
9615         Throughout: assorted docs improvements
9616
9617 2003-04-18  Havoc Pennington  <hp@pobox.com>
9618
9619         * glib/dbus-gmain.c: adapt to watch changes
9620
9621         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9622
9623         * dbus/dbus-server.h: remove dbus_server_handle_watch
9624
9625         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9626
9627         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9628         like DBusTimeout, so we don't need dbus_connection_handle_watch
9629         etc.
9630
9631 2003-04-17  Havoc Pennington  <hp@redhat.com>
9632
9633         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9634         database usage so it all goes via the DBusUserDatabase cache.
9635
9636 2003-04-17  Havoc Pennington  <hp@redhat.com>
9637
9638         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9639         there was an OOM watch we skipped, we always return TRUE so we
9640         iterate again to have a look at it again. Fixes test suite hang.
9641         Code rearrangement also lets us lose some memset and only iterate
9642         over callbacks once.
9643
9644         * bus/driver.c (bus_driver_handle_message): sense of test for
9645         reply was backward
9646
9647 2003-04-16  Havoc Pennington  <hp@pobox.com>
9648
9649         * doc/dbus-specification.sgml: make spec say serials are unsigned
9650
9651         * dbus/dbus-message.h: change message serials to unsigned
9652
9653         * dbus/dbus-connection.c: adapt to message serials being unsigned
9654
9655 2003-04-15  Havoc Pennington  <hp@pobox.com>
9656
9657         * bus/bus.c: create and keep around a shared DBusUserDatabase
9658         object.
9659
9660         * bus/connection.c (bus_connection_get_groups): don't cache
9661         groups for user in the connection object, since user database
9662         object now does that.
9663
9664 2003-04-16  Havoc Pennington  <hp@redhat.com>
9665
9666         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9667         list of size counters
9668         (_dbus_message_loader_putback_message_link): put back a popped link
9669
9670         * dbus/dbus-connection.c
9671         (dbus_connection_set_max_live_messages_size): rename
9672         max_received_size
9673         (dbus_connection_get_outgoing_size): get size of outgoing
9674         queue
9675         (_dbus_connection_set_connection_counter): remove this cruft
9676
9677 2003-04-14  Havoc Pennington  <hp@redhat.com>
9678
9679         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9680         caching, but at some point we might want to be able to use a
9681         different database.
9682
9683         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9684         SHA1 conf file to test the sha1 auth mechanism, since the regular
9685         test always uses EXTERNAL when available.
9686
9687         * configure.in,
9688         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9689         add conf file that requires use of sha1 auth
9690
9691 2003-04-13  Havoc Pennington  <hp@pobox.com>
9692
9693         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9694         from Philip Blundell to send messages and monitor them.
9695
9696 2003-04-13  Havoc Pennington  <hp@pobox.com>
9697
9698         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9699         callbacks
9700
9701         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9702         users
9703
9704         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9705         fix to only recover unused bytes if we're already authenticated
9706         (_dbus_transport_get_is_authenticated): fix to still mark us
9707         authenticated if there are unused bytes.
9708
9709         * bus/dispatch.c: implement security policy checking
9710
9711         * bus/connection.c (bus_transaction_send_from_driver): new
9712
9713         * bus/bus.c (bus_context_check_security_policy): new
9714
9715         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9716         now we just set the DBusError and it gets converted to an error
9717         reply.
9718
9719         * bus/connection.c (allow_user_function): enable code using actual
9720         data from the config file
9721
9722         * bus/policy.c (list_allows_user): handle wildcard rules for
9723         user/group connection perms
9724
9725 2003-04-13  Havoc Pennington  <hp@pobox.com>
9726
9727         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9728
9729         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9730
9731         * bus/policy.c (bus_policy_append_mandatory_rule)
9732         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9733         (bus_policy_append_group_rule): new functions
9734
9735 2003-04-12  Havoc Pennington  <hp@pobox.com>
9736
9737         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9738
9739         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9740         the pid/gid/uid, just for paranoia.
9741
9742         * test/break-loader.c (randomly_do_n_things): find a byte
9743         containing a type code, and randomly change it to a different
9744         type code.
9745
9746 2003-04-12  Havoc Pennington  <hp@pobox.com>
9747
9748         * bus/policy.h: change BusPolicy to be the thing from the config
9749         file, and rename old BusPolicy to BusClientPolicy
9750
9751         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9752         match change in how policy works
9753
9754         * dbus/dbus-internals.h: mark assert_not_reached as
9755         __attribute((noreturn))__
9756
9757 2003-04-11  Havoc Pennington  <hp@redhat.com>
9758
9759         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9760         the broadcast service. Use boolean return for ServiceExists.
9761
9762 2003-04-11  Havoc Pennington  <hp@redhat.com>
9763
9764         * configure.in: add another directory to look for qt in.
9765
9766 2003-04-11  Havoc Pennington  <hp@redhat.com>
9767
9768         * AUTHORS: add Colin Walters
9769
9770 2003-04-11  Havoc Pennington  <hp@redhat.com>
9771
9772         * NEWS: update
9773
9774         * configure.in: 0.9
9775
9776 2003-04-11  Havoc Pennington  <hp@redhat.com>
9777
9778         * bus/messagebus.in: remove pid file when stopping the
9779         message bus, since the bus won't have privileges to remove it
9780         itself.
9781
9782 2003-04-11  Havoc Pennington  <hp@redhat.com>
9783
9784         * bus/bus.c (bus_context_new): move credentials change after
9785         creating pidfile
9786
9787 2003-04-11  Havoc Pennington  <hp@pobox.com>
9788
9789         * test/decode-gcov.c: add "below average functions" to the
9790         coverage report, and change how some of the code works.
9791
9792         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9793         not in the coverage stats.
9794
9795         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9796         couple places so running the test suite doesn't result in megaspam.
9797
9798 2003-04-11  Havoc Pennington  <hp@pobox.com>
9799
9800         * bus/dispatch.c (check_existent_service_activation): accept a no
9801         memory error in a place we didn't before
9802
9803         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9804         in case the first one failed," since the test suite is less
9805         broken now.
9806
9807 2003-04-10  Havoc Pennington  <hp@pobox.com>
9808
9809         * bus/dispatch.c (check_segfault_service_activation): add test
9810         for launching an executable that just crashes.
9811
9812         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9813         don't leave a million cores. We'll see how portable this is.
9814
9815 2003-04-10  Havoc Pennington  <hp@pobox.com>
9816
9817         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9818         the possible parent failures before we fork, so that we don't
9819         fail to create a babysitter after creating the child.
9820
9821         * bus/activation.c (bus_activation_activate_service): kill child
9822         if we don't successfully complete the activation.
9823
9824 2003-04-10  Havoc Pennington  <hp@redhat.com>
9825
9826         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9827         the connection if it's disconnected
9828
9829         * bus/activation.c (bus_activation_service_created): use new
9830         transaction features to roll back removal of pending activation if
9831         we don't successfully create the service after all. Don't remove
9832         pending activation if the function fails.
9833
9834         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9835         (_dbus_list_insert_after_link): new code to facilitate
9836         services.c fixes
9837
9838         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9839         new functionality, so we can preallocate the ability to insert
9840         into a hash table.
9841
9842         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9843         allowing us to put custom hooks in a transaction to be used for
9844         cancelling said transaction
9845
9846         * doc/dbus-specification.sgml: add some discussion of secondary
9847         service owners, and disallow zero-length service names
9848
9849         * bus/services.c (bus_registry_acquire_service): new function,
9850         splits out part of bus_driver_handle_acquire_service() and fixes
9851         a bug where we didn't remove the service doing the acquiring
9852         from the secondary queue if we failed to remove the current owner
9853         from the front of the queue.
9854
9855 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9856
9857         * doc/dbus-specification.sgml:
9858         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9859
9860 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9861
9862         * bus/.cvsignore:
9863         * glib/.cvsignore:
9864         * test/.cvsignore:
9865         Added files to cvsignore
9866
9867         * dbus/dbus-message.h:
9868         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9869         Make get_named() take two out argument and return a boolean.
9870         (dbus_message_iter_get_args_valist):
9871         Update usage of get_named().
9872         (dbus_message_iter_append_byte):
9873         Fix typo
9874         (dbus_message_iter_append_named)
9875         Fix typo
9876         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9877         More tests.
9878
9879 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9880
9881         * dbus/dbus-marshal.[ch]:
9882         Add array_type_pos argument to _dbus_marshal_validate_arg.
9883         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9884
9885         * dbus/dbus-message.[ch]:
9886         Multi-dimensional arrays have full type specification in the
9887         outermost array. Iter code re-arranged to handle this.
9888         Added some more iter tests.
9889
9890         * doc/dbus-specification.sgml:
9891         Add me to authors.
9892         Remove old FIXME.
9893         Update new array encoding description.
9894         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9895
9896         * test/data/invalid-messages/array-with-mixed-types.message:
9897         * test/data/valid-messages/array-of-array-of-uint32.message:
9898         Change to the new array format.
9899
9900         * test/data/invalid-messages/too-short-dict.message:
9901         Fix bug in test.
9902
9903         * test/data/valid-messages/recursive-types.message:
9904         Fix up and extend test.
9905
9906 2003-04-10  Havoc Pennington  <hp@pobox.com>
9907
9908         * bus/dispatch.c: lots of fixes
9909
9910         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9911         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9912         that was crack, broke the test service.
9913
9914         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9915         handling to avoid piling up errors if we get a failure on the
9916         first address.
9917
9918         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9919         pid in assertion failures.
9920
9921         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9922         to some fixed size of file descriptor array. Don't return TRUE
9923         anytime a timeout exists, that led to lots of busy loop silliness
9924         in the tests.
9925
9926 2003-04-09  Havoc Pennington  <hp@redhat.com>
9927
9928         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9929         I'd checked this in earlier but hadn't.
9930
9931 2003-04-09  Havoc Pennington  <hp@redhat.com>
9932
9933         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9934         the activation test (man this is getting old!)
9935
9936 2003-04-09  Havoc Pennington  <hp@redhat.com>
9937
9938         * test/test-utils.c: use dispatch status function to fix this up
9939
9940         * bus/connection.c (connection_watch_callback): don't dispatch
9941         from here
9942         (connection_timeout_callback): don't dispatch from here
9943         (bus_connections_setup_connection): set the dispatch status function
9944         (bus_connection_disconnected): unset it
9945
9946         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9947         used to add a connection to be dispatched
9948         (_dbus_loop_iterate): do the dispatching at the end of each
9949         iteration
9950
9951         * dbus/dbus-connection.c
9952         (dbus_connection_set_dispatch_status_function): new function
9953         allowing us to fix up main loop usage
9954         (_dbus_connection_last_unref): free all the various function
9955         user data
9956         (dbus_connection_dispatch): call the DispatchStatusFunction
9957         whenever this function returns
9958         (dbus_connection_handle_watch): call DispatchStatusFunction
9959         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9960         (reply_handler_timeout): call DispatchStatusFunction
9961         (dbus_connection_flush): call DispatchStatusFunction
9962
9963 2003-04-09  Havoc Pennington  <hp@redhat.com>
9964
9965         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9966         a memory leak
9967
9968         * bus/dispatch.c (check_service_activated): fix bug in test
9969
9970         * dbus/dbus-mainloop.c (check_timeout): fix this up
9971
9972         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9973         verbose output so we can sort out output from different processes,
9974         e.g. in the activation case.
9975
9976 2003-04-08  Colin Walters  <walters@gnu.org>
9977
9978         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9979         the pid file.
9980         (bus_context_new): Set it.
9981         (bus_context_unref): Use it to delete the pid file.
9982
9983 2003-04-08  Havoc Pennington  <hp@redhat.com>
9984
9985         * test/data/invalid-messages/array-with-mixed-types.message:
9986         regression test that fails for the moment
9987
9988         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9989         tests for convenience
9990
9991         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9992         array of nil, it broke things.
9993
9994         * test/data/invalid-messages/array-of-nil.message: regression test
9995
9996         * test/data/valid-messages/array-of-array-of-uint32.message:
9997         happened to write this so added it to suite
9998
9999 2003-04-08  Havoc Pennington  <hp@redhat.com>
10000
10001         * bus/driver.c (bus_driver_handle_acquire_service): init
10002         retval/reply before checking name
10003
10004         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10005         recursion depth argument
10006
10007         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10008         in the public struct for future extension
10009
10010         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10011         typo
10012
10013         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10014         message
10015
10016         * doc/dbus-specification.sgml: fix typo
10017
10018 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10019
10020         Implemented recursive types, named types and new-style iters
10021
10022         * bus/driver.c:
10023         * glib/test-thread-client.c: (thread_func):
10024         * glib/test-thread-server.c: (handle_test_message):
10025         * test/test-service.c: (handle_echo):
10026         Update to new api
10027
10028         * dbus/Makefile.am:
10029         * dbus/dbus-dict.c:
10030         * dbus/dbus-dict.h:
10031         * dbus/dbus.h
10032         Remove DBusDict
10033
10034         * dbus/dbus-internals.c: (_dbus_type_to_string):
10035         Update for new types.
10036
10037         * dbus/dbus-marshal.[ch]:
10038         Implement recursive types and the new marshalling format.
10039         Remove hardcoded dict marshalling.
10040         Marshal named types.
10041
10042         * dbus/dbus-message-builder.c:
10043         Add BYTE_ARRAY.
10044         Remove references to old types
10045
10046         * dbus/dbus-message.[ch]:
10047         New non-refcounted iter API that supports recursive iters.
10048         Use iters for appending, including support for recursive
10049         iters.
10050         Add byte and named type support.
10051         Update everything to new marshalling formats.
10052         Add tests for new API.
10053
10054         * dbus/dbus-protocol.h:
10055         Remove old array types.
10056         Add types: BYTE, ARRAY, DICT, NAMED
10057
10058         * dbus/dbus-string.c:
10059         * dbus/dbus-sysdeps.c:
10060         Make parse_double locale safe.
10061
10062         * dbus/dbus-test-main.c:
10063         Call setlocale.
10064
10065         * dbus/dbus-test.c:
10066         Kill dict test
10067
10068         * doc/dbus-specification.sgml:
10069         Update spec
10070
10071         * test/data/incomplete-messages/missing-body.message:
10072         * test/data/invalid-messages/bad-boolean.message:
10073         * test/data/invalid-messages/bad-boolean-array.message:
10074         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10075         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10076         * test/data/invalid-messages/too-short-dict.message:
10077         * test/data/valid-messages/dict-simple.message:
10078         * test/data/valid-messages/dict.message:
10079         * test/data/valid-messages/emptiness.message:
10080         * test/data/valid-messages/lots-of-arguments.message:
10081         * test/data/valid-messages/no-padding.message:
10082         * test/data/valid-messages/recursive-types.message:
10083         Add missing NAME fields
10084         Fix up dicts & arrays
10085
10086         * test/data/invalid-messages/dict-with-nil-value.message:
10087         Removed, this is not invalid anymore.
10088
10089         * test/data/valid-messages/recursive-types.message:
10090         Add new test for deeply recursive types.
10091
10092 2003-04-07  Havoc Pennington  <hp@pobox.com>
10093
10094         * bus/driver.c (bus_driver_handle_acquire_service): return an
10095         error if you try to acquire a service that starts with ':'
10096
10097 2003-04-07  Havoc Pennington  <hp@redhat.com>
10098
10099         * doc/dbus-specification.sgml: require that base service names
10100         start with ':' and that the base service is created/deleted
10101         as first and last things a connection does on the bus
10102
10103         * bus/dispatch.c (check_existent_service_activation): lots more
10104         work on the activation test; it doesn't fully pass yet...
10105
10106         * test/test-service.c (main): fix so we don't memleak the
10107         connection to the message bus
10108         (filter_func): accept a message asking us to exit
10109
10110 2003-04-06  Havoc Pennington  <hp@pobox.com>
10111
10112         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10113         from Colin Walters
10114
10115         * configure.in: fixes to Qt detection from Colin Walters
10116
10117         * doc/Makefile.am: Only remove generated docbook dirs if they
10118         exist, from Colin Walters
10119
10120         * dbus/dbus-bus.c: change how we set well-known connections to
10121         NULL, so that it works if a single connection is stored in
10122         two well-known array slots.
10123
10124         * test/Makefile.am: remove a lot of stuff that isn't immediately
10125         useful, it's in CVS history if we want it.
10126
10127         * test/test-service.c: use dbus-mainloop instead of that
10128         watch.[hc] crack
10129
10130 2003-04-06  Havoc Pennington  <hp@pobox.com>
10131
10132         * dbus/Makefile.am: split lists of sources into stuff that goes in
10133         the library, util functions that go in the lib and are also used
10134         elsewhere, and util functions that are used in tests/daemon but
10135         don't go in the lib.
10136
10137         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10138         here so it can be used in test binaries also
10139
10140 2003-04-06  Havoc Pennington  <hp@pobox.com>
10141
10142         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10143         here in the parent process, so we can return an error if it
10144         fails. Also, move some of the code into the child so the parent
10145         is less hosed if we fail midway through.
10146
10147         * bus/bus.c (bus_context_new): move pidfile detection further up
10148         in the function, before we start overwriting sockets and such.
10149
10150         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10151
10152         * configure.in: add --with-system-pid-file and --with-system-socket
10153
10154 2003-04-06  Colin Walters  <walters@verbum.org>
10155
10156         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10157
10158         * bus/system.conf.in: Declare a pidfile.
10159
10160         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10161         create one (if appropriate).
10162
10163         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10164         (struct BusConfigParser) [pidfile]: New.
10165         (element_type_to_name, merge_included, start_busconfig_child)
10166         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10167         (bus_config_parser_unref): Free it.
10168         (bus_config_parser_get_pidfile): New function.
10169
10170         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10171
10172         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10173
10174         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10175
10176         * dbus/dbus-sysdeps.h: Prototype it.
10177
10178 2003-04-06  Havoc Pennington  <hp@pobox.com>
10179
10180         * bus/bus.c (bus_context_new): print the address in here, rather
10181         than in main(), because we need to do it before forking the daemon
10182
10183         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10184         on the service nonexistent error
10185
10186         * bus/driver.c (bus_driver_handle_acquire_service): set the
10187         sender on the AcquireService reply
10188
10189         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10190         server also listen on a UNIX socket so services can connect to it.
10191
10192 2003-04-06  Havoc Pennington  <hp@pobox.com>
10193
10194         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10195         so it detects deadlocks and also we actually init threads when
10196         debugging.
10197
10198 2003-04-06  Havoc Pennington  <hp@pobox.com>
10199
10200         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10201         save the domain socket name, and unlink it when we disconnect the
10202         server. Means that at least when we exit normally, we won't leave
10203         a bunch of junk in /tmp
10204
10205         * dbus/dbus-transport-unix.c
10206         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10207         memory management). (I was making a real change here but then
10208         didn't)
10209
10210 2003-04-06  Havoc Pennington  <hp@pobox.com>
10211
10212         * bus/bus.c (bus_context_new): fix wrong handling of
10213         server_data_slot_unref() in the error case.
10214
10215         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10216         "(condition) != 0" to _dbus_real_assert so that
10217         "_dbus_assert (pointer)" doesn't cause a warning
10218
10219         * bus/main.c (main): accept --print-address option to print out
10220         the message bus address
10221
10222         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10223
10224         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10225         "tmpdir" option to unix: address on client side
10226
10227         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10228         to unix: address
10229
10230         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10231         we can use to create sockets in the test suite.
10232
10233         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10234         cleanly. To be used for testing.
10235
10236         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10237
10238         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10239
10240         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10241         handle trying to call this when there's no servers active
10242
10243 2003-04-05  Havoc Pennington  <hp@pobox.com>
10244
10245         * NEWS: update
10246
10247         * configure.in: 0.8
10248
10249 2003-04-05  Havoc Pennington  <hp@pobox.com>
10250
10251         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10252         crash on startup. Need to get "try starting the daemon"
10253         in the test suite I guess. ;-)
10254
10255         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10256         tracked the number of open connections; it's better done in
10257         application-specific code as you want it to span all servers etc.
10258
10259 2003-04-05  Havoc Pennington  <hp@pobox.com>
10260
10261         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10262         patch from Colin Walters
10263
10264 2003-04-05  Havoc Pennington  <hp@pobox.com>
10265
10266         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10267         reality; in fact multiple mechanisms are allowed.
10268
10269         * dbus/dbus-internals.c (_dbus_real_assert)
10270         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10271         _dbus_assert_not_reached() into functions, so that they don't show
10272         up in basic block counts for test coverage, and don't use up as
10273         much disk space. Does mean slower execution speed though, so
10274         assumes --disable-asserts is the normal production case.
10275
10276 2003-04-05  Havoc Pennington  <hp@pobox.com>
10277
10278         * test/Makefile.am (dist-hook): also dist *.in files
10279
10280         * NEWS: update
10281
10282         * configure.in: 0.7
10283
10284 2003-04-05  Havoc Pennington  <hp@pobox.com>
10285
10286         * dbus/dbus-string.c: docs warning
10287
10288         * dbus/dbus-spawn.c: missing docs
10289
10290         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10291
10292 2003-04-05  Havoc Pennington  <hp@pobox.com>
10293
10294         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10295         magic from GLib
10296
10297         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10298         to -1 once we've reaped the babysitter
10299         (_dbus_babysitter_handle_watch): do as much work as we can, not
10300         just one go of it
10301
10302         * bus/activation.c: add code using DBusBabysitter so that we
10303         handle it when a service fails to start up properly.
10304         (bus_activation_service_created): don't remove the activation
10305         entries as we go, just let them get removed when we free the pending
10306         activation. Unref reply messages after sending them.
10307
10308 2003-04-05  Havoc Pennington  <hp@pobox.com>
10309
10310         * test/decode-gcov.c (main): print per-directory stats in the report
10311
10312         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10313
10314 2003-04-05  Havoc Pennington  <hp@pobox.com>
10315
10316         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10317
10318         * test/decode-gcov.c: hack up a little program to suck data
10319         out of gcov files. Yes this is sort of silly.
10320
10321         * configure.in: define something in config.h and do an
10322         AM_CONDITIONAL when gcov is enabled
10323
10324 2003-04-04  Havoc Pennington  <hp@redhat.com>
10325
10326         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10327         return a "babysitter" object that is used to monitor the status of
10328         the spawned process and reap it when required.
10329
10330         * test/test-segfault.c, test/test-exit.c,
10331         test/test-sleep-forever.c: binaries that do various lame things,
10332         used in the test suite.
10333
10334         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10335
10336 2003-04-03  Havoc Pennington  <hp@pobox.com>
10337
10338         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10339         in preparation for modifying it, dbus-sysdeps is getting
10340         a bit unmanageable.
10341
10342 2003-04-03  Havoc Pennington  <hp@redhat.com>
10343
10344         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10345         have multiple ones
10346
10347         * bus/*.[hc]: adapt to mainloop change
10348
10349 2003-04-03  Havoc Pennington  <hp@redhat.com>
10350
10351         * bus/activation.c (load_directory): fix up memleaks
10352         (bus_activation_entry_free): free the entry
10353
10354         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10355         we get one from the message bus; fix memleaks.
10356
10357         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10358
10359 2003-04-03  Havoc Pennington  <hp@pobox.com>
10360
10361         * bus/config-parser.c (bus_config_parser_unref): free
10362         list of mechanisms, bug discovered by test suite enhancements
10363         (putting system.conf and session.conf into suite)
10364
10365         * test/Makefile.am, test/test-service.c: add placeholder for a
10366         test service that we'll activate as part of test suite. Doesn't
10367         do anything yet.
10368
10369         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10370         setting NULL value, and use system malloc not dbus_malloc()
10371         when we have unavoidable memleakage.
10372
10373         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10374         didn't work, and support DBUS_BUS_ACTIVATION.
10375
10376         * bus/activation.c (child_setup): pass our well-known bus type to
10377         the child
10378
10379         * bus/config-parser.c: support <type> to specify well-known type
10380
10381         * doc/dbus-specification.sgml: document the env variables to
10382         locate well-known buses and find service activator
10383
10384 2003-04-02  Havoc Pennington  <hp@redhat.com>
10385
10386         * test/Makefile.am (all-local): add a rule to copy tests to
10387         builddir, so we can have generated tests. Use this to remove the
10388         silly hack for testing system.conf and session.conf. Will use this
10389         shortly to generate .service files pointing to test binaries.
10390
10391 2003-04-02  Havoc Pennington  <hp@redhat.com>
10392
10393         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10394         current alloc and needed new length, not max of the doubled
10395         allocation and needed new length. Also, when building tests,
10396         don't do the double-allocation stuff, just realloc every time.
10397
10398 2003-04-02  Havoc Pennington  <hp@redhat.com>
10399
10400         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10401         in error messages
10402         (_dbus_string_get_dirname): new
10403         (_dbus_sysdeps_test): new
10404         (_dbus_directory_open): include dirnames in error messages
10405
10406         * bus/config-parser.c: interpret <include> and <includedir> and
10407         <servicedir> relative to config file location if the given
10408         filename is not absolute.
10409
10410         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10411
10412 2003-04-02  Havoc Pennington  <hp@redhat.com>
10413
10414         * bus/connection.c (bus_transaction_send_error_reply): set sender
10415         service for the error, and unref the reply on success
10416
10417         * bus/activation.c: convert to use BusTransaction so OOM can be
10418         handled correctly
10419         (bus_activation_service_created): set sender of the message
10420
10421 2003-04-01  Havoc Pennington  <hp@redhat.com>
10422
10423         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10424         <includedir> (at least mostly)
10425
10426         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10427         first, then the user ID
10428
10429 2003-04-01  Havoc Pennington  <hp@pobox.com>
10430
10431         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10432         function
10433
10434         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10435
10436         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10437
10438         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10439         socket 0777, and unlink any existing socket.
10440
10441         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10442         the configuration file so specifies; set up auth mechanism
10443         restrictions
10444
10445         * bus/config-parser.c (bus_config_parser_content): add support
10446         for <fork> option and fill in code for <auth>
10447
10448         * bus/system.conf.in: add <fork/> to default configuration,
10449         and limit auth mechanisms to EXTERNAL
10450
10451         * doc/config-file.txt (Elements): add <fork>
10452
10453         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10454         (_dbus_change_identity): new function
10455
10456 2003-03-31  Havoc Pennington  <hp@redhat.com>
10457
10458         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10459         (_dbus_listen_unix_socket): fix off-by-one error in null
10460         termination spotted by Nalin
10461
10462 2003-03-31  Havoc Pennington  <hp@redhat.com>
10463
10464         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10465         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10466         having a real home directory available.
10467
10468 2003-03-31  Havoc Pennington  <hp@redhat.com>
10469
10470         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10471
10472         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10473
10474         * configure.in: add support for specifying a style of init script
10475         to install
10476
10477 2003-03-31  Havoc Pennington  <hp@redhat.com>
10478
10479         Fix some annoying DBusString API and fix all affected code.
10480
10481         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10482         max_length argument
10483         (_dbus_string_get_data): change to return string instead of using
10484         an out param
10485         (_dbus_string_get_const_data): ditto
10486         (_dbus_string_get_data_len): ditto
10487         (_dbus_string_get_const_data_len): ditto
10488
10489 2003-03-31  Havoc Pennington  <hp@redhat.com>
10490
10491         * bus/main.c (main): fix up the command line arguments to be nicer
10492
10493 2003-03-31  Havoc Pennington  <hp@redhat.com>
10494
10495         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10496         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10497         final location that lands in the config file
10498
10499         * bus/config-loader-expat.c (bus_config_load): fix type of
10500         XML_Parser variable
10501
10502         * doc/TODO: remove TODO item for dbus_bus_get()
10503
10504         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10505
10506 2003-03-31  Havoc Pennington  <hp@pobox.com>
10507
10508         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10509         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10510         argument since they are always client side
10511
10512         * dbus/dbus-server.c (dbus_server_get_address): new function
10513
10514         * bus/main.c (main): take the configuration file as an argument.
10515
10516         * test/data/valid-config-files/debug-allow-all.conf: new file to
10517         use with dispatch.c tests for example
10518
10519         * bus/test-main.c (main): require test data dir
10520
10521         * bus/bus.c (bus_context_new): change this to take a
10522         configuration file name as argument
10523
10524         * doc/config-file.txt (Elements): add <servicedir>
10525
10526         * bus/system.conf, bus/session.conf: new files
10527
10528         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10529         well-known socket if none set
10530
10531         * configure.in: create system.conf and session.conf
10532
10533 2003-03-30  Havoc Pennington  <hp@pobox.com>
10534
10535         * bus/config-parser.c: hacking
10536
10537         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10538         to shut down, since it could cause weirdness with the DBusList
10539         lock
10540
10541         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10542         link-oriented stack routines
10543         (alloc_link): free the mempool if the first alloc from it fails
10544
10545         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10546
10547         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10548         from GLib
10549         (_dbus_string_skip_white): new
10550
10551         * doc/config-file.txt (Elements): add <includedir>
10552
10553 2003-03-28  Havoc Pennington  <hp@pobox.com>
10554
10555         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10556         (_dbus_string_copy_data): new functions
10557
10558 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10559
10560         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10561         * dbus/dbus-bus.h:
10562         Add dbus_bus_get.
10563
10564         * dbus/dbus-memory.c:
10565         Fix a doc comment.
10566
10567 2003-03-28  Havoc Pennington  <hp@pobox.com>
10568
10569         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10570         I think it may have just been superstition. Not sure.
10571
10572         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10573         failures that were not being handled.
10574
10575         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10576
10577         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10578         row that will fail on out-of-memory.
10579
10580         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10581         function for testing out-of-memory handling.
10582
10583         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10584         allocation functions, they do map exactly to the expat ones.
10585
10586 2003-03-27  Havoc Pennington  <hp@redhat.com>
10587
10588         * bus/config-loader-libxml.c (bus_config_load): add another error
10589         check
10590
10591 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10592
10593         * doc/TODO:
10594         Add note about automatic service activation.
10595
10596         * doc/dbus-specification.sgml:
10597         Rename the specification and clarify a few things.
10598
10599 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10600
10601         * Doxyfile.in:
10602         * dbus/dbus-address.c:
10603         * dbus/dbus-dict.c:
10604         * dbus/dbus-marshal.c:
10605         * dbus/dbus-server-debug-pipe.c:
10606         * dbus/dbus-transport-unix.c:
10607         Fix documentation warnings.
10608
10609 2003-03-26  Havoc Pennington  <hp@pobox.com>
10610
10611         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10612         after every test so it's quick and easy to see which leaked, and
10613         so we test multiple dbus_shutdown() calls
10614
10615         * configure.in: change configure.in XML stuff to also support
10616         expat
10617
10618         * config-loader-libxml.c: some hacking
10619
10620         * config-loader-expat.c: some hacking
10621
10622         * config-parser.c: some hacking, plus tests
10623
10624 2003-03-25  Havoc Pennington  <hp@redhat.com>
10625
10626         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10627
10628         * configure.in: add --with-xml option to specify XML library,
10629         right now only libxml is supported.
10630
10631         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10632         nonworking code between home and work, still just stubs
10633
10634 2003-03-24  Havoc Pennington  <hp@redhat.com>
10635
10636         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10637         file
10638
10639         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10640         NULL argument for "message" if the error is a well-known one,
10641         fill in a generic message in this case.
10642
10643         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10644         favor of DBusError
10645
10646         * bus/test.c (bus_test_flush_bus): add
10647
10648         * bus/policy.c (bus_policy_test): test code stub
10649
10650 2003-03-24  Havoc Pennington  <hp@pobox.com>
10651
10652         * bus/connection.c (bus_connections_setup_connection): set up
10653         the "can this user connect" function, but it always returns
10654         TRUE until we have a config file parser so we can have a config
10655         file that allows connections.
10656
10657 2003-03-23  Havoc Pennington  <hp@pobox.com>
10658
10659         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10660         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10661         the mutex, so we can check for proper memory management
10662         and OOM handling.
10663
10664         * dbus/dbus-dataslot.c: remove the mutex from
10665         DBusDataSlotAllocator and lock it manually when using it,
10666         to simplify fitting it into the global slots framework.
10667
10668         * dbus/dbus-threads.c (init_static_locks): rework how we're
10669         handling global locks so they are easily shut down.
10670
10671         * bus/policy.c (bus_policy_append_rule): fix
10672
10673         * bus/test-main.c (main): check for memleaks
10674
10675         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10676         test suite check for memleaks
10677
10678         * dbus/dbus-memory.c: add support in test mode for tracking
10679         number of outstanding blocks
10680
10681 2003-03-23  Havoc Pennington  <hp@pobox.com>
10682
10683         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10684         policies code
10685
10686         * dbus/dbus-hash.h: add ULONG hash keys
10687
10688         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10689         (_dbus_get_group_id): new function
10690
10691 2003-03-20  Havoc Pennington  <hp@redhat.com>
10692
10693         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10694         new function
10695         (dbus_connection_get_unix_user): new function
10696
10697 2003-03-20  Havoc Pennington  <hp@pobox.com>
10698
10699         * bus/connection.c (bus_connection_send_oom_error): assert that
10700         message has a sender
10701         (connection_execute_transaction): ditto
10702         (bus_connection_preallocate_oom_error): fix to set the sender, and
10703         set recipient to the destination service, not the bus driver
10704
10705         * bus/policy.c: hacking
10706
10707         * dbus/dbus-message.c (dbus_message_service_is): new function
10708         (dbus_message_sender_is): new
10709
10710 2003-03-19  Havoc Pennington  <hp@redhat.com>
10711
10712         * bus/policy.c: start sketching code for policy restrictions on
10713         what connections can do.
10714
10715 2003-03-18  Havoc Pennington  <hp@redhat.com>
10716
10717         * doc/TODO: some notes on high-level todo items. Little nitpick
10718         stuff is all in @todo, so no need to add it here.
10719
10720         * doc/config-file.txt: some notes on how config file might look
10721
10722 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10723
10724         * configure.in: 0.6
10725
10726         * NEWS: Update.
10727
10728 2003-03-17  Havoc Pennington  <hp@redhat.com>
10729
10730         * dbus/dbus-internals.h: add gcc attributes so that
10731         our printf-style functions warn on bad arguments to
10732         format
10733
10734         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10735         format bug
10736
10737         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10738         printf format bug
10739
10740 2003-03-17  Havoc Pennington  <hp@redhat.com>
10741
10742         * bus/test-main.c (main): make it print something as it runs
10743         so make check doesn't look stuck
10744
10745         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10746         from CVS, now obsolete
10747
10748 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10749
10750         * bus/dispatch.c: (bus_dispatch):
10751         Refetch the service name since it may have been reallocated
10752         when dbus_message_set_sender was called.
10753
10754         * dbus/dbus-sysdeps.c: (_dbus_accept):
10755         Add address and address length variables and use them to stop
10756         valgrind from complaining.
10757
10758 2003-03-17  Havoc Pennington  <hp@pobox.com>
10759
10760         All tests pass, no memleaks, no valgrind complaints.
10761
10762         * bus/test.c: refcount handler_slot
10763
10764         * bus/connection.c (bus_connections_new): refcount
10765         connection_data_slot
10766
10767         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10768         bytes so that auth scripts pass.
10769
10770         * bus/dispatch.c: init message_handler_slot so it gets allocated
10771         properly
10772
10773         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10774
10775         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10776         dealloc server_pipe_hash when no longer used for benefit of
10777         leak checking
10778
10779         * dbus/dbus-auth.c (process_command): memleak fix
10780
10781         * bus/dispatch.c (check_hello_message): memleak fix
10782
10783 2003-03-16  Havoc Pennington  <hp@pobox.com>
10784
10785         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10786
10787 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10788
10789         * bus/activation.c (bus_activation_activate_service): Append
10790         the pending activation entry to the list of pending activations.
10791
10792 2003-03-16  Havoc Pennington  <hp@pobox.com>
10793
10794         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10795         connections
10796
10797         * dbus/dbus-address.c (create_entry): fix OOM handling when
10798         failing to alloc entry->method
10799
10800 2003-03-16  Havoc Pennington  <hp@pobox.com>
10801
10802         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10803         the watch
10804
10805         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10806         add some missing dbus_set_result
10807
10808         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10809         alloc the DBusMessageHandler
10810
10811         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10812         the transport here, since we call this from the finalizer; it
10813         resulted in a double-finalize.
10814
10815         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10816         where we tried to use transport->connection that was NULL,
10817         happened when transport was disconnected early on due to OOM
10818
10819         * bus/*.c: adapt to handle OOM for watches/timeouts
10820
10821         * dbus/dbus-transport-unix.c: port to handle OOM during
10822         watch handling
10823
10824         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10825         reference to unused bytes instead of a copy
10826
10827         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10828         out of memory
10829
10830         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10831         FALSE on OOM
10832
10833         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10834         of memory
10835
10836 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10837
10838         * doc/dbus-specification.sgml:
10839         Document reply message for ActivateService.
10840
10841 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10842
10843         * bus/activation.c: (bus_pending_activation_entry_free),
10844         (bus_pending_activation_free), (bus_activation_new),
10845         (bus_activation_unref), (bus_activation_service_created),
10846         (bus_activation_activate_service):
10847         * bus/activation.h:
10848         * bus/bus.c: (bus_context_new):
10849         * bus/desktop-file.c: (new_section):
10850         * bus/driver.c: (bus_driver_send_service_deleted),
10851         (bus_driver_handle_activate_service):
10852         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10853         * bus/services.h:
10854         * dbus/dbus-connection.c:
10855         (dbus_connection_send_with_reply_and_block):
10856         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10857         * dbus/dbus-protocol.h:
10858         Make activation work better. Now pending activations will be queued
10859         and the daemon won't try to activate services that are already registered.
10860
10861 2003-03-16  Havoc Pennington  <hp@pobox.com>
10862
10863         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10864         connection data
10865
10866         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10867         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10868
10869 2003-03-16  Havoc Pennington  <hp@pobox.com>
10870
10871         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10872         this. always run the test suite before commit...
10873
10874         * bus/*: adapt to DBusConnection API changes
10875
10876         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10877         requires renaming stuff to avoid dbus_connection_dispatch name
10878         conflict.
10879
10880         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10881         function
10882
10883         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10884         separate from _dbus_message_loader_return_buffer()
10885
10886         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10887         this, because it's now always broken to use; the number of
10888         messages in queue vs. the number still buffered by the message
10889         loader is undefined/meaningless. Should use
10890         dbus_connection_get_dispatch_state().
10891         (dbus_connection_dispatch): rename from
10892         dbus_connection_dispatch_message
10893
10894 2003-03-16  Havoc Pennington  <hp@pobox.com>
10895
10896         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10897         implementation
10898
10899 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10900
10901         * dbus/dbus-connection.c:
10902         (dbus_connection_send_with_reply_and_block):
10903         Decrease connection->n_incoming when removing an entry
10904         from the list.
10905         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10906         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10907         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10908         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10909         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10910         (dbus_dict_get_byte_array):
10911         Handle NULL arrays and strings. Also add support for byte arrays.
10912
10913         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10914         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10915         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10916         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10917         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10918         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10919         * dbus/dbus-marshal.h:
10920         Add support for marshalling and demarshalling empty arrays and strings.
10921
10922         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10923         (dbus_message_append_string_array),
10924         (dbus_message_iter_get_boolean),
10925         (dbus_message_iter_get_boolean_array),
10926         (dbus_message_iter_get_int32_array),
10927         (dbus_message_iter_get_uint32_array),
10928         (dbus_message_iter_get_double_array),
10929         (dbus_message_iter_get_byte_array),
10930         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10931         (check_message_handling):
10932         Add support for getting empty arrays and dicts.
10933
10934         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10935         Don't do any validation at all for now, that's better than just checking
10936         for ASCII.
10937
10938         * test/data/valid-messages/emptiness.message:
10939         New test message with lots of empty arrays.
10940
10941 2003-03-16  Havoc Pennington  <hp@pobox.com>
10942
10943         * dbus/dbus-connection.c
10944         (_dbus_connection_queue_received_message_link): new function that
10945         can't fail due to OOM
10946
10947         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10948         new function pops a message together with a list link
10949         containing it.
10950
10951         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10952         message queuing functions to avoid needing to alloc memory
10953
10954 2003-03-16  Havoc Pennington  <hp@pobox.com>
10955
10956         Oops - test code was only testing failure of around 30 of the
10957         mallocs in the test path, but it turns out there are 500+
10958         mallocs. I believe this was due to misguided linking setup such
10959         that there was one copy of dbus_malloc etc. in the daemon and one
10960         in the shared lib, and only daemon mallocs were tested. In any
10961         case, the test case now tests all 500+ mallocs, and doesn't pass
10962         yet, though there are lots of fixes in this patch.
10963
10964         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10965         this so that it doesn't need to allocate memory, since it
10966         has no way of indicating failure due to OOM (and would be
10967         annoying if it did).
10968
10969         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10970
10971         * bus/Makefile.am: rearrange to create two self-contained
10972         libraries, to avoid having libraries with overlapping symbols.
10973         that was resulting in weirdness, e.g. I'm pretty sure there
10974         were two copies of global static variables.
10975
10976         * dbus/dbus-internals.c: move the malloc debug stuff to
10977         dbus-memory.c
10978
10979         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10980         empty.
10981
10982         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10983
10984         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10985         on failure.
10986
10987         * bus/dispatch.c (bus_dispatch_add_connection): free
10988         message_handler_slot when no longer using it, so
10989         memory leak checkers are happy for the test suite.
10990
10991         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10992
10993         * bus/bus.c (new_connection_callback): disconnect in here if
10994         bus_connections_setup_connection fails.
10995
10996         * bus/connection.c (bus_connections_unref): fix to free the
10997         connections
10998         (bus_connections_setup_connection): if this fails, don't
10999         disconnect the connection, just be sure there are no side
11000         effects.
11001
11002         * dbus/dbus-string.c (undo_alignment): unbreak this
11003
11004         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11005         leaking
11006         (_dbus_auth_new): fix the order in which we free strings
11007         on OOM failure
11008
11009         * bus/connection.c (bus_connection_disconnected): fix to
11010         not send ServiceDeleted multiple times in case of memory
11011         allocation failure
11012
11013         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11014         get the base service name
11015         (dbus_bus_register_client): don't return base service name,
11016         instead store it on the DBusConnection and have an accessor
11017         function for it.
11018         (dbus_bus_register_client): rename dbus_bus_register()
11019
11020         * bus/dispatch.c (check_hello_message): verify that other
11021         connections on the bus also got the correct results, not
11022         just the one sending hello
11023
11024 2003-03-15  Havoc Pennington  <hp@pobox.com>
11025
11026         Make it pass the Hello handling test including all OOM codepaths.
11027         Now to do other messages...
11028
11029         * bus/services.c (bus_service_remove_owner): fix crash when
11030         removing owner from an empty list of owners
11031         (bus_registry_ensure): don't leave service in the list of
11032         a connection's owned services if we fail to put the service
11033         in the hash table.
11034
11035         * bus/connection.c (bus_connection_preallocate_oom_error): set
11036         error flag on the OOM error.
11037
11038         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11039         handle _dbus_transport_set_connection failure
11040
11041         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11042         to create watches up front and simply enable/disable them as
11043         needed.
11044         (unix_connection_set): this can now fail on OOM
11045
11046         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11047         of enabling/disabling a watch or timeout.
11048
11049         * bus/loop.c (bus_loop_iterate): don't touch disabled
11050         watches/timeouts
11051
11052         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11053
11054 2003-03-15  Havoc Pennington  <hp@pobox.com>
11055
11056         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11057         write useful test code, after all that futzing around ;-)
11058
11059         Test does not yet pass because we can't handle OOM in
11060         _dbus_transport_messages_pending (basically,
11061         dbus_connection_preallocate_send() does not prealloc the write
11062         watch). To fix this, I think we need to add new stuff to
11063         set_watch_functions, namely a SetEnabled function so we can alloc
11064         the watch earlier, then enable it later.
11065
11066         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11067         dbus-memory.c to the convenience lib
11068
11069         * bus/test.c: rename some static functions to keep them clearly
11070         distinct from stuff in connection.c. Handle client disconnection.
11071
11072 2003-03-14  Havoc Pennington  <hp@pobox.com>
11073
11074         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11075         transport, tests more of the real codepath. Set up clients
11076         with bus_setup_debug_client.
11077
11078         * bus/test.c (bus_setup_debug_client): function to set up debug
11079         "clients" on the main loop
11080
11081         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11082         support
11083
11084         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11085         server type
11086
11087         * dbus/dbus-server-debug.c: support a debug server based on pipes
11088
11089         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11090         (_dbus_close): new function
11091
11092         * configure.in: check for socketpair
11093
11094 2003-03-14  Havoc Pennington  <hp@redhat.com>
11095
11096         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11097         cheesy hack
11098
11099         * dbus/dbus-transport-debug.c: rework this a good bit to be
11100         less complicated. hopefully still works.
11101
11102         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11103         manually
11104
11105         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11106         after running it
11107
11108         * dbus/dbus-message.c (dbus_message_copy): rename from
11109         dbus_message_new_from_message, fix it up to copy
11110         all the message fields, add test case
11111
11112         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11113         not quite passing yet
11114
11115 2003-03-14  Havoc Pennington  <hp@pobox.com>
11116
11117         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11118         until no work remains" in test code. (the large diff here
11119         is just code movement, no actual changes)
11120
11121         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11122         1, no point waiting around for test code.
11123         (_dbus_server_debug_accept_transport): unref the timeout
11124         after adding it (right?)
11125
11126         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11127
11128 2003-03-13  Havoc Pennington  <hp@redhat.com>
11129
11130         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11131         out of memory
11132
11133         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11134         of memory
11135
11136         * dbus/dbus-connection.h: Make AddWatchFunction and
11137         AddTimeoutFunction return a bool so they can fail on out-of-memory
11138
11139         * bus/bus.c (bus_context_new): set up timeout handlers
11140
11141         * bus/connection.c (bus_connections_setup_connection): set up
11142         timeout handlers
11143
11144         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11145         can fail
11146
11147         * bus/bus.c (bus_context_new): adapt to changes
11148
11149         * bus/connection.c: adapt to changes
11150
11151         * test/watch.c: adapt to DBusWatch changes
11152
11153         * bus/dispatch.c (bus_dispatch_test): started adding this but
11154         didn't finish
11155
11156 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11157
11158         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11159
11160 2003-03-13  Havoc Pennington  <hp@pobox.com>
11161
11162         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11163         set up a test framework as for the library
11164
11165 2003-03-12  Havoc Pennington  <hp@pobox.com>
11166
11167         Throughout: purge global variables, introduce BusActivation,
11168         BusConnections, BusRegistry, etc. objects instead.
11169
11170         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11171         message bus object
11172
11173         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11174         going to redo this a bit differently I think
11175
11176 2003-03-12  Havoc Pennington  <hp@redhat.com>
11177
11178         Mega-patch that gets the message bus daemon initially handling
11179         out-of-memory. Work still needed. Also lots of random
11180         moving stuff to DBusError instead of ResultCode.
11181
11182         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11183
11184         * dbus/dbus-connection.c
11185         (dbus_connection_send_with_reply_and_block): use DBusError
11186
11187         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11188         DBusResultCode
11189
11190         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11191         code here, as the only failure possible is OOM.
11192
11193         * bus/connection.c (bus_connection_disconnect):
11194         rename bus_connection_disconnected as it's a notification only
11195
11196         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11197         "name" on get_args failure, should be done by get_args;
11198         don't disconnect client for bad args, just return an error.
11199         (bus_driver_handle_service_exists): ditto
11200
11201         * bus/services.c (bus_services_list): NULL-terminate returned array
11202
11203         * bus/driver.c (bus_driver_send_service_lost)
11204         (bus_driver_send_service_acquired): send messages from driver to a
11205         specific client to the client's unique name, not to the broadcast
11206         service.
11207
11208         * dbus/dbus-message.c (decode_header_data): reject messages that
11209         contain no name field
11210         (_dbus_message_get_client_serial): rename to
11211         dbus_message_get_serial and make public
11212         (_dbus_message_set_serial): rename from set_client_serial
11213         (_dbus_message_set_reply_serial): make public
11214         (_dbus_message_get_reply_serial): make public
11215
11216         * bus/connection.c (bus_connection_foreach): allow stopping
11217         iteration by returning FALSE from foreach function.
11218
11219         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11220         (dbus_connection_free_preallocated_send)
11221         (dbus_connection_preallocate_send): new API for sending a message
11222         without possibility of malloc failure.
11223         (dbus_connection_send_message): rename to just
11224         dbus_connection_send (and same for whole function family)
11225
11226         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11227
11228         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11229
11230         * bus/activation.c: handle/return errors
11231
11232         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11233
11234         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11235         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11236         (_dbus_result_from_errno): move to this file
11237
11238 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11239
11240         * dbus/dbus-marshal.c:
11241         (_dbus_marshal_set_string):
11242         Take a length argument so we can marshal the correct string
11243         length.
11244
11245         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11246         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11247         (_dbus_marshal_test):
11248         * dbus/dbus-marshal.h:
11249         Add support for marshalling and demarshalling dicts.
11250
11251         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11252         Add support for TYPE DICT.
11253
11254         * dbus/dbus-message.c: (set_string_field):
11255         Adjust header padding.
11256
11257         (dbus_message_append_args_valist), (dbus_message_append_dict),
11258         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11259         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11260         (check_message_handling), (check_have_valid_message):
11261         * dbus/dbus-message.h:
11262         Add functions for setting and getting dicts.
11263
11264         * dbus/dbus-protocol.h:
11265         Add DBUS_TYPE_DICT.
11266
11267         * dbus/dbus.h:
11268         Add dbus-dict.h
11269
11270         * doc/dbus-specification.sgml:
11271         Add information about how dicts are marshalled.
11272
11273         * test/data/invalid-messages/dict-with-nil-value.message:
11274         * test/data/invalid-messages/too-short-dict.message:
11275         * test/data/valid-messages/dict-simple.message:
11276         * test/data/valid-messages/dict.message:
11277         Add sample messages containing dicts.
11278
11279 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11280
11281         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11282
11283 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11284
11285         * dbus/Makefile.am:
11286         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11287         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11288         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11289         (dbus_dict_set_double), (dbus_dict_set_string),
11290         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11291         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11292         (dbus_dict_set_string_array), (_dbus_dict_test):
11293         * dbus/dbus-dict.h:
11294         Fix according to comments from Havoc.
11295
11296 2003-03-06  Michael Meeks  <michael@server.home>
11297
11298         * configure.in: if we don't have kde-config, disable have_qt.
11299
11300 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11301
11302         * dbus/Makefile.am:
11303         Add dbus-dict.[ch]
11304
11305         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11306         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11307         (dbus_dict_remove), (dbus_dict_get_value_type),
11308         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11309         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11310         (dbus_dict_put_double), (dbus_dict_put_string),
11311         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11312         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11313         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11314         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11315         (dbus_dict_get_double), (dbus_dict_get_string),
11316         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11317         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11318         (dbus_dict_get_string_array), (_dbus_dict_test):
11319         * dbus/dbus-dict.h:
11320         Add DBusDict implementation
11321
11322         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11323         * dbus/dbus-test.h:
11324         Add _dbus_dict_test
11325
11326 2003-03-04  Havoc Pennington  <hp@pobox.com>
11327
11328         * test/data/auth/*: adapt to changes
11329
11330         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11331         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11332         userid
11333
11334         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11335         more stuff from being in a context name, to make the protocol
11336         simpler to deal with
11337
11338         * dbus/dbus-errors.c (dbus_error_has_name): new function
11339         (dbus_error_is_set): new function
11340
11341         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11342         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11343
11344         * dbus/dbus-connection.c (dbus_connection_flush): also read
11345         messages during a flush operation
11346
11347         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11348
11349 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11350
11351         * configure.in: Check for gethostbyname on Solaris.
11352
11353         * dbus/dbus-transport.c: (_dbus_transport_open):
11354         Remove duplicate "tcp" entry.
11355
11356         * doc/dbus-specification.sgml:
11357         Clarify some things.
11358
11359 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11360
11361         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11362         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11363         (_dbus_keyring_test):
11364         * dbus/dbus-md5.c: (_dbus_md5_compute):
11365         * dbus/dbus-sha.c: (_dbus_sha_compute):
11366         Plug memory leaks.
11367
11368 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11369
11370         * README: Add some things.
11371
11372 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11373
11374         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11375         after case DBUS_TYPE_BOOELAN.
11376
11377 2003-03-02  Havoc Pennington  <hp@pobox.com>
11378
11379         * test/break-loader.c (randomly_set_extreme_ints): add test that
11380         sets really huge and small integers
11381
11382         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11383         that length of boolean array fits in the string, and that
11384         string has room for boolean value in single-bool case.
11385
11386         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11387         optional value to "ALIGN" command which is what to fill the
11388         alignment with.
11389
11390         * test/data/valid-messages/no-padding.message: add regression
11391         test for the message padding problem
11392
11393 2003-03-02  Havoc Pennington  <hp@pobox.com>
11394
11395         * dbus/dbus-message.c (decode_header_data): fix to always init
11396         message_padding, from Benjamin Dauvergne
11397
11398 2003-03-02  Havoc Pennington  <hp@pobox.com>
11399
11400         * configure.in: 0.5
11401
11402         * NEWS: Update.
11403
11404 2003-03-01  Joe Shaw  <joe@assbarn.com>
11405
11406         * configure.in: Check for "struct cmsgcred" and try to access its
11407         members for BSD-like unices.
11408
11409         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11410         _dbus_read_credentials_unix_socket().
11411         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11412         read() for reading the credential byte off the unix socket.  Use
11413         struct cmsgcred on systems that support it.
11414
11415 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11416
11417         * glib/Makefile.am:
11418         * configure.in:
11419         Make gthreads-2.0 dependency optional. Don't build thread test if
11420         its not found.
11421
11422 2003-02-27  Havoc Pennington  <hp@pobox.com>
11423
11424         * dbus/dbus-connection.c
11425         (dbus_connection_send_message_with_reply_and_block): fix doh!
11426         doh! doh! bug that resulted in never removing a reply from the
11427         queue, no wonder we called get_reply_serial so much ;-)
11428
11429         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11430         and client serial instead of demarshaling them every time
11431
11432 2003-02-27  Havoc Pennington  <hp@pobox.com>
11433
11434         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11435         more inlined, using dbus-string-private.h, speeds things up
11436         substantially
11437
11438         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11439         when freeing the string
11440         (_dbus_string_steal_data): fix for align offset
11441         (undo_alignment): new function
11442
11443 2003-02-26  Havoc Pennington  <hp@redhat.com>
11444
11445         All kinds of audit fixes from Owen, plus initial attempt to
11446         handle unaligned memory returned from malloc.
11447
11448         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11449         leave room for align_offset and nul byte
11450         (fixup_alignment): function to track an align_offset and
11451         ensure real->str is aligned
11452         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11453         to allow a nul byte plus align offset
11454         (_dbus_string_lock): fix overflow issue
11455         (_dbus_string_init_const_len): add assertions on sanity of len,
11456         assign allocated to be ALLOCATION_PADDING larger than len
11457         (set_length): fixup the overflow handling
11458         (_dbus_string_get_data_len): fix overflow in assertion
11459         (open_gap): detect overflow in size of gap to be opened
11460         (_dbus_string_lengthen): add overflow check
11461         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11462         (_dbus_string_append): add overflow check
11463         (_dbus_string_append_unichar): overflow
11464         (_dbus_string_delete): fix overflow in assertion
11465         (_dbus_string_copy_len): overflow in assertion
11466         (_dbus_string_replace_len): overflows in assertions
11467         (_dbus_string_find): change to implement in terms of
11468         _dbus_string_find_to
11469         (_dbus_string_find_to): assorted fixage
11470         (_dbus_string_equal_c_str): assert c_str != NULL,
11471         fix logic so the function works
11472         (_dbus_string_ends_with_c_str): fix overflow thingy
11473         (_dbus_string_base64_encode): overflow fix
11474         (_dbus_string_validate_ascii): overflow
11475         (_dbus_string_validate_nul): overflow
11476
11477 2003-02-26  Havoc Pennington  <hp@redhat.com>
11478
11479         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11480
11481 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11482
11483         * configure.in:
11484         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11485
11486         * dbus/dbus-connection.c:
11487         * dbus/dbus-connection.h:
11488         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11489         Add dbus_connection_set_wakeup_main_function and use it when queueing
11490         incoming and outgoing messages.
11491
11492
11493         * dbus/dbus-dataslot.c:
11494         Threadsafe usage of DBusDataSlotAllocator
11495
11496         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11497         dbus_new can fail.
11498
11499         * dbus/dbus-server-unix.c:
11500         Add todo comment
11501
11502         * glib/dbus-gmain.c:
11503         Implement the new wakeup functions for glib.
11504
11505         * glib/Makefile.am:
11506         * glib/test-thread-client.c:
11507         * glib/test-thread-server.c:
11508         * glib/test-thread.h:
11509         Initial cut at some thread test code. Not really done yet.
11510
11511 2003-02-26  Havoc Pennington  <hp@pobox.com>
11512
11513         * dbus/dbus-connection.c
11514         (dbus_connection_send_message_with_reply_and_block): fix crash
11515         where we ref'd the outgoing message instead of the returned reply
11516
11517         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11518         at the end of this function, so if we didn't need to read for
11519         authentication, we reinstall it for receiving messages
11520
11521         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11522         a NULL sender for peer-to-peer case
11523
11524         * dbus/dbus-transport-unix.c (check_read_watch): handle
11525         !authenticated case correctly
11526
11527         * glib/dbus-gmain.c: add support for DBusServer
11528
11529         * dbus/dbus-server.c: add data slot support
11530
11531         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11532         return values and handle errors
11533
11534         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11535         DBusConnection
11536
11537         * Doxyfile.in (INPUT): add glib subdir
11538
11539         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11540         setup_with_g_main instead of hookup_with_g_main; write docs
11541
11542 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11543
11544         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11545         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11546         * dbus/dbus-message.c: (dbus_message_append_boolean),
11547         (dbus_message_append_boolean_array),
11548         (dbus_message_get_args_valist), (_dbus_message_test):
11549         * dbus/dbus-message.h:
11550         * doc/dbus-specification.sgml:
11551         Various fixes as pointed out by Havoc.
11552
11553         * test/data/invalid-messages/bad-boolean-array.message:
11554         * test/data/invalid-messages/bad-boolean.message:
11555         Add invalid boolean value test cases.
11556
11557 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11558
11559         * dbus/dbus-internals.c: (_dbus_type_to_string):
11560         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11561         (_dbus_marshal_validate_arg):
11562         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11563         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11564         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11565         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11566         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11567         (dbus_message_iter_get_double),
11568         (dbus_message_iter_get_boolean_array), (message_iter_test):
11569         * dbus/dbus-message.h:
11570         * dbus/dbus-protocol.h:
11571         * doc/dbus-specification.sgml:
11572         * test/data/valid-messages/lots-of-arguments.message:
11573         Add support for boolean and boolean array types.
11574
11575 2003-02-23  Havoc Pennington  <hp@pobox.com>
11576
11577         * dbus/dbus-keyring.c: finish most of this implementation and
11578         simple unit test
11579
11580         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11581         these barf if the error isn't cleared to NULL
11582
11583         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11584         (_dbus_create_directory): new function
11585
11586         * dbus/dbus-errors.c (dbus_set_error): fix warning
11587
11588         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11589         (_dbus_string_hex_decode): new function
11590         (test_hex_roundtrip): test code
11591
11592         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11593
11594         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11595
11596         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11597         the save-to-temp/rename trick to atomically write the new file
11598         (_dbus_string_parse_uint): new function
11599
11600 2003-02-22  Havoc Pennington  <hp@pobox.com>
11601
11602         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11603
11604 2003-02-22  Havoc Pennington  <hp@pobox.com>
11605
11606         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11607         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11608
11609         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11610
11611         * dbus/test/data/sha-1: add US government test suite for SHA-1
11612
11613 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11614
11615         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11616         Make string arrays NULL-terminated.
11617
11618         * dbus/dbus-memory.c: (dbus_free_string_array):
11619         * dbus/dbus-memory.h:
11620         New function for freeing NULL-terminated string arrays.
11621
11622         * dbus/dbus-message-builder.c: (append_quoted_string),
11623         (_dbus_message_data_load):
11624         Add support for array types.
11625
11626         * dbus/dbus-message.c: (check_message_handling):
11627         Add more types as test cases.
11628
11629         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11630         (_dbus_string_parse_double):
11631         Add the start offset to the end offset.
11632
11633         * test/data/valid-messages/lots-of-arguments.message:
11634         New test message with lots of arguments.
11635
11636 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11637
11638         * dbus/dbus-message.c: (dbus_message_append_nil),
11639         (dbus_message_append_int32), (dbus_message_append_uint32),
11640         (dbus_message_append_double), (dbus_message_append_string),
11641         (dbus_message_append_int32_array),
11642         (dbus_message_append_uint32_array),
11643         (dbus_message_append_double_array),
11644         (dbus_message_append_byte_array),
11645         (dbus_message_append_string_array):
11646         Fix all out-of-memory handling in these functions.
11647
11648 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11649
11650         * dbus/dbus-message.c: (dbus_message_append_nil):
11651         Fix a silly.
11652
11653 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11654
11655         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11656         (dbus_message_append_nil), (dbus_message_append_int32_array),
11657         (dbus_message_append_uint32_array),
11658         (dbus_message_append_double_array),
11659         (dbus_message_append_byte_array),
11660         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11661         (dbus_message_iter_get_int32_array),
11662         (dbus_message_iter_get_uint32_array),
11663         (dbus_message_iter_get_double_array),
11664         (dbus_message_iter_get_byte_array),
11665         (dbus_message_iter_get_string_array):
11666
11667         * dbus/dbus-message.h:
11668         Add functions for appending and getting arrays.
11669
11670 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11671
11672         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11673         element size at least 8 bytes, fixes mempool tests on
11674         64-bit machines.
11675
11676 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11677
11678         * dbus/dbus-transport-unix.c (unix_do_iteration):
11679         Unlock the connection mutex during a blocking select call.
11680         Add todo about how we need a way to wake up the select.
11681
11682         * dbus/dbus-connection-internal.h:
11683         * dbus/dbus-connection.c:
11684         Add _dbus_connection_lock and _dbus_connection_unlock.
11685
11686 2003-02-19  Havoc Pennington  <hp@pobox.com>
11687
11688         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11689         Doxyfile.in, not Doxyfile
11690
11691         * dbus/dbus-keyring.c: do some hacking on this
11692
11693         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11694
11695         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11696         dbus_error_init
11697         (dbus_set_error): remove dbus_error_init, check for message ==
11698         NULL *before* we sprintf into it, and add @todo about including
11699         system headers in this file
11700
11701         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11702
11703         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11704
11705         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11706         get various bits of user information based on either username
11707         or user ID
11708         (_dbus_homedir_from_username): new function
11709
11710 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11711
11712         * configure.in:
11713         Add check for nonposix getpwnam_r
11714
11715         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11716         Align the pool element size to a sizeof (void *) boundary.
11717
11718         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11719         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11720         General Solaris fixes.
11721
11722         * test/data/valid-messages/simplest-manual.message:
11723         Explicitly state that we want little-endian packing.
11724
11725 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11726
11727         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11728
11729         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11730         Added to create a transport connecting using a tcp/ip socket.
11731
11732         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11733         to a tcp socket at given host and port.
11734         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11735         hostname and port.
11736
11737         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11738
11739         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11740         Added to create a server listening on a TCP/IP socket.
11741
11742 2003-02-19  Havoc Pennington  <hp@pobox.com>
11743
11744         Throughout: mop up all the Doxygen warnings and undocumented
11745         stuff.
11746
11747         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11748         to search any paths.
11749
11750         * dbus/dbus-threads.c: move global mutex initializers to
11751         dbus-internals.h, multiple prototypes was confusing doxygen
11752         besides being kind of ugly
11753
11754         * Doxyfile (PREDEFINED): have Doxygen define
11755         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11756         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11757         (do not abuse the feature! it's for stuff like the autogenerated
11758         macros in dbus-md5.c, not just for things you don't feel like
11759         documenting...)
11760
11761 2003-02-18  Havoc Pennington  <hp@pobox.com>
11762
11763         * dbus/dbus-string.c (_dbus_string_zero): new function
11764
11765         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11766         wrap it in some dbus-friendly API
11767
11768         * dbus/dbus-types.h: add 16-bit types
11769
11770 2003-02-18  Joe Shaw  <joe@assbarn.com>
11771
11772         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11773         credentials from our currently running process.
11774         (get_word): Fix a buglet where we were copying the entire length
11775         instead of relative to our position.
11776
11777         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11778         keys on the stack... it's 640k of data.
11779
11780         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11781         read the credentials byte off the socket, even if we don't have
11782         SO_PEERCRED.
11783         (_dbus_poll): Implement poll() using select() for systems which
11784         don't have it.
11785
11786         * glib/test-dbus-glib.c (main): Print out an error if no
11787         parameters are given.
11788
11789         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11790         can fallback to a secondary auth mechanism if the first fails.
11791
11792 2003-02-18  Havoc Pennington  <hp@pobox.com>
11793
11794         * AUTHORS: add Alex
11795
11796 2003-02-17  Havoc Pennington  <hp@pobox.com>
11797
11798         * doc/dbus-specification.sgml: lots of cosmetic
11799         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11800         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11801         s/server/bus/ (except in authentication section). Add a section
11802         "Message Bus Message Routing"
11803
11804 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11805
11806         Release 0.4
11807
11808         * NEWS: Update
11809
11810 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11811
11812         * doc/dbus-specification.sgml:
11813         Specification updates.
11814
11815 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11816
11817         * bus/activation.c: (bus_activation_init), (child_setup),
11818         (bus_activation_activate_service):
11819         * bus/activation.h:
11820         * bus/main.c: (main):
11821         Set DBUS_ADDRESS environment variable.
11822
11823         * dbus/dbus-errors.c: (dbus_set_error):
11824         Don't use va_copy since that's a C99 feature.
11825
11826         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11827         (_dbus_spawn_async):
11828         * dbus/dbus-sysdeps.h:
11829         Add child_setup_func to _dbus_spawn_async.
11830
11831         * doc/dbus-specification.sgml:
11832         Update specification.
11833
11834         * test/spawn-test.c: (setup_func), (main):
11835         Fix test.
11836
11837 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11838
11839         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11840         Added todo.
11841
11842 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11843
11844         * doc/.cvsignore:
11845         * doc/Makefile.am:
11846         * doc/dbus-test-plan.sgml:
11847         Add test plan document.
11848
11849         * test/Makefile.am:
11850         Fix distcheck.
11851
11852 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11853
11854         * dbus/dbus-message.c: (decode_header_data),
11855         (_dbus_message_loader_return_buffer):
11856         Set the header padding amount when loading a message.
11857
11858 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11859
11860         * bus/dispatch.c: (send_one_message):
11861         Only send broadcast messages to registered connections.
11862
11863         * dbus/dbus-message.c: (dbus_message_name_is):
11864         * dbus/dbus-message.h:
11865         New convenience function.
11866
11867         * dbus/dbus-transport-debug.c: (do_reading):
11868         Only dispatch one message per run.
11869
11870         * test/Makefile.am:
11871         * test/bus-test.c: (new_connection_callback), (die),
11872         (test_hello_client1_handler), (test_hello_client2_handler),
11873         (test_hello_replies), (main):
11874
11875         * test/bus-test-loop.[ch]:
11876         Add these.
11877
11878 2003-02-16  Havoc Pennington  <hp@pobox.com>
11879
11880         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11881         backward conditional
11882
11883 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11884
11885         * dbus/dbus-connection.c:
11886         Implement sent_message_with_reply. (with_reply_and block is still
11887         busted).
11888         Made dispatch_message not lose message if OOM.
11889
11890         * dbus/dbus-errors.h:
11891         Add NoReply error (for reply timeouts).
11892
11893 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11894
11895         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11896         Actually free keys and values when destroying hashtable.
11897
11898 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11899
11900         * dbus/dbus-auth.c: (client_try_next_mechanism):
11901         Plug a leak.
11902
11903         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11904         Return TRUE if there's no thread implementation around.
11905
11906         * glib/dbus-gmain.c: (free_source),
11907         (dbus_connection_hookup_with_g_main):
11908         Make sure to remove the GSource when the connection is finalized.
11909
11910 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11911
11912         * bus/dispatch.c: (bus_dispatch_message_handler):
11913         * dbus/dbus-errors.h:
11914         Return an error if someone tries to send a message to a service
11915         that doesn't exist.
11916
11917 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11918
11919         * bus/activation.c: (load_directory), (bus_activation_init),
11920         (bus_activation_activate_service):
11921         * bus/activation.h:
11922         * bus/driver.c:
11923         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11924         More work on the activation handling.
11925
11926         * dbus/dbus-errors.h:
11927         Add some error messages
11928
11929         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11930         * dbus/dbus-message.h:
11931         New function that creates an error message.
11932
11933         * dbus/dbus-protocol.h:
11934         Add ACTIVATE_SERVER message.
11935
11936         * dbus/dbus-server-unix.c: (unix_handle_watch),
11937         (_dbus_server_new_for_domain_socket):
11938         Call _dbus_fd_set_close_on_exec.
11939
11940         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11941         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11942         (_dbus_fd_set_close_on_exec):
11943         * dbus/dbus-sysdeps.h:
11944         Add _dbus_fd_set_close_on exec function. Also add function that checks
11945         that all open fds are set to close-on-exec and warns otherwise.
11946
11947         * dbus/dbus-transport-unix.c:
11948         (_dbus_transport_new_for_domain_socket):
11949         Call _dbus_fd_set_close_on_exec.
11950
11951 2003-02-16  Havoc Pennington  <hp@pobox.com>
11952
11953         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11954         allow people to avoid setting SIGPIPE to SIG_IGN
11955         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11956         we've been asked not to
11957
11958 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11959
11960         * dbus/dbus-list.c: (_dbus_list_append_link),
11961         (_dbus_list_prepend_link):
11962         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11963         (dbus_realloc):
11964         Warning fixes.
11965
11966 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11967
11968         * bus/Makefile.am:
11969         * bus/activation.c: (bus_activation_entry_free),
11970         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11971         * bus/activation.h:
11972         * bus/main.c: (main):
11973         Add simple activation support, doesn't work yet though.
11974
11975 2003-02-15   Zack Rusin  <zack@kde.org>
11976
11977         * qt/dbus-qthread.cpp:  small casting fix
11978
11979 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11980
11981         * dbus/dbus-errors.c: (dbus_set_error):
11982         * dbus/dbus-errors.h:
11983         Add a few errors and make dbus_set_error void.
11984
11985         * dbus/dbus-sysdeps.c:
11986         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11987         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11988         * dbus/dbus-sysdeps.h:
11989         Add _dbus_spawn_async.
11990
11991         * test/spawn-test.c: (main):
11992         Test for _dbus_spawn_async.
11993
11994 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11995
11996         * dbus/dbus-internals.h:
11997         Fix build without tests.
11998
11999         * dbus/dbus-list.c: (alloc_link):
12000         Fix a segfault when a malloc fails.
12001
12002         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12003         (dbus_malloc0), (dbus_realloc):
12004         Add support for malloc debugging.
12005
12006 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12007
12008         * dbus/dbus-threads.c:
12009         * dbus/dbus-threads.h:
12010         Add condvars. Remove static mutext from API.
12011         Implement static mutexes by initializing them from threads_init.
12012
12013         * glib/dbus-gthread.c:
12014         * qt/dbus-qthread.cpp:
12015         Update with the thread api changes.
12016
12017
12018         * dbus/dbus-list.c:
12019         * dbus/dbus-list.h:
12020         Turn StaticMutex into normal mutex + init function.
12021         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12022         _dbus_list_append_link, _dbus_list_prepend_link
12023
12024
12025         * dbus/dbus-sysdeps.c:
12026         * dbus/dbus-sysdeps.h:
12027         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12028         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12029
12030         * dbus/dbus-protocol.h:
12031         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12032
12033         * dbus/dbus-message.c:
12034         Make ref/unref atomic.
12035         Fix some docs.
12036
12037         * dbus/dbus-connection-internal.h:
12038         * dbus/dbus-connection.c:
12039         * dbus/dbus-connection.h:
12040         Make threadsafe.
12041         Change _peek to _borrow,_return & _steal_borrowed.
12042         Change disconnect callback to event.
12043         Make dbus_connection_dispatch_messages reentrant.
12044
12045         * dbus/dbus-transport.c:
12046         Don't ref the connection on calls to the transport
12047         implementation.
12048
12049         * dbus/dbus-message-handler.c:
12050         Make threadsafe.
12051
12052         * glib/dbus-gmain.c:
12053         Don't use peek_message anymore
12054
12055         * test/Makefile.am:
12056         * test/debug-thread.c:
12057         * test/debug-thread.h:
12058         Simple thread implementation that asserts() on deadlocks in
12059         single-threaded code.
12060
12061         * test/bus-test.c:
12062         (main) Call debug_threads_init.
12063
12064         * test/watch.c:
12065         Use disconnect message instead of disconnect callback.
12066
12067         * bus/connection.c:
12068         * bus/connection.h:
12069         Don't call dbus_connection_set_disconnect_function. Instead export
12070         bus_connection_disconnect.
12071
12072         * bus/dispatch.c:
12073         Call bus_connection_disconnect when we get a disconnected message.
12074
12075 2003-02-15  Havoc Pennington  <hp@pobox.com>
12076
12077         * dbus/dbus-message.c (dbus_message_new): fool around with the
12078         docs
12079
12080 2003-02-14  Havoc Pennington  <hp@pobox.com>
12081
12082         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12083
12084         * dbus/dbus-memory.c: fail if the debug functions indicate we
12085         should
12086
12087         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12088         (_dbus_decrement_fail_alloc_counter): debug functions to
12089         simulate memory allocation failures
12090
12091 2003-02-14  Havoc Pennington  <hp@pobox.com>
12092
12093         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12094         to DBusError
12095
12096 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12097
12098         * bus/driver.c: (bus_driver_handle_hello):
12099         * bus/driver.h:
12100         * bus/services.c: (bus_service_lookup):
12101         Reorder message sending so we get a more sane order.
12102
12103         * test/bus-test.c: (message_handler):
12104         Fix tyop.
12105
12106 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12107
12108         * bus/driver.c: (bus_driver_send_service_deleted),
12109         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12110         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12111         (bus_driver_send_welcome_message),
12112         (bus_driver_handle_list_services),
12113         (bus_driver_handle_acquire_service),
12114         (bus_driver_handle_service_exists):
12115         * dbus/dbus-bus.c: (dbus_bus_register_client),
12116         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12117         * dbus/dbus-errors.c: (dbus_result_to_string):
12118         * dbus/dbus-errors.h:
12119         * dbus/dbus-message.c: (dbus_message_append_args),
12120         (dbus_message_append_args_valist), (dbus_message_get_args),
12121         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12122         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12123         (dbus_message_iter_get_byte_array),
12124         (dbus_message_iter_get_string_array), (message_iter_test),
12125         (check_message_handling), (_dbus_message_test):
12126         * dbus/dbus-message.h:
12127         * test/bus-test.c: (main):
12128         Change fields to arguments in messages, so that they won't be
12129         confused with header fields.
12130
12131         * glib/test-dbus-glib.c: (main):
12132         Remove append_fields from hello message.
12133
12134 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12135
12136         * dbus/dbus-errors.c:
12137         * dbus/dbus-message.c:
12138         * dbus/dbus-string.c:
12139         Documentation fixes.
12140
12141 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12142
12143         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12144         (remove_timeout):
12145         Implement support for timeouts in dbus-glib.
12146
12147 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12148
12149         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12150         * dbus/dbus-message.c: (process_test_subdir):
12151         * test/break-loader.c: (find_breaks_based_on):
12152         Plug some memory leaks.
12153
12154 2003-02-13  Richard Hult  <rhult@codefactory.se>
12155
12156         * bus/main.c: Fix build.
12157
12158         * dbus/dbus-errors.h:
12159         * dbus/dbus-errors.c: Fix copyright for Anders.
12160
12161 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12162
12163         * bus/Makefile.am:
12164         Add utils.[ch]
12165
12166         * bus/connection.c: (bus_connection_foreach):
12167         Fix a warning.
12168
12169         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12170         (unescape_string), (new_section), (parse_section_start),
12171         (parse_key_value), (report_error), (bus_desktop_file_load),
12172         (bus_desktop_file_get_string):
12173         * bus/desktop-file.h:
12174         Use DBusError for error reporting.
12175
12176         * bus/dispatch.c: (send_one_message),
12177         (bus_dispatch_message_handler):
12178         * bus/driver.c: (bus_driver_send_service_deleted),
12179         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12180         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12181         (bus_driver_send_welcome_message),
12182         (bus_driver_handle_list_services),
12183         (bus_driver_handle_acquire_service),
12184         (bus_driver_handle_service_exists):
12185         * bus/loop.c: (bus_loop_run):
12186         * bus/main.c:
12187         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12188
12189         * bus/utils.c: (bus_wait_for_memory):
12190         * bus/utils.h:
12191         New files with general utility functions.
12192
12193         * dbus/dbus-internals.h:
12194         Remove _DBUS_HANDLE_OOM.
12195
12196 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12197
12198         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12199         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12200         * dbus/dbus-errors.h:
12201         Add DBusError structure.
12202
12203 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12204
12205         * test/data/valid-messages/standard-acquire-service.message:
12206         * test/data/valid-messages/standard-hello.message:
12207         * test/data/valid-messages/standard-list-services.message:
12208         * test/data/valid-messages/standard-service-exists.message:
12209         Add some standard messages.
12210
12211 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12212
12213         * bus/driver.c: (bus_driver_send_welcome_message),
12214         (bus_driver_handle_list_services),
12215         (bus_driver_handle_acquire_service),
12216         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12217         Update for API changes in libdbus.
12218
12219         * dbus/dbus-message.c: (dbus_message_new_reply):
12220         * dbus/dbus-message.h:
12221         Remove the name argument. The spec states that replies shouldn't
12222         have a name.
12223
12224 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12225
12226         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12227         (report_error), (bus_desktop_file_load), (lookup_section),
12228         (lookup_line), (bus_desktop_file_get_raw),
12229         (bus_desktop_file_get_string):
12230         * bus/desktop-file.h:
12231         Some fixes, and new functions for getting a key value from a section.
12232
12233 2003-02-13  Havoc Pennington  <hp@pobox.com>
12234
12235         * test/data/auth/fail-after-n-attempts.auth-script: new test
12236
12237         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12238         reject the client.
12239
12240 2003-02-13  Havoc Pennington  <hp@pobox.com>
12241
12242         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12243         dbus_credentials_match were backward
12244
12245         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12246         NO_CREDENTIALS and ROOT_CREDENTIALS
12247
12248         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12249         into here. Never process more commands after we've reached an
12250         end state; store further data as unused bytes.
12251
12252         * test/data/auth/*: add more auth tests
12253
12254         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12255         command to match exact string and EXPECT_UNUSED to match unused
12256         bytes
12257
12258         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12259
12260 2003-02-12  Havoc Pennington  <hp@pobox.com>
12261
12262         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12263         \r off of popped lines
12264
12265         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12266         scripts
12267
12268         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12269         SEND, append \r\n
12270
12271 2003-02-12  Havoc Pennington  <hp@pobox.com>
12272
12273         * dbus/Makefile.am: remove break-loader from the build, since it
12274         moved.
12275
12276         * configure.in: add --enable-gcov to turn on coverage profiling
12277         flags and disable optimization
12278
12279 2003-02-10  Havoc Pennington  <hp@pobox.com>
12280
12281         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12282         initial cut at test framework for DBusAuth from laptop.
12283         Doesn't quite work yet but it compiles and I need to get
12284         it off the 266mhz laptop. ;-)
12285
12286         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12287         fix a memleak in error case
12288
12289 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12290
12291         * bus/Makefile.am:
12292         * bus/desktop-file.c:
12293         * bus/desktop-file.h:
12294         Add a desktop file parser.
12295
12296 2003-02-11  Zack Rusin  <zack@kde.org>
12297
12298         * qt/message.[h|cpp]: sample implementation
12299         of the KDE wrapper for DBusMessage
12300
12301 2003-02-09  Zack Rusin  <zack@kde.org>
12302
12303         * test/bus-test.c: make_it_compile
12304         * doc/dbus-specification.sgml: minimal semantic fix
12305
12306 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12307
12308         Release 0.3
12309
12310         * NEWS: Update
12311
12312 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12313
12314         * dbus/Makefile.am:
12315         * dbus/dbus-break-loader.c:
12316         * test/Makefile.am:
12317         * test/break-loader.c:
12318         Move dbus-break-loader to test/ and rename it to break-loader.
12319
12320 2003-02-02  Havoc Pennington  <hp@pobox.com>
12321
12322         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12323         for code to manage cookies in your home directory
12324
12325         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12326
12327         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12328         to authenticate, then disconnect the client.
12329
12330 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12331
12332         * dbus/dbus-message.c (dbus_message_append_fields):
12333         Correct docs.
12334
12335 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12336
12337         * doc/dbus-specification.sgml:
12338         Update address format section.
12339
12340 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12341
12342         * test/Makefile.am:
12343         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12344         (message_handler), (new_connection_callback), (loop_quit),
12345         (loop_run), (main):
12346         Add bus test.
12347
12348 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12349
12350         * bus/driver.c: (bus_driver_handle_service_exists):
12351         Simplify the code a bit.
12352
12353         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12354         Fix a silly.
12355
12356 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12357
12358         * bus/Makefile.am:
12359         Add libdbus-daemon.la and link to it.
12360
12361 2003-02-01  James Willcox  <jwillcox@gnome.org>
12362
12363         * bus/driver.c: (bus_driver_handle_own_service):
12364         Actually include the service reply code in the message.
12365
12366 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12367
12368         * bus/driver.c: (bus_driver_handle_service_exists):
12369         Don't unref the incoming message.
12370
12371 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12372
12373         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12374
12375 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12376
12377         * dbus/dbus-server.c: (dbus_server_listen):
12378         * dbus/dbus-transport.c: (_dbus_transport_open):
12379         ifdef out the calls to the debug transport and server.
12380
12381 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12382
12383         * dbus/dbus-watch.c (dbus_watch_get_flags):
12384         Add note in the docs that ERROR or HANGUP won't be returned
12385         and are assumed always on.
12386
12387         * glib/dbus-gmain.c (add_watch):
12388         Always add IO_ERR | IO_HUP
12389
12390         * dbus/dbus-message.h:
12391         Add semicolon after dbus_message_iter_get_string_array().
12392         Makes qt code build again
12393
12394 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12395
12396         * bus/driver.c: (create_unique_client_name),
12397         (bus_driver_handle_hello):
12398         Don't take a name, just use a numeric id to identify
12399         each client.
12400
12401         * dbus/Makefile.am:
12402         * dbus/dbus-bus.c: (dbus_bus_register_client),
12403         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12404         * dbus/dbus-bus.h:
12405         Add new convenience functions for communicating with the bus.
12406
12407         * dbus/dbus-message.h:
12408
12409         * dbus/dbus-protocol.h:
12410         Fix a typo.
12411
12412 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12413
12414         * dbus/dbus-message.c (dbus_message_append_fields):
12415         Add some more doc comments.
12416
12417 2003-02-01  Havoc Pennington  <hp@pobox.com>
12418
12419         * dbus/dbus-break-loader.c (randomly_modify_length): change
12420         a 4-byte value in the message as if it were a length
12421
12422         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12423         execute bit on saved files
12424
12425 2003-02-01  Havoc Pennington  <hp@pobox.com>
12426
12427         * dbus/dbus-break-loader.c (main): new program to find messages
12428         that break the loader.
12429
12430         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12431         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12432
12433         * dbus/dbus-string.c (_dbus_string_set_byte): new
12434
12435 2003-01-31  Havoc Pennington  <hp@pobox.com>
12436
12437         * dbus/dbus-message.c: refactor the test code to be more general,
12438         in preparation for writing a "randomly permute test cases to
12439         try to break the loader" program.
12440
12441 2003-01-31  Havoc Pennington  <hp@pobox.com>
12442
12443         * doc/dbus-specification.sgml: work on the specification
12444
12445         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12446         the protocol version of the message.
12447
12448         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12449         no longer specifies that.
12450         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12451         1/2/3/4)
12452
12453         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12454         "break" for DBUS_TYPE_NIL, remove @todo
12455
12456 2003-01-31  Havoc Pennington  <hp@pobox.com>
12457
12458         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12459         just set_is_error/get_is_error as this is a commonly-used
12460         function, and write docs.
12461
12462 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12463
12464         * dbus/dbus-address.c: (dbus_address_entry_free):
12465         Free key and value lists.
12466
12467         * dbus/dbus-internals.c: (_dbus_type_to_string):
12468         Add the types we didn't have.
12469
12470         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12471         (_dbus_marshal_validate_arg):
12472         Add NIL types.
12473
12474         * dbus/dbus-message.c: (dbus_message_set_sender):
12475         Remove todo about being able to set sender to NULL.
12476
12477         (dbus_message_set_is_error_reply),
12478         (dbus_message_get_is_error_reply):
12479         * dbus/dbus-message.h:
12480         New functions.
12481
12482         * dbus/dbus-protocol.h:
12483         Add error reply flag.
12484
12485         * test/data/valid-messages/opposite-endian.message:
12486         Add NIL type to test.
12487
12488 2003-01-31  Havoc Pennington  <hp@pobox.com>
12489
12490         * doc/dbus-specification.sgml: fully specify the header.  Add
12491         flags and major protocol version, and change header/body len to
12492         unsigned.
12493
12494         * dbus/dbus-message-builder.c (append_saved_length): append length
12495         as uint32
12496
12497         * dbus/dbus-message.c (dbus_message_create_header): change header
12498         length and body length to unsigned. Add the new fields from the
12499         spec
12500         (_dbus_message_loader_return_buffer): unsigned header/body len
12501
12502 2003-01-30  Havoc Pennington  <hp@pobox.com>
12503
12504         * dbus/dbus-auth.c: rework to use only REJECTED, no
12505         MECHANISMS
12506
12507         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12508         use REJECTED, suggested by Mark McLoughlin
12509
12510 2003-01-30  Havoc Pennington  <hp@pobox.com>
12511
12512         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12513         a better way to report errors here. e.g.  "unix address lacks
12514         path" or something. also "no such file" when the path doesn't
12515         exist, etc.
12516
12517         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12518         leaking list nodes
12519         (dbus_parse_address): add @todo about documenting address format,
12520         and allowing , and ; to be escaped
12521
12522 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12523
12524         * dbus/Makefile.am:
12525         Add dbus-address.[ch]
12526
12527         * dbus/dbus-address.c: (dbus_address_entry_free),
12528         (dbus_address_entries_free), (create_entry),
12529         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12530         (dbus_parse_address), (_dbus_address_test):
12531         * dbus/dbus-address.h:
12532         New files for dealing with address parsing.
12533
12534         * dbus/dbus-connection.c:
12535         Document timeout functions.
12536
12537         * dbus/dbus-message.c:
12538         Document dbus_message_new_from_message.
12539
12540         * dbus/dbus-server-debug.c:
12541         Document.
12542
12543         * dbus/dbus-server.c: (dbus_server_listen):
12544         Parse address and use correct server implementation.
12545
12546         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12547         * dbus/dbus-string.h:
12548         New function with test.
12549
12550         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12551         * dbus/dbus-test.h:
12552         Add address tests.
12553
12554         * dbus/dbus-transport-debug.c:
12555         Document.
12556
12557         * dbus/dbus-transport.c: (_dbus_transport_open):
12558         Parse address and use correct transport implementation.
12559
12560 2003-01-30  Havoc Pennington  <hp@pobox.com>
12561
12562         * dbus/dbus-message.c: use message->byte_order instead of
12563         DBUS_COMPILER_BYTE_ORDER throughout.
12564         (dbus_message_create_header): pad header to align the
12565         start of the body of the message to 8-byte boundary
12566
12567         * dbus/dbus-marshal.h: make all the demarshalers take const
12568         DBusString arguments.
12569
12570         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12571         validate message args here, so we don't have to do slow validation
12572         later, and so we catch bad messages as they are incoming. Also add
12573         better checks on header_len and body_len. Also fill in
12574         message->byte_order
12575
12576         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12577         implemented properly)
12578         (_dbus_string_validate_nul): new function to check all-nul
12579
12580         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12581         get_arg_end_pos and remove all validation
12582         (_dbus_marshal_validate_arg): actually do validation here.
12583
12584 2003-01-29  Havoc Pennington  <hp@pobox.com>
12585
12586         * dbus/dbus-message.c (check_message_handling): fix assertion
12587         failure on set_client_serial
12588
12589 2003-01-28  Havoc Pennington  <hp@pobox.com>
12590
12591         * dbus/dbus-server-debug.c: Add doc section comments
12592
12593         * dbus/dbus-transport-debug.c: add doc section comments
12594
12595 2003-01-28  Havoc Pennington  <hp@redhat.com>
12596
12597         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12598         the reverse order from how I had it
12599         (_dbus_string_base64_encode): reverse encoding order. I was
12600         basically byteswapping everything during encoding.
12601
12602 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12603
12604         * dbus/dbus-connection-internal.h:
12605         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12606         (_dbus_connection_remove_timeout):
12607         Add functions for adding and removing timeouts.
12608
12609         * dbus/dbus-message.c: (dbus_message_new_from_message):
12610         Add new function that takes a message and creates an exact
12611         copy of it, but with the refcount set to 1.
12612         (check_message_handling):
12613         Fix build error.
12614
12615         * dbus/dbus-server-protected.h:
12616         * dbus/dbus-server.c: (_dbus_server_init_base),
12617         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12618         (dbus_server_set_timeout_functions):
12619         (_dbus_server_remove_timeout):
12620         New functions so that a server can add and remove timeouts.
12621
12622         (dbus_server_listen):
12623         Add commented out call to dbus_server_debug_new.
12624
12625         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12626         Actually set the handler, doh.
12627
12628         * dbus/dbus-transport.c: (_dbus_transport_open):
12629         Add commented out call to dbus_transport_debug_client_new.
12630
12631         * dbus/Makefile.am:
12632         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12633
12634 2003-01-28  Havoc Pennington  <hp@pobox.com>
12635
12636         * dbus/dbus-message.c (check_message_handling): function to check
12637         on the loaded message, iterates over it etc.
12638
12639 2003-01-28  Havoc Pennington  <hp@pobox.com>
12640
12641         * test/Makefile.am (dist-hook): fix make distdir
12642
12643         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12644
12645 2003-01-27  Havoc Pennington  <hp@pobox.com>
12646
12647         * dbus/dbus-mempool.c (time_for_size): replace printf with
12648         _dbus_verbose
12649
12650         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12651         empty lines; fix the SAVE_LENGTH stuff to be
12652         START_LENGTH/END_LENGTH so it actually works; couple other
12653         bugfixes
12654
12655         * test/Makefile.am (dist-hook): add dist-hook for .message files
12656
12657         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12658         can be constant or locked.
12659         (_dbus_string_free): allow freeing a const string as
12660         documented/intended
12661
12662         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12663
12664         * dbus/dbus-test-main.c (main): take an argument which is the
12665         directory containing test data
12666
12667         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12668         argument to this and load all the messages in test/data/
12669         checking that they can be loaded or not loaded as appropriate.
12670
12671 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12672
12673         * bus/dispatch.c: (bus_dispatch_message_handler):
12674         Dispatch messages sent to services.
12675
12676         * bus/driver.c: (bus_driver_send_service_deleted),
12677         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12678         (bus_driver_send_service_acquired):
12679         Add helper functions for sending service related messages.
12680
12681         (bus_driver_send_welcome_message):
12682         Send HELLO_REPLY instead of WELCOME.
12683
12684         (bus_driver_handle_list_services):
12685         Send LIST_SERVICES_REPLY instead of SERVICES.
12686
12687         (bus_driver_handle_own_service),
12688         (bus_driver_handle_service_exists):
12689         New message handlers.
12690
12691         (bus_driver_handle_message):
12692         Invoke new message handlers.
12693
12694         (bus_driver_remove_connection):
12695         Don't remove any services here since that's done automatically
12696         by bus_service_remove_owner now.
12697
12698         * bus/driver.h:
12699         New function signatures.
12700
12701         * bus/services.c: (bus_service_add_owner):
12702         Send ServiceAcquired message if we're the only primary owner.
12703
12704         (bus_service_remove_owner):
12705         Send ServiceAcquired/ServiceLost messages.
12706
12707         (bus_service_set_prohibit_replacement),
12708         (bus_service_get_prohibit_replacement):
12709         Functions for setting prohibit replacement.
12710
12711         (bus_service_has_owner):
12712         New function that checks if a connection is in the owner queue of
12713         a certain service.
12714
12715         * bus/services.h:
12716         Add new function signatures.
12717
12718         * dbus/dbus-list.c: (_dbus_list_test):
12719         Add tests for _dbus_list_remove_last and traversing the list backwards.
12720
12721         * dbus/dbus-list.h:
12722         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12723         go any further, so return NULL then.
12724
12725         * dbus/dbus-protocol.h:
12726         Add new messages, service flags and service replies.
12727
12728 2003-01-26  Havoc Pennington  <hp@pobox.com>
12729
12730         * dbus/dbus-message-builder.c: implement, completely untested.
12731
12732         * test/data/*: add data to be used in testing.
12733         ".message" files are our simple loadable text format.
12734         ".message-raw" will be binary dumps of messages.
12735
12736         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12737
12738 2003-01-26  Havoc Pennington  <hp@pobox.com>
12739
12740         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12741
12742         * dbus/dbus-errors.c (dbus_result_to_string): add
12743         file errors
12744
12745         * dbus/dbus-message-builder.c: new file, will contain code to load
12746         up messages from files. Not implemented yet.
12747
12748 2003-01-26  Havoc Pennington  <hp@pobox.com>
12749
12750         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12751         the sender by setting to NULL
12752
12753 2003-01-26  Havoc Pennington  <hp@pobox.com>
12754
12755         The unit tests pass, but otherwise untested.  If it breaks, the
12756         tests should have been better. ;-)
12757
12758         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12759         the connection.
12760
12761         * dbus/dbus-message.c: redo everything so we maintain
12762         message->header as the only copy of the various fields.
12763         This avoids the possibility of out-of-memory in some cases,
12764         for example dbus_message_lock() can't run out of memory anymore,
12765         and avoids extra copying. Figured I may as well go ahead and do
12766         this since it was busted for dbus_message_lock to not return
12767         failure on OOM, and dbus_message_write_header was totally
12768         unchecked for OOM. Also fixed some random other bugs.
12769
12770         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12771         that strings are nul-terminated. Also, end_pos can be equal
12772         to string length just not greater than, I think.
12773         (_dbus_marshal_set_int32): new function
12774         (_dbus_marshal_set_uint32): new function
12775         (_dbus_marshal_set_string): new function
12776
12777         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12778         a warning, init timeout_list to NULL
12779         (dbus_connection_send_message): don't use uninitialized variable
12780         "serial"
12781
12782         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12783
12784 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12785
12786         * bus/driver.c: (bus_driver_handle_hello),
12787         (bus_driver_send_welcome_message):
12788         Plug leaks
12789
12790 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12791
12792         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12793         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12794         (dbus_connection_unref):
12795         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12796         * dbus/dbus-message.c: (dbus_message_unref),
12797         Plug memory leaks.
12798
12799         (dbus_message_get_fields):
12800         Remove debugging printout.
12801
12802         (_dbus_message_loader_return_buffer):
12803         Don't store the header string.
12804
12805         (_dbus_message_test):
12806         Plug leaks.
12807
12808 2003-01-26  Richard Hult  <rhult@codefactory.se>
12809
12810         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12811         the file descriptor list, since it can change under us.
12812
12813 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12814
12815         * glib/dbus-gmain.c: (dbus_connection_prepare),
12816         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12817         (remove_watch), (dbus_connection_hookup_with_g_main):
12818         Rewrite the glib handling to use its own GSource instead of a
12819         GIOChannel so we can catch messages put in the queue while waiting
12820         for a reply.
12821
12822 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12823
12824         * bus/Makefile.am:
12825         * bus/connection.c: (connection_disconnect_handler),
12826         (connection_watch_callback), (bus_connection_setup):
12827         * bus/dispatch.c: (send_one_message),
12828         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12829         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12830         * bus/dispatch.h:
12831         * bus/driver.c: (bus_driver_send_service_deleted),
12832         (bus_driver_send_service_created), (bus_driver_handle_hello),
12833         (bus_driver_send_welcome_message),
12834         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12835         (bus_driver_handle_message):
12836         * bus/driver.h:
12837         Refactor code, put the message dispatching in its own file. Use
12838         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12839         is disconnected.
12840
12841 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12842
12843         * dbus/dbus-internals.h:
12844         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12845
12846         * dbus/dbus-message.c: (dbus_message_get_sender):
12847         * dbus/dbus-message.h:
12848         Implement dbus_message_get_sender.
12849
12850         * dbus/dbus-protocol.h:
12851         Add message and service defines.
12852
12853 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12854
12855         * dbus/dbus-connection.c: (dbus_connection_send_message):
12856         * dbus/dbus-message-internal.h:
12857         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12858         (dbus_message_write_header):
12859         Remove _dbus_messag_unlock and don't set the client serial on a
12860         message if one already exists.
12861
12862 2003-01-24  Havoc Pennington  <hp@pobox.com>
12863
12864         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12865         list_pool
12866
12867         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12868         on OOM
12869
12870 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12871
12872         * dbus/dbus-list.c: (alloc_link), (free_link):
12873         Use a memory pool for the links.
12874
12875 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12876
12877         * bus/connection.c: (bus_connection_foreach):
12878         * bus/connection.h:
12879         Add new bus_connection_foreach function.
12880
12881         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12882         Add function that broadcasts a message to all clients.
12883
12884         (bus_driver_send_service_created), (bus_driver_handle_hello),
12885         (bus_driver_send_welcome_message),
12886         (bus_driver_handle_list_services), (bus_driver_message_handler):
12887         Implement functions that take care of listing services, and notifying
12888         clients when new services are created.
12889
12890         * bus/services.c: (bus_services_list):
12891         * bus/services.h:
12892         Add new function that returns an array of strings with the currently
12893         registered services.
12894
12895         * glib/dbus-glib.h:
12896         * glib/dbus-gmain.c:
12897         Update copyright year.
12898
12899 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12900
12901         * dbus/dbus-connection.c: (dbus_connection_send_message):
12902         Unlock the message in case it was sent earlier.
12903
12904         (dbus_connection_send_message_with_reply_and_block):
12905         Remove the reply message from the list.
12906
12907         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12908         Set array_len and new_pos correctly.
12909
12910         (_dbus_marshal_test):
12911         Remove debug output.
12912
12913         * dbus/dbus-message-internal.h:
12914         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12915         New function that returns the reply serial.
12916
12917         (_dbus_message_unlock):
12918         New function that unlocks a message and resets its header.
12919
12920         (dbus_message_append_string_array),
12921         (dbus_message_get_fields_valist),
12922         (dbus_message_iter_get_field_type),
12923         (dbus_message_iter_get_string_array),
12924         (dbus_message_get_fields),
12925         (dbus_message_append_fields_valist):
12926         Handle string arrays.
12927
12928         (dbus_message_set_sender):
12929         Make this function public since the bus daemon needs it.
12930
12931         (decode_header_data):
12932         Set the reply serial to -1 initially.
12933
12934         * dbus/dbus-message.h:
12935         Add dbus_message_set_sender.
12936
12937 2003-01-24  Havoc Pennington  <hp@pobox.com>
12938
12939         * doc/dbus-specification.sgml: add some stuff
12940
12941 2003-01-22  Havoc Pennington  <hp@pobox.com>
12942
12943         * doc/dbus-specification.sgml: Start to document the protocol.
12944
12945 2003-01-22  Havoc Pennington  <hp@pobox.com>
12946
12947         * dbus/dbus-connection.c
12948         (dbus_connection_send_message_with_reply_and_block): add some @todo
12949
12950         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12951
12952 2003-01-21  Havoc Pennington  <hp@pobox.com>
12953
12954         (patch untested because can't compile)
12955
12956         * bus/driver.c (create_unique_client_name): make this function
12957         never recycle client names. Also, caller should initialize
12958         the DBusString.
12959
12960         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12961
12962 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12963
12964         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12965         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12966         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12967         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12968         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12969         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12970         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12971         * dbus/dbus-marshal.h:
12972         * dbus/dbus-protocol.h:
12973         Add support for marshalling and demarshalling integer, double
12974         and string arrays.
12975
12976 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12977
12978         * bus/Makefile.am:
12979         Add driver.[ch]
12980
12981         * bus/connection.c: (connection_disconnect_handler):
12982         Remove the connection from the bus driver's list.
12983
12984         (connection_watch_callback): Dispatch messages.
12985
12986         (free_connection_data): Free connection name.
12987
12988         (bus_connection_setup): Add connection to the bus driver's list.
12989         (bus_connection_remove_owned_service):
12990         (bus_connection_set_name), (bus_connection_get_name):
12991         Add functions for setting and getting the connection's name.
12992
12993         * bus/connection.h:
12994         Add function headers.
12995
12996         * bus/driver.c: (create_unique_client_name),
12997         (bus_driver_handle_hello_message),
12998         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12999         (bus_driver_add_connection), (bus_driver_remove_connection):
13000         * bus/driver.h:
13001         * bus/main.c:
13002         * bus/services.c: (bus_service_free):
13003         * bus/services.h:
13004         New file that handles communication and registreation with the bus
13005         itself.
13006
13007 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13008
13009         * dbus/dbus-connection.c: (dbus_connection_send_message):
13010         Add a new client_serial parameter.
13011
13012         (dbus_connection_send_message_with_reply):
13013         Remove a @todo since we've implemented the blocking function.
13014
13015         (dbus_connection_send_message_with_reply_and_block):
13016         New function that sends a message and waits for a reply and
13017         then returns the reply.
13018
13019         * dbus/dbus-connection.h:
13020         Add new functions.
13021
13022         * dbus/dbus-errors.c: (dbus_result_to_string):
13023         * dbus/dbus-errors.h:
13024         Add new DBUS_RESULT.
13025
13026         * dbus/dbus-message-internal.h:
13027         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13028         (_dbus_message_set_sender), (dbus_message_write_header),
13029         (dbus_message_new_reply), (decode_header_data),
13030         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13031         * dbus/dbus-message.h:
13032         Add new functions that set the reply serial and sender.
13033         Also marshal and demarshal them correctly and add test.
13034
13035         * dbus/dbus-protocol.h:
13036         Add new DBUS_MESSAGE_TYPE_SENDER.
13037
13038         * glib/dbus-glib.h:
13039         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13040         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13041         (dbus_connection_hookup_with_g_main):
13042         * glib/test-dbus-glib.c: (main):
13043         Rewrite to use GIOChannel and remove the GSource crack.
13044
13045         * test/echo-client.c: (main):
13046         * test/watch.c: (check_messages):
13047         Update for changed APIs
13048
13049 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13050
13051         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13052
13053         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13054         Create a DBusTimeoutList.
13055         (dbus_connection_set_timeout_functions): Add new function to
13056         set timeout callbacks
13057
13058         * dbus/dbus-connection.h: Add public DBusTimeout API.
13059
13060         * dbus/dbus-message.c: (dbus_message_get_service):
13061         * dbus/dbus-message.h:  New function.
13062
13063         * dbus/dbus-server.c: Fix small doc typo.
13064
13065         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13066
13067 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13068
13069         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13070         of the string, just as long as specified.
13071
13072 2003-01-19  Havoc Pennington  <hp@pobox.com>
13073
13074         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13075         new function
13076
13077         * dbus/dbus-server.c (dbus_server_set_max_connections)
13078         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13079         keep track of current number of connections, and add API for
13080         setting a max (but haven't implemented enforcing the max yet)
13081
13082 2003-01-18  Havoc Pennington  <hp@pobox.com>
13083
13084         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13085         reading/writing if read_watch != NULL or write_watch != NULL.
13086
13087         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13088         the message loader code to actually load message->header and
13089         message->body into the newly-created message.
13090
13091         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13092         in OOM case
13093
13094         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13095         (dbus_connection_get_max_message_size)
13096         (dbus_connection_set_max_live_messages_size)
13097         (dbus_connection_get_max_live_messages_size): implement some
13098         resource limitation functions
13099
13100         * dbus/dbus-resources.c: new file implementing some of the
13101         resource limits stuff
13102
13103         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13104         missing docs, add @todo to handle OOM etc.
13105
13106         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13107         docs
13108
13109 2003-01-18  Havoc Pennington  <hp@pobox.com>
13110
13111         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13112         connection if it hasn't been already.
13113
13114         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13115         replace with DisconnectFunction.
13116
13117 2003-01-18  Havoc Pennington  <hp@pobox.com>
13118
13119         Building --disable-verbose-mode --disable-asserts --disable-tests
13120         cuts the library from 112K to 45K or so
13121
13122         * configure.in: check for varargs macro support,
13123         add --enable-verbose-mode, --enable-asserts.
13124
13125         * dbus/dbus-internals.h (_dbus_assert): support
13126         DBUS_DISABLE_ASSERT
13127         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13128
13129 2003-01-18  Havoc Pennington  <hp@pobox.com>
13130
13131         * dbus/dbus-test.c: include config.h so that tests actually run
13132
13133         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13134         so the failure mode when that assumption fails will be plenty
13135         obvious.
13136
13137 2003-01-18  Havoc Pennington  <hp@pobox.com>
13138
13139         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13140
13141         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13142         the distribution
13143
13144         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13145         since we don't want to use those in make check
13146
13147 2003-01-15  Havoc Pennington  <hp@redhat.com>
13148
13149         Release 0.2
13150
13151         * NEWS: update
13152
13153 2003-01-15  Havoc Pennington  <hp@redhat.com>
13154
13155         * test/Makefile.am: fix so that test source code ends up in the
13156         distribution on make distcheck
13157
13158 2003-01-15  Havoc Pennington  <hp@redhat.com>
13159
13160         Release 0.1.
13161
13162         * NEWS: update
13163
13164 2003-01-15  Havoc Pennington  <hp@redhat.com>
13165
13166         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13167         fix build when --disable-tests
13168
13169         * Makefile.am (EXTRA_DIST): put HACKING in here
13170
13171         * HACKING: document procedure for making a tarball release.
13172
13173 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13174
13175         * bus/connection.c: (connection_error_handler),
13176         (bus_connection_setup):
13177         * bus/main.c: (main):
13178         Make sure that the DBusConnectionData struct is NULLed
13179         out to prevent a segfault.
13180
13181         * dbus/dbus-errors.c: (dbus_result_to_string):
13182         * dbus/dbus-errors.h:
13183         * dbus/dbus-message.c: (dbus_message_get_fields),
13184         (dbus_message_get_fields_valist), (_dbus_message_test):
13185         * dbus/dbus-message.h:
13186         Make dbus_message_get_fields return a result code so we can
13187         track invalid fields as well as oom.
13188
13189 2003-01-11  Havoc Pennington  <hp@pobox.com>
13190
13191         * configure.in: change --enable-test/--enable-ansi action-if-given
13192         to enable_foo=$enableval instead of enable_foo=yes
13193
13194 2003-01-08  Havoc Pennington  <hp@pobox.com>
13195
13196         * dbus/dbus-string.c (_dbus_string_align_length): new function
13197
13198         * dbus/dbus-test-main.c: move main() for test app here
13199         * dbus/dbus-test.c
13200         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13201         symbol to run tests, because dbus-test isn't in the main
13202         library
13203
13204         Code review nitpicks.
13205
13206         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13207         for people with narrow emacs ;-). Assert client_serial was filled
13208         in. Assert message->name != NULL.
13209         (dbus_message_append_fields): have "first_field_type" arg separate
13210         from va list, needed for C++ binding that also uses varargs IIRC
13211         and helps with type safety
13212         (dbus_message_new): add @todo about using DBusString to store
13213         service/name internally
13214         (dbus_message_new): don't leak ->service and ->name on OOM later
13215         in the function
13216         (dbus_message_unref): free the service name
13217         (dbus_message_get_fields): same change to varargs
13218         i.e. first_field_type
13219         (_dbus_message_loader_return_buffer): assert that the message data
13220         is aligned (if not it's a bug in our code). Put in verbose griping
13221         about why we set corrupted = TRUE.
13222         (decode_header_data): add FIXME that char* is evil.  Was going to
13223         add FIXME about evil locale-specific string.h strncmp, but just
13224         switched to wacky string-as-uint32 optimization. Move check for
13225         "no room for field name" above get_const_data_len() to avoid
13226         assertion failure in get_const_data_len if we have trailing 2
13227         bytes or the like. Check for service and name fields being
13228         provided twice. Don't leak service/name on error. Require field
13229         names to be aligned to 4 bytes.
13230
13231         * dbus/dbus-marshal.c: move byte swap stuff to header
13232         (_dbus_pack_int32): uscore-prefix
13233         (_dbus_unpack_int32): uscore-prefix
13234         (_dbus_unpack_uint32): export
13235         (_dbus_demarshal_string): add @todo complaining about use of
13236         memcpy()
13237         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13238         handling allowing corrupt data to go unchecked
13239
13240 2003-01-08  Havoc Pennington  <hp@redhat.com>
13241
13242         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13243         to the select() as needed for authentication. (should be using
13244         _dbus_poll() not select, but for another day)
13245
13246         * dbus/dbus.h: include dbus/dbus-protocol.h
13247
13248 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13249
13250         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13251         dbus-connection.h
13252
13253 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13254
13255         * dbus/dbus-internals.c: (_dbus_type_to_string):
13256         New function that returns a string describing a type.
13257
13258         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13259         * dbus/dbus-marshal.h:
13260         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13261         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13262         (dbus_message_iter_get_byte_array):
13263         * dbus/dbus-message.h:
13264         Add new convenience functions for appending and getting message fields.
13265         Also add demarshalling routines for byte arrays.
13266
13267 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13268
13269         * dbus/dbus-connection-internal.h:
13270         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13271         (_dbus_connection_get_next_client_serial),
13272         (dbus_connection_send_message):
13273         * dbus/dbus-internals.h:
13274         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13275         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13276         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13277         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13278         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13279         (_dbus_verbose_bytes), (_dbus_marshal_test):
13280         * dbus/dbus-marshal.h:
13281         * dbus/dbus-message-internal.h:
13282         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13283         (dbus_message_write_header), (_dbus_message_lock),
13284         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13285         (dbus_message_get_name), (dbus_message_append_int32),
13286         (dbus_message_append_uint32), (dbus_message_append_double),
13287         (dbus_message_append_string), (dbus_message_append_byte_array),
13288         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13289         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13290         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13291         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13292         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13293         (decode_header_data), (_dbus_message_loader_return_buffer),
13294         (message_iter_test), (_dbus_message_test):
13295         * dbus/dbus-message.h:
13296         * dbus/dbus-protocol.h:
13297         * dbus/dbus-test.c: (main):
13298         * dbus/dbus-test.h:
13299         * glib/test-dbus-glib.c: (message_handler), (main):
13300         * test/echo-client.c: (main):
13301         * test/watch.c: (check_messages):
13302         Make messages sendable and receivable for real.
13303
13304 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13305
13306         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13307         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13308         * dbus/dbus-message.c: (dbus_message_append_int32),
13309         (dbus_message_append_uint32), (dbus_message_append_double),
13310         (dbus_message_append_string), (dbus_message_append_byte_array):
13311         Handle OOM restoration.
13312
13313 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13314
13315         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13316         (_dbus_demarshal_string), (_dbus_marshal_test):
13317         * dbus/dbus-marshal.h:
13318         * dbus/dbus-message.c: (dbus_message_get_name),
13319         Document these functions.
13320
13321         (dbus_message_append_int32), (dbus_message_append_uint32),
13322         (dbus_message_append_double), (dbus_message_append_string),
13323         (dbus_message_append_byte_array):
13324         * dbus/dbus-message.h:
13325         Add functions for adding message fields of different types.
13326
13327         * dbus/dbus-protocol.h:
13328         Add the different types.
13329
13330 2003-01-05  Havoc Pennington  <hp@pobox.com>
13331
13332         * bus/connection.c: implement routines for handling connections,
13333         first thing is keeping a list of owned services on each connection
13334         and setting up watches etc.
13335
13336         * bus/services.c: implement a mapping from service names to lists
13337         of connections
13338
13339         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13340
13341         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13342         to use static mutexes for global data
13343
13344         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13345         collection of functions to set/get application-specific data
13346         on the DBusConnection.
13347
13348 2003-01-04  Havoc Pennington  <hp@pobox.com>
13349
13350         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13351         (_dbus_poll): new function
13352
13353         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13354         copied from GLib
13355
13356         * bus/loop.c: initial code for the daemon main loop
13357
13358 2003-01-04  Havoc Pennington  <hp@pobox.com>
13359
13360         * test/watch.c (error_handler): make it safe if the error handler
13361         is called multiple times (if we s/error handler/disconnect
13362         handler/ we should just guarantee it's called only once)
13363
13364         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13365         error handler on disconnect (it's quite possible we should
13366         just change the error handler to a "disconnect handler," I'm
13367         not sure we have any other meaningful errors)
13368
13369         * configure.in: check for getpwnam_r
13370
13371         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13372         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13373         mechanism as in SASL spec, using socket credentials
13374
13375         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13376         (_dbus_send_credentials_unix_socket): new function
13377
13378         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13379         dbus_accept()
13380         (_dbus_write): only check errno if <0 returned
13381         (_dbus_write_two): ditto
13382
13383 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13384
13385         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13386         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13387         (_dbus_marshal_test):
13388         * dbus/dbus-marshal.h:
13389         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13390         to _dbus_marshal_utf8_string. Also fix some tests.
13391
13392 2002-12-28  Harri Porten  <porten@kde.org>
13393
13394         * configure.in: added check for C++ compiler and a very cheesy
13395         check for the Qt integration
13396
13397         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13398
13399         * qt/Makefile.am: added
13400
13401         * qt/.cvsignore: added
13402
13403         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13404         latter, added #ifdef QT_THREAD_SUPPORT guard.
13405
13406         * dbus/Makefile.am: added missing headers for make dist
13407
13408 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13409
13410         * dbus/Makefile.am: fixup export-symbols-regex.
13411
13412 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13413
13414         * acinclude.m4: Add this file and put the
13415         PKG_CHECK_MODULE macro in it.
13416
13417 2002-12-27  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         Make the demarshalling routines align the pos argument.
13424         Add string marshalling tests and fix the obvious bugs
13425         discovered.
13426
13427 2002-12-26  Havoc Pennington  <hp@pobox.com>
13428
13429         * dbus/dbus-auth.c: fixes fixes fixes
13430
13431         * dbus/dbus-transport-unix.c: wire up support for
13432         encoding/decoding data on the wire
13433
13434         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13435         (_dbus_auth_decode_data): append to target string
13436         instead of nuking it.
13437
13438 2002-12-26  Havoc Pennington  <hp@pobox.com>
13439
13440         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13441         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13442         doh
13443
13444         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13445         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13446         now). Main point is because I wanted unpack_uint32 to implement
13447         _dbus_verbose_bytes
13448         (_dbus_verbose_bytes): new function
13449
13450         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13451
13452         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13453         mechanism to handle a corrupt message stream
13454         (_dbus_message_loader_new): fix preallocation to only prealloc,
13455         not prelengthen
13456
13457         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13458         (_dbus_string_test): enhance tests for copy/move and fix the
13459         functions
13460
13461         * dbus/dbus-transport-unix.c: Hold references in more places to
13462         avoid reentrancy problems
13463
13464         * dbus/dbus-transport.c: ditto
13465
13466         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13467         leak reference count in no-message case
13468
13469         * test/watch.c (do_mainloop): handle adding/removing watches
13470         during iteration over the watches. Also, ref the connection/server
13471         stored on a watch, so we don't try to mangle a destroyed one.
13472
13473         * dbus/dbus-transport-unix.c (do_authentication): perform
13474         authentication
13475
13476         * dbus/dbus-auth.c (get_state): add a state
13477         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13478         (_dbus_auth_get_unused_bytes): append the unused bytes
13479         to the passed in string, rather than prepend
13480
13481         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13482         the auth conversation DBusAuth
13483
13484         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13485         (_dbus_transport_new_for_domain_socket): when creating a
13486         transport, pass in whether it's a client-side or server-side
13487         transport so we know which DBusAuth to create
13488
13489 2002-12-03  Havoc Pennington  <hp@pobox.com>
13490
13491         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13492         _after_ finalizing the derived members
13493         (unix_connection_set): unref watch if we fail to add it
13494
13495         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13496         transport first, so that the connection owned by the
13497         transport will be valid as the transport finalizes.
13498
13499         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13500         if necessary, and remove watches from the connection.
13501
13502         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13503
13504 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13505
13506         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13507         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13508         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13509         (_dbus_marshal_test):
13510         * dbus/dbus-marshal.h:
13511         Add string marshal functions and have the demarshal functions
13512         return the new position.
13513
13514 2002-12-25  Havoc Pennington  <hp@pobox.com>
13515
13516         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13517         it is a simple protocol that just maps directly to SASL.
13518
13519         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13520         initial implementation, not actually used yet.
13521
13522         * dbus/dbus-string.c (_dbus_string_find): new function
13523         (_dbus_string_equal): new function
13524         (_dbus_string_base64_encode): new function
13525         (_dbus_string_base64_decode): new function
13526
13527 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13528
13529         * dbus/Makefile.am:
13530         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13531         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13532         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13533         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13534         * dbus/dbus-marshal.h:
13535         * dbus/dbus-protocol.h:
13536         * dbus/dbus-test.c: (main):
13537         * dbus/dbus-test.h:
13538         Add un-optimized marshalling/demarshalling routines.
13539
13540 2002-12-25  Harri Porten  <porten@kde.org>
13541
13542         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13543
13544 2002-12-24  Zack Rusin  <zack@kde.org>
13545
13546         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13547         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13548         main loop stuff
13549
13550 2002-12-24  Havoc Pennington  <hp@pobox.com>
13551
13552         * glib/dbus-gthread.c: fix include
13553
13554         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13555         I think glib API needs to change, though, as you don't
13556         want to use DBusMessageFunction, you want to use the
13557         DBusMessageHandler object. Probably
13558         dbus_connection_open_with_g_main_loop()
13559         and dbus_connection_setup_g_main_loop() or something like that
13560         (but think of better names...) that just create a connection
13561         that has watch/timeout functions etc. already set up.
13562
13563         * dbus/dbus-connection.c
13564         (dbus_connection_send_message_with_reply): new function just to
13565         show how the message handler helps us deal with replies.
13566
13567         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13568
13569         * dbus/dbus-string.c (_dbus_string_test): free a string that
13570         wasn't
13571
13572         * dbus/dbus-hash.c: use memory pools for the hash entries
13573         (rebuild_table): be more paranoid about overflow, and
13574         shrink table when we can
13575         (_dbus_hash_test): reduce number of sprintfs and write
13576         valid C89. Add tests for case where we grow and then
13577         shrink the hash table.
13578
13579         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13580
13581         * dbus/dbus-connection.c (dbus_connection_register_handler)
13582         (dbus_connection_unregister_handler): new functions
13583
13584         * dbus/dbus-message.c (dbus_message_get_name): new
13585
13586         * dbus/dbus-list.c: fix docs typo
13587
13588         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13589         an object representing a handler for messages.
13590
13591 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13592
13593         * glib/dbus-glib.h:
13594         * glib/dbus-gthread.c: (dbus_gthread_init):
13595         Don't use the gdbus prefix for public functions.
13596
13597 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13598
13599         * Makefile.am:
13600         * configure.in:
13601         Add GLib checks and fixup .pc files
13602
13603         * glib/Makefile.am:
13604         * glib/dbus-glib.h:
13605         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13606         (gdbus_connection_check), (gdbus_connection_dispatch),
13607         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13608         (dbus_connection_gsource_new):
13609         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13610         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13611         * glib/test-dbus-glib.c: (message_handler), (main):
13612         Add GLib support.
13613
13614 2002-12-15  Harri Porten  <porten@kde.org>
13615
13616         * autogen.sh: check for libtoolize before attempting to use it
13617
13618         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13619         struct.
13620
13621         * .cvsignore: ignore more stamp files
13622
13623         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13624
13625         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13626         without make install.
13627
13628 2002-12-15  Havoc Pennington  <hp@pobox.com>
13629
13630         * dbus/dbus-threads.c: add thread stubs that a higher library
13631         layer can fill in. e.g. the GLib wrapper might fill them in with
13632         GThread stuff. We still need to use this thread API to
13633         thread-safe-ize the library.
13634
13635 2002-12-12  Havoc Pennington  <hp@pobox.com>
13636
13637         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13638         below new interfaces and include fewer system headers.
13639
13640         * dbus/dbus-sysdeps.c (_dbus_read): new function
13641         (_dbus_write): new function
13642         (_dbus_write_two): new function
13643         (_dbus_connect_unix_socket): new function
13644         (_dbus_listen_unix_socket): new function
13645
13646         * dbus/dbus-message-internal.h: change interfaces to use
13647         DBusString
13648
13649 2002-12-11  Havoc Pennington  <hp@pobox.com>
13650
13651         * dbus/dbus-types.h: add dbus_unichar
13652
13653         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13654
13655         * dbus/dbus-connection.c (dbus_connection_send_message): return
13656         TRUE on success
13657
13658         * dbus/dbus-transport.c: include dbus-watch.h
13659
13660         * dbus/dbus-connection.c: include dbus-message-internal.h
13661
13662         * HACKING: add file with coding guidelines stuff.
13663
13664         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13665         handling here, for security purposes (as in vsftpd). Not actually
13666         using this class yet.
13667
13668         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13669         system/libc usage here, as in vsftpd, for ease of auditing (and
13670         should also simplify portability). Haven't actually moved all the
13671         system/libc usage into here yet.
13672
13673 2002-11-25  Havoc Pennington  <hp@pobox.com>
13674
13675         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13676         always print the first verbose message.
13677
13678 2002-11-24  Havoc Pennington  <hp@pobox.com>
13679
13680         * test/echo-client.c, test/echo-server.c: cheesy test
13681         clients.
13682
13683         * configure.in (AC_CHECK_FUNCS): check for writev
13684
13685         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13686         function
13687
13688         * dbus/dbus-list.c (_dbus_list_foreach): new function
13689
13690         * dbus/dbus-internals.c (_dbus_verbose): new function
13691
13692         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13693         representing a server that listens for connections.
13694
13695         * dbus/.cvsignore: create
13696
13697         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13698         public API for reporting errors
13699
13700         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13701         public object representing a connection that
13702         sends/receives messages. (Same object used for
13703         both client and server.)
13704
13705         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13706         Basic abstraction for different kinds of stream
13707         that we might read/write messages from.
13708
13709 2002-11-23  Havoc Pennington  <hp@pobox.com>
13710
13711         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13712         _DBUS_INT_MAX
13713
13714         * dbus/dbus-test.c (main): add list test, and include
13715         dbus-test.h as intended
13716
13717         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13718         (_dbus_hash_table_remove_int): return value indicates
13719         whether the entry existed to remove
13720
13721         * dbus/dbus-list.c: add linked list utility class,
13722         with docs and tests
13723
13724         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13725         array sometimes.
13726
13727 2002-11-23  Havoc Pennington  <hp@pobox.com>
13728
13729         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13730         DBUS_END_DECLS to nothing, that should fix this once and for all
13731
13732         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13733
13734         * dbus/dbus-message.c, dbus/dbus-hash.c:
13735         add some missing @brief
13736
13737 2002-11-23  Havoc Pennington  <hp@pobox.com>
13738
13739         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13740         to avoid confusing Doxygen
13741
13742         * dbus/dbus-hash.c: @} not }@
13743
13744         * dbus/dbus-message.c (struct DBusMessage): split out
13745         internals docs
13746
13747 2002-11-23  Havoc Pennington  <hp@pobox.com>
13748
13749         * configure.in: pile on more warning flags if using gcc
13750
13751         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13752         to document static functions
13753
13754         * configure.in: add summary to end of configure so it
13755         looks nice and attractive
13756
13757         * dbus/dbus-hash.c: finish implementation and write unit
13758         tests and docs
13759
13760         * configure.in: add --enable-tests to enable unit tests
13761
13762         * dbus/dbus-test.c: test program to run unit tests
13763         for all files in dbus/*, initially runs a test for
13764         dbus-hash.c
13765
13766         * dbus/dbus-internals.h: file to hold some internal utility stuff
13767
13768 2002-11-22  Havoc Pennington  <hp@redhat.com>
13769
13770         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13771         "ported" away from Tcl
13772
13773         * dbus/dbus-types.h: header for types such as dbus_bool_t
13774
13775 2002-11-22  Havoc Pennington  <hp@redhat.com>
13776
13777         * dbus/dbus.h: fixups for doc warnings
13778
13779         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13780         macros
13781         (QUIET): make it quiet so we can see warnings
13782
13783         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13784
13785 2002-11-22  Havoc Pennington  <hp@redhat.com>
13786
13787         * Makefile.am: include "Doxyfile" target in all-local
13788
13789         * configure.in: generate the Doxyfile
13790
13791         * Doxyfile.in: move Doxyfile here, so we can use
13792         configure to generate a Doxyfile with the right
13793         version number etc.
13794
13795 2002-11-22  Havoc Pennington  <hp@redhat.com>
13796
13797         * dbus/dbus-message.c: move inline docs into .c file
13798
13799         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13800         so all docs are under doc/
13801         (MAN_EXTENSION): generate man pages. Use extension
13802         ".3dbus" which matches ".3qt" on my system,
13803         I guess this is OK, I don't know really.
13804         (FILE_PATTERNS): look for .c files not .h, makes sense
13805         for plain C I think
13806
13807 2002-11-22  Havoc Pennington  <hp@pobox.com>
13808
13809         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13810         because any app can be a server, and any app can be a client,
13811         the bus is a special kind of server.
13812
13813 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13814
13815         * Doxyfile : adding. Still needs Makefile rules to be generated
13816         automatically (just run "doxygen" in the toplevel dir for now to
13817         generate docs)
13818
13819         * dbus/dbus-message.h : Adding sample docs (javadoc since
13820         resembles gtk-doc a little more)
13821
13822         * dbus/dbus.h : Adding sample docs
13823
13824 2002-11-21  Havoc Pennington  <hp@redhat.com>
13825
13826         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13827         so we can allow ourselves to include files directly,
13828         instead of having to use dbus.h
13829
13830         * dbus/dbus.h: fill in
13831
13832         * dbus/dbus-message.h: sketch out a sample header file.
13833         Include griping if you include it directly instead of
13834         via dbus.h
13835
13836         * dbus/dbus-macros.h: new file with macros for extern "C",
13837         TRUE/FALSE, NULL, etc.
13838
13839         * doc/file-boilerplate.c: put include guards in here
13840
13841 2002-11-21  Havoc Pennington  <hp@redhat.com>
13842
13843         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13844
13845         * COPYING: include the GPL as well, and license code
13846         under both AFL and GPL.
13847
13848 2002-11-21  Havoc Pennington  <hp@redhat.com>
13849
13850         * acconfig.h: get rid of this
13851
13852         * autogen.sh (run_configure): add --no-configure option
13853
13854         * configure.in: remove AC_ARG_PROGRAM to make
13855         autoconf complain less. add AC_PREREQ.
13856         add AC_DEFINE third arg.
13857
13858 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13859
13860         * doc/Makefile.am:
13861         Fix references so we can distcheck.
13862
13863 2002-11-21  Havoc Pennington  <hp@redhat.com>
13864
13865         * Initial module creation
13866