* dbus/dbus-sysdeps.h:
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-sysdeps.h:
4         * dbus/dbus-sysdeps.c: 
5         * dbus/dbus-string.c: 
6         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
7         GLib's function which does the same thing
8
9         * configure.in:
10         * bus/Makefile.am:
11         * bus/dir-watch-default.c:
12         * bus/dir-watch-dnotify.c:
13         * bus/dir-watch-kqueue.c:
14         Add kqueue directory watching for freebsd and split the directory
15         watching code into seperate files per method/arch
16         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
17
18 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
19
20         * configure.in:
21         * tools/Makefile.am:
22         * tools/dbus-launch.c:
23         * bus/Makefile.am:
24         allow --with-dbus-daemondir switch to be used to make the
25         daemon install to a seperate bindir like /usr/libexec
26         (patch from Brian Cameron <brian dot cameron at sun dot com)
27
28 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
29
30         * bus/Makefile.am (install-data-hook): removed the slash after 
31         $(DESTDIR) so we don't get the double slash which does not work
32         in windows (patch from Andras Porjesz 
33         <andras dot porjesz at siemens dot com>
34
35 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
36
37         * dbus/dbus-sysdeps.h:
38         * dbus/dbus-sysdeps.c: 
39           add _dbus_printf_length (patch from Peter Kümmel 
40           <syntheticpp at gmx dot net>)
41
42 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
43
44         * dbus/dbus-internals.c: unistd.h is not used 
45         (_dbus_verbose_real): only enable verbose printing 
46         if DBUS_VERBOSE environment var is set to '1'
47         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
48
49 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
50
51         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
52         so we still compile on older gcc (patch from Frederic Peters 
53         <fpeters at 0d dot be>
54
55 2006-08-04  Havoc Pennington  <hp@redhat.com>
56
57         * configure.in: add -Wdeclaration-after-statement
58
59         * dbus/dbus-connection.c: change all the pending call stuff to
60         reflect the fact that pending call operations use the connection
61         lock
62
63         * dbus/dbus-pending-call.c: add locking here
64
65         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
66         field const consistent with how message field is done
67
68 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
69
70         * s/D-BUS/D-Bus/g
71
72 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
73
74         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
75         <in7y118 at public.uni-hamburg dot de> - fix invalid
76         read/write reported by valgrind
77
78 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
79
80         * Released 0.91
81
82 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
83
84         * dbus/dbus-connection.c:
85         (_dbus_connection_attach_pending_call_unlocked):
86         (connection_timeout_and_complete_all_pending_calls_unlocked):
87         Make sure we set timeout_added on pending calls to FALSE when
88         we remove the timeout from the connection
89
90 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
91
92         * Removed some extra bindings stuff lingering around (thanks timo)
93         * dbus-pendingcall.c (_dbus_pending_call_new): 
94         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
95         when we tried to take a lock on an already locked connection
96
97 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
98
99         * Released 0.90
100
101 2006-07-17  Havoc Pennington  <hp@redhat.com>
102
103         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
104         ints, reported by Owen Taylor
105
106 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
107
108         * doc/TODO:
109         * dbus/dbus-bus.c:
110         * dbus-errors.c:
111         * dbus/dbus-marshal-validate.c:
112           Removed TODO items which were fixed or are no longer relevent
113
114 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
115
116         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
117         Remove stray files from the stripped bindings
118
119 2006-07-16  Havoc Pennington  <hp@redhat.com>
120
121         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
122         Improve the error message on reply timeout
123
124 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
125
126         * Remove all bindings
127
128 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
129
130         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
131         and set pending_reply out arg to NULL is connection is disconnected
132         (connection_timeout_and_complete_all_pending_calls_unlocked): New
133         static method for cleaning up pending calls on disconnect
134         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
135         calls queued timeouts on disconnect 
136
137          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
138         Remove 
139
140 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
141
142         * bus/activation.[ch] (bus_activation_list_services): new function to 
143         get the list of services that can be activated
144
145         * bus/dispatch.c: test coverage for the new bus method
146         ListActivatableNames
147
148         * bus/driver.c: new bus method ListActivatableNames to get the list of
149         services that can be activated
150
151         * doc/dbus-specification.xml: ListActivatableNames method documentation
152
153 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
154         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
155         source files
156
157 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
158         * dbus/dbus-message-factory.c:
159         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
160
161 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
162         * dbus/dbus-connection-internal.h:
163         * dbus/dbus-connection.c:
164         * file dbus/dbus-pending-call.c:
165         * dbus/dbus-pending-call.h:
166         Make DBusPendingCall an opaque type even to D-Bus internals
167
168 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
169
170         * dbus/dbus-connection.h: remove connection_disconnect and replace with
171         connection_close
172
173         * dbus/dbus-connection.c: include dbus-bus.h
174         (_dbus_connection_read_write_dispatch): make static
175
176 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
177
178         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
179         function
180         (dbus_connection_dispatch): On disconnect unref any shared connections
181
182         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
183         for cleaning up shared connections on disconnect
184         (internal_bus_get): get a hard refrence to shared connections when
185         they are created
186         
187         * doc/TODO: Remove items which are no longer relevent or have been fixed
188         Split 1.0 todo items with a 0.90 freeze todo list
189  
190 2006-06-14  Ross Burton  <ross@openedhand.com>
191
192         * glib/dbus-gobject.c:
193         Free a leaking GArray (surely not!) in dbus_g_method_return.
194
195 2006-06-14  Ross Burton  <ross@openedhand.com>
196
197         * tools/Makefile.am:
198         * tools/dbus-monitor.c:
199         Don't use the GLib bindings in dbus-monitor (patch from Ralf
200         Habacker).
201         
202 2006-06-14  Ross Burton  <ross@openedhand.com>
203
204         * tools/dbus-print-message.c:
205         Also print the object path when outputting signals or method calls.
206
207 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
208
209         * qt/src/Makefile.am: install the qdbus.h header.
210         This allows people to actually use the installed code.
211
212 2006-06-12  Ross Burton  <ross@openedhand.com>
213
214         * glib/dbus-gproxy.c:
215         Don't leak a GArray when firing signals (thank Rob Taylor for review).
216
217 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
218
219         * Released 0.62
220
221 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
222
223         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
224         break pedantic builds. Closes bug 6043 (patch approved by
225         Havoc back in February).
226
227 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
228
229         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
230         that took a QDBusMessage parameter.
231         * qt/src/qdbusbus.h: Add a default flag for RequestName.
232         * qt/tools/dbus.cpp: Don't use automatic call because we might
233         be calling an async method: request a reply.
234
235 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
236
237         * test/qt/*: Update the testcases, including testing the new
238         functionality of sending null QByteArray and QString over the
239         bus. Add new headertest test and restore the old
240         qdbusxmlparser test.
241
242 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
243
244         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
245         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
246
247         * qt/examples/Makefile.am:
248         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
249         form.
250
251         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
252         QByteArray() (nulls) over the bus.
253         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
254         the one that has the signature suffix stripped.
255         * qt/src/qdbusreply.h: Make some methods const.
256
257 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
258
259         Patch from Timo Hoenig <thoenig@suse.de>.
260
261         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
262         required during build to EXTRA_DIST.
263         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
264         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
265         * configure.in: Fix "make dist", take care that the Makefile for
266         qt/dbus is being generated.
267
268 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
269
270         * bus/bus.c: Fix eavesdropping on method calls
271
272 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
273
274         * configure.in:
275         * dbus/dbus-userdb-util.c:
276         Add Solaris console owner patch from Artem Kachitchkine
277
278 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
279
280         * qt/Makfile.am:
281         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
282         reorganisation. Thanks to Timo Hoenig for pointing this out.
283
284 2006-06-06  Robert McQueen  <robot101@debian.org>
285
286         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
287           call to dbus_g_type_get_struct.
288
289 2006-06-06  Robert McQueen  <robot101@debian.org>
290
291         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
292           pointers were put into a GPtrArray-based specialised collection, and
293           then freed along with the array. GValues which you add into
294           collections or maps which have the NOCOPY flag set are assumed to not
295           belong to the caller, so rather than the existing pointer-stealing
296           semantics, they are copied instead. Given that the main consumers of
297           this abstraction are the bindings themselves, I don't think this is
298           too bad, but others should watch their choice of take vs set_static.
299
300 2006-06-06  Robert McQueen  <robot101@debian.org>
301
302         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
303           of g_slist_prepend not being used. Fixed copying of slist-based
304           specialised collections, then wrote a test case and found that it was
305           all broken. Went on to fix iterating and appending too. Good thing
306           nobody uses this code yet.
307
308 2006-06-06  Robert McQueen  <robot101@debian.org>
309
310         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
311           the iterators use gvalue_take_ptrarray_value (the GValues themselves
312           are discarded without unsetting, so it makes no difference whether
313           we take or set_static). Remove cases for G_TYPE_POINTER because
314           there really is nothing useful we can do with them in our
315           specialised types - we *need* boxed copy/free functions at the very
316           least.
317
318 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
319
320         * qt/dbus: Add directory. I had forgotten to add this
321         yesterday after the move...
322
323         * qt/examples/Makefile.am:
324         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
325
326         * qt/tools/Makefile.am:
327         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
328         Added feature to get and set properties.
329         Added validation of service, object path and interface names.
330
331         * qt/tools/dbusidl2cpp.cpp: Two new features:
332         1) Allow specifying both the header and the source file names,
333         by separating them with a colon.
334         2) Don't write an interface output if the -p switch wasn't
335         given, but the -a was.
336
337         * qt/src/*: Fix usage of Iterators and ConstIterators.
338         Fix shadowing of variables by other variables (-Wshadow).
339         Fix keyword-cleanliness in headers.
340         Fix ASCII-cast (QLatin1String, QLatin1Char).
341         Fix validation of member names.
342         Add extra checking of introspection data during XML parsing.
343         Various bug fixes.
344
345 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
346
347         * dbus/Makefile.am:
348         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
349         qt/dbus/qdbus.h now.
350
351 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
352
353         * configure.in: Make --disable-qt actually do
354           something. Patch inspired by Zack Rusin.
355
356 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
357
358         * qt/: Update to Subversion r548032.
359         This includes a big reorganisation of the files inside the
360         subdir.
361
362 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
363
364         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
365         clear:  
366         "Failed to connect to socket <host>:<port> <error>" instead of
367         "Failed to connect to socket <host>: <error>:<port>"
368
369         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
370         for a tcp transport. 
371
372 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
373
374         * qt/*: Update the QtDBus bindings up to revision 546310 in
375         Subversion.
376         This adds the dbuscpp2xml tool, that parses a C++ header and
377         outputs a D-BUS Introspection XML.
378
379 2006-05-21  Havoc Pennington  <hp@redhat.com>
380
381         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
382         is not NULL when it shouldn't be. Also a couple of possible fixes
383         for #4637 though I don't understand why the bug happens, to be
384         honest... also the object constructor has an assert name != NULL
385         and the name is only currently NULL for peer-to-peer proxies that 
386         I don't think anyone uses? So it should be asserting.
387         Anyway, for now at least see if we get an earlier assertion failure.
388
389         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
390         apparently broken code to be sure the tests fail and someone 
391         will fix them...
392
393 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
394
395         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
396         and arrays when they had a single element: has_next returns
397         false, even before you read the element. So, instead, check
398         the array length.
399
400 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
401
402         * qt/qdbusmessage.cpp:
403         * qt/qdbustypehelper_p.h:
404         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
405         the list is a const-reference
406
407 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
408
409         * Adding old doc patch that never got applied
410         
411         * dbus/bus.c (dbus_bus_add_match): Add documentation
412
413         * doc/dbus-specification.xml: Add documentation for the match rules
414           and the AddMatch and RemoveMatch methods
415
416 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
417
418         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
419         call (r535506)
420
421         * qt/dbusidl2cpp.cpp:
422         * qt/qdbusabstractadaptor.cpp:
423         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
424         sibling of the QDBusAbstractAdaptor objects instead of the
425         parent. (r535848)
426
427         * qt/dbusidl2cpp.cpp:
428         * qt/qdbusabstractinterface.cpp:
429         * qt/qdbusabstractinterface.h:
430         * qt/qdbusabstractinterface_p.h:
431         * qt/qdbusinterface.cpp: Make properties in interfaces
432         actually work. The code that was generated would not compile,
433         due to moc calls to functions that did not exist. They now
434         shall. (r536571)
435
436 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
437
438         * Makefile.am:
439         * configure.in:
440         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
441         Thanks to Brad Hards for providing the patch
442
443 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
444
445         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
446         call. (r535506)
447
448 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
449
450         * qt/examples/dbus.cpp: Enhance error messages and use
451         QDBusInterfacePtr.
452
453 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
454
455         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
456         and disable the copy operators. (r533772, r534746)
457
458         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
459
460         * qt/qdbusabstractinterface.cpp:
461         * qt/qdbusabstractinterface.h: Change the default call mode to
462         not use the event loop. Add convenience call() methods that
463         take a CallMode parameter. (r534042)
464
465         * qt/qdbusconnection.h: Change the default call mode to not
466         use the event loop. (r534042)
467
468         * qt/qdbusinterface.cpp:
469         * qt/qdbusinterface.h: Add a method to tell us if the
470         interface is valid (since we don't return a null pointer
471         anymore) (r534099)
472
473         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
474         (r534101)
475
476         * qt/qdbusinternalfilters.cpp: Decouple the introspection
477         function in two so taht we get the chance to introspect
478         without having a QDBusMessage (r534102)
479
480         * qt/qdbusbus.h:
481         * qt/qdbusconnection.cpp:
482         * qt/qdbusconnection_p.h:
483         * qt/qdbusintegrator.cpp: Keep a list of our own names to
484         avoid a round-trip to the server when attempting to introspect
485         one of our own objects. Also make sure the filter functions
486         match the empty interface as well. (r534108)
487         Don't keep the connection names. Instead, trust the unique
488         connection name (r534111)
489         Remove event loop usage (r534112)
490
491 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
492
493         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
494         Brad Hards.
495
496 2006-04-28  Robert McQueen  <robot101@debian.org>
497
498         * glib/dbus-gproxy.c: Fix properties so that they can be given in
499         any order, making it easier for people who inherit from this
500         object.
501
502 2006-04-28  Robert McQueen  <robot101@debian.org>
503
504         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
505         of memory from within pointer arrays and lists. Fixes bug #6300.
506
507 2006-04-28  Robert McQueen  <robot101@debian.org>
508
509         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
510         generating struct signatures. Fixes bug #6083.
511
512 2006-04-28  Robert McQueen  <robot101@debian.org>
513
514         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
515         to qdbusconnection_p.moc.
516
517 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
518
519         * README, INSTALL: Doc fixes
520         Patch from Brad Hards <bradh at frogmouth.net>
521
522 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
523
524         * qt/examples/dbus.cpp: Use the new merged-interface mode for
525         the dynamic meta object. No need to guess which interface to
526         call.
527
528 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
529
530         * qt/qdbusconnection_p.h:
531         * qt/qdbusmetaobject.cpp:
532         * qt/qdbusmetaobject_p.h:
533         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
534         for the dynamic meta object. No need to guess which
535         interface to call.
536         * qt/qdbusabstractinterface_p.h:
537         * qt/qdbusconnection.cpp:
538         * qt/qdbusintegrator.cpp:
539         * qt/qdbusinterface.cpp:
540         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
541         Add a QDBusRef that looks and behaves like DCOPRef.
542
543 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
544
545         * dbus/dbus-connection.c: Interfaces are optional in method
546         calls, so don't give up if the interface parameter is NULL.
547         Patch reviewed by Havoc Pennington.
548
549 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
550
551         * qt/qdbusreply.h: Add default constructor and operator=
552           (r532625)
553         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
554           in public headers (r532952)
555         * qt/qdbusabstractinterface.cpp:
556         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
557           make it the default (r532951)
558
559 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
560
561         * dbus/dbus-connection.c: Fix asserts
562         Patch from Tim Moloney <t.moloney at verizon.net>
563
564 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
565
566         * mono/Connection.cs, mono/Message.cs: Check Target type
567         Patch from Aaron Bockover (abockover at novell.com)
568
569 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
570
571         * INSTALL: fine-tune the requirements for the Qt4 binding.
572
573 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
574
575         * tools/dbus-print-message.c: Added support for printing of all 
576           remaining data types. Fixed logic for indentation of compound
577           data types.
578         
579 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
580
581         * INSTALL: fill out content of file providing DBus specific
582           build installations, followed by generic Auto* INSTALL file
583           content
584         
585 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
586
587         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
588           Patch by Stefan Eilers. (r529537)
589
590 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
591
592         * qt/qdbusinternalfilters.cpp: Don't show the parent's
593           contents (r528208)
594
595 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
596
597         * qt/Makefile.am: fix the dependency for
598           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
599           not in qdbusconnection.cpp.
600           Thanks to Jakub Stachowski <stachowski@hypair.net> for
601           spotting this.
602
603 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
604
605         * qt/examples/listnames.cpp:
606         * qt/examples/Makefile.am: Three ways to list the names on the
607           bus.
608
609 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
610
611         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
612           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
613
614 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
615
616         Merge from Subversion:
617         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
618           something that exists (r526315)
619         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
620           slots/signals (r526316)
621         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
622           also return an unknown-method error if the parameters don't
623           match for org.freedesktop.DBus.Properties. (r526842)
624         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
625         * qt/qdbusintegrator.cpp: Restore the proper order of
626           delivery: don't make method returns be delivered on priority
627           (r528150)
628
629 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
630
631         * configure.in qt/Makefile.am: add qt/examples
632         * qt/examples: Add QtDBus example programs:
633           - hello: Hello, World
634           - ping: Simple method-calling program
635           - pong: Simple object-exporting program (not using adaptors)
636           - complexping: Interactive method-calling program 
637                 (also gets and sets properties).
638           - complexpong: Sample program exporting methods, signals and
639                 properties, using adaptors.
640           - dbus: Simple implementation of a generic method-calling
641                 program, similar to 'dbus-send', but with semantics
642                 similar to 'dcop'.
643           - chat: Simplistic chat program, implemented using signals
644                 and the system bus. Looks like IRC.
645
646 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
647
648         * configure.in: Detect QtGui (necessary for one of the
649           example programs). Note: this increases the minimum required
650           version of Qt to 4.1.3.
651
652 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
653
654         * test/qt/*: Sync with KDE Subversion revision 523647.
655         Update the testcases to the new API. Remove testcases for
656         classes that are no longer public or have been removed.
657
658 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
659
660         * qt/*: 
661         * dbus/qdbus.h: Sync with KDE Subversion revision
662         523647. Hopefully, this will be the last of the
663         source-incompatible changes. Documentation has been improved;
664         support for QList<basic-types> has been added; QDBusObject is
665         gone; QDBus(Abstract)Interface is now a QObject with
666         auto-generated meta-object; QDBusIntrospection is marked
667         private, since QMetaObject can be used now; lots of bugfixes.
668
669 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
670
671         Patch from Milosz Derezynski <internalerror at gmail.com>
672         
673         * configure.in:
674         Output the service directory in the configure summary
675
676         * dbus-1.pc.in:
677         Add session_bus_services_dir
678
679 2006-03-10  Ross Burton  <ross@openedhand.com>
680
681         * tools/dbus-print-message.c:
682         Add support for object paths and signatures.
683
684 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
685
686         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
687         config reload.
688         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
689         information caches
690         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
691         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
692         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
693         * dbus/dbus-userdb.h: Add function to flush all user/group information
694         caches.
695
696 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
697
698         * qt/dbusidl2cpp.cpp:
699         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
700         for dcopidl2cpp, found in the KDE installations (or the more
701         modern kalyptus): generate Qt4 C++ code for the input XML
702         introspection. Currently no IDL parsing.
703
704 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
705
706         * test/qt/*: Update the self-tests.
707
708 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
709
710         * qt/*: 
711         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
712         represents the first feature-complete version of the Qt4
713         bindings since I took ove maintainership.
714
715 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
716
717         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
718         dir. This is C++, so we can't use the DBus ones.
719
720 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
721
722         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
723         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
724
725 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
726
727         * dbus/dbus-connection.c: 
728         (_dbus_connection_block_pending_call):
729         Check to see if our data has already been read off the connection
730         by another blocking pending call before we block in poll.
731         (check_for_reply_and_update_dispatch_unlocked):
732         Code taken from _dbus_connection_block_pending_call - checks for
733         an already read reply and updates the dispatch if there is one.
734
735         * test/name-test/test-pending-call-dispatch.c:
736         New test for making sure we don't get stuck polling a 
737         dbus connection which has no data on the socket when
738         blocking out of order on two or more pending calls.
739
740 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
741
742         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
743         make/automake don't detect that we're talking about the same
744         .lo file if I specify the full path to the source files.
745
746 2006-02-26  Havoc Pennington  <hp@redhat.com>
747
748         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
749
750         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
751         session bus variable is unset, suggest "man dbus-launch" and "man
752         dbus-daemon" to figure out how to fix the problem
753
754 2006-02-25  Havoc Pennington  <hp@redhat.com>
755
756         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
757         should make this thing use the new glib options parser
758
759 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
760
761         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
762         .lo files taking moc sources.
763
764 2006-02-25  Havoc Pennington  <hp@redhat.com>
765
766         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
767         and install it as a public header
768
769 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
770
771         * Released 0.61
772
773 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
774         
775         * proxies.py: Fix the callchain
776
777 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
778         
779         * patch from Sjoerd Simons <sjoerd at debian.org>:      
780
781         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
782         dbus/dbus-sysdeps.c
783
784         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
785         call _dbus_group_info_free_allocated which causes infinite loop,
786         correctly call _dbus_group_info_free
787
788 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
789
790         * qt/qdbusinterface_p.h:
791         * qt/qdbusinterface.cpp: Use the standard
792         org.freedesktop.DBus.Method.NoReply annotation for the "async"
793         calls instead of creating one for us.
794
795         * qt/qdbusconnection_p.h:
796         * qt/qdbusintegrator.cpp: Remove debugging code.
797
798         * qt/qdbusintegrator.cpp:
799         * qt/qdbusmessage.cpp:
800         * qt/qdbusmessage_p.h:
801         * qt/qdbusmessage.h: Change the behaviour of automatic
802         reply-sending: now a reply is always sent, unless the caller
803         didn't request one or if the user slot has already sent one.
804
805 2006-02-16  Robert McQueen  <robot101@debian.org>
806
807         * configure.in: Patch from Debian packages by Sjoerd Simons
808         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
809         arguments so it's possible to build both bindings in the
810         same tree.
811
812         * qt/Makefile.am: Fix truncated value so that make dist works.
813
814 2006-02-16  Robert McQueen  <robot101@debian.org>
815
816         * acinclude.m4, configure.in: Patch from Brad Hards
817         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
818         improving quoting, re-ordering a few checks, and a few other
819         aesthetic tidy-ups.
820
821 2006-02-16  Robert McQueen  <robot101@debian.org>
822
823         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
824         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
825         assertion that the next element to read from the iter is fixed in
826         size. This is not the case when you are at the end of the iter,
827         because the next element type is INVALID.
828
829         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
830         a bogus assert which means that you may not initialise a 0-length
831         string unless you provide a non-NULL pointer. This prevented
832         you from marshalling messages containing zero-length arrays in
833         some cases.
834
835         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
836         from Rob to correct bogus asserts when trying to demarshal an
837         array and get_fixed_array got you 0 elements. Append nothing to
838         the GArray in this case.
839
840         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
841         an empty array via the glib bindings. Without all of the above
842         patches, this new test fails.
843
844 2006-02-16  Robert McQueen  <robot101@debian.org>
845
846         * glib/dbus-gmain.c: Make the previous commit compile.
847
848         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
849         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
850         specify sender_keyword="foo", path_keyword="bar" when adding
851         a signal listener, so that you can bind to signals generically
852         but still do something useful in your callback.
853
854         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
855         chars so that they're not cast to chars and made negative. Thanks
856         to Jakub Stachowski for reporting this and testing the fix.
857
858 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
859
860         * dbus/dbus-glib.h:
861         * glib/dbus-gmain.h:
862         (dbus_g_connection_open): new method for openning
863         a connection to an arbitrary address in the glib bindings
864
865         * ChangeLog: checkin last entry which doesn't seem to be commited
866
867 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
868
869         * tools/dbus-launch.c: Fixed sh syntax output
870
871 2006-02-13  Robert McQueen  <robot101@debian.org>
872
873         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
874         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
875         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
876         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
877         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
878         missing piece of the glib bindings jigsaw puzzle. This modifies
879         the existing specialised types to have N type parameters (rather
880         than the current 1 or 2 for arrays and dictionaries respectively).
881         You can then use this to get a glib type to represent any arbitrary
882         D-Bus struct type using dbus_g_type_get_struct. The only
883         implementation of these types is with GValueArrays as before,
884         but it's now possible to store these in arrays, emit them in
885         signals, etc.
886
887 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
888
889         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
890         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
891         <thiago.macieira at trolltech.com>
892
893 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
894
895         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
896         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
897
898 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
899
900         * bus/connection.c (bus_connections_expect_reply): Make
901         pending reply limit not common to all connections (Bug #5416)
902         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
903
904 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
905
906         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
907
908 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
909
910         * gcj/Makefile.am: point to correct jar command (Bug #4529)
911         patch from Doug Goldstein <cardoe at gentoo.org>
912
913 2006-02-09  Joe Shaw  <joeshaw@novell.com>
914
915         * mono/Arguments.cs: Fix a magic number in the mono bindings
916         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
917
918 2006-01-27  Robert McQueen  <robot101@debian.org>
919
920         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
921         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
922         when generating the client-side methods, instead of overloading
923         CSymbol which broke everything horribly. My apologies.
924
925 2006-01-27  Robert McQueen  <robot101@debian.org>
926
927         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
928         by me and Rob Taylor to add a simple_free function to D-Bus map
929         and collection types, which allows those types which can be freed
930         with a GDestroyNotify (such as GHashTables and GArrays, but not
931         GPtrArrays) to be stored as the values in hashtables.
932
933         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
934         Patch by Rob Taylor to add nested dicts to the glib tests to check
935         the above code works, and appears not to leak when called repeatedly.
936
937 2006-01-27  Robert McQueen  <robot101@debian.org>
938
939         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
940         to free a D-Bus allocated string with dbus_free () instead of
941         g_free ().
942
943 2006-01-27  Iain Holmes  <iain@openedhand.com>
944
945         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
946         method from being called multiple times.
947
948 2006-01-19  Robert McQueen  <robot101@debian.org>
949
950         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
951         <rob.taylor@collabora.co.uk> to add support for generating bindings
952         to arrays that are represented as GPtrArrays rather than GArrays (ie
953         size-variable things, such as strings, objects, structs, etc).
954
955 2006-01-05  Robert McQueen  <robot101@debian.org>
956
957         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
958         <ricardo.kekki@movial.fi> to make it possible to inherit from
959         DBusGProxy, by splitting the DBusGProxy struct into a public part and
960         a private part, and moving the setting of the DBusGProxyManager into a
961         connection property, allowing proper GObject construction.
962
963 2006-01-05  Robert McQueen  <robot101@debian.org>
964
965         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
966         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
967         annotations when generating glib client bindings.
968
969 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
970
971         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
972
973         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
974
975 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
976
977         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
978
979 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
980
981         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
982
983 2005-12-19  Ross Burton  <ross@openedhand.com>
984
985         * doc/dbus-tutorial.xml:
986         Document the Glib client-side bindings, and list all possible annotations.
987
988 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
989
990         * dbus/bus.c (dbus_bus_release_name): Add documentation
991
992 2005-12-06  Robert McQueen  <robot101@debian.org>
993
994         * python/service.py: s/sucessful/successful/ so we're allocating to
995         and reading from the same variable. Oops.
996
997 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
998
999         * Released 0.60
1000
1001 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * test/qt/Makefile.am: build from srcdir
1004
1005         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1006         Note - this code is wrong and needs to be fixed by the Qt binding
1007         developers.  The flags should be treated as bitfields and not enums.
1008
1009         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1010
1011 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1012
1013         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1014           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1015           in production code
1016
1017 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1018
1019         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1020         method for getting messages off the bus in the absence of a
1021         mainloop.  This method is much like 
1022         dbus_connection_read_write_dispatch except it does not dispatch
1023         the messages to a registered filter function.  Instead it
1024         allows a developer to process messages by directly popping
1025         them off the bus.
1026
1027 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1028
1029         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1030         the parser to continue instead of returning error
1031         (bus_desktop_file_load): Do not free parser data when
1032         parse_section_start or parse_key_value fails because it was 
1033         already freed by parser_free (patch from Carlos Garcia Campos  
1034         <carlosgc at gnome.org>)
1035
1036 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1037
1038         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1039         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1040         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1041         test/test-segfault.c, test/test-utils.c,
1042         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1043         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1044         Various cleanup of dead code and compiler warnings (patch from
1045         Kjartan Maraas <kmaraas at gnome.org>) 
1046
1047 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1048
1049         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1050         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1051
1052 2005-11-27  Robert McQueen  <robot101@debian.org>
1053
1054         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1055         part of the preceding one. Oops. Merge patch by Johan Hedberg
1056         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1057         on big-endian platforms.
1058
1059         * test/python/test-client.py: Add some 16-bit integers to the test
1060         values.
1061
1062 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1063
1064         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1065         method return message for property getters
1066
1067 2005-11-27  Robert McQueen  <robot101@debian.org>
1068
1069         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1070         with type v of an instance of dbus.Variant(foo, type='x') caused
1071         it to be boxed twice before sending over the bus.
1072
1073         * python/dbus_bindings.pyx, python/service.py,
1074         test/python/test-client.py: Update the constants for the new
1075         request_name flags, and update comments/test cases now that queueing
1076         is the default action.
1077
1078 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1079
1080         * configure.in:
1081         - Change version to 0.60 for impending release
1082         - upped the sonames because of ABI and API breakage
1083
1084 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1085
1086         * configure.in: Add test/name-test/Makefile to the generated
1087         Makefile list
1088
1089         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1090         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1091         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1092         not to queue an ower if it can't be the primary owner
1093
1094         * bus/bus.h: Add new internal BusOwner struct
1095
1096         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1097         to bus_registry_ensure and don't set the prohibit_replacement flag
1098         since they are now set per BusOwner and not per name.
1099         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1100         that returns the list of connections in a name's connection queue
1101         
1102         * bus/services.c (struct BusService): remove prohibit_replacement field
1103         (struct BusOwner): new struct for keeping track of queued connections
1104         and their associated flags for the queue
1105         (struct BusRegistry): add a BusOwner memory pool
1106         (bus_registry_new): initialize the BusOwner memory pool
1107         (bus_registry_unref): free the BusOwner memory pool
1108         (_bus_service_find_owner_link): new internal method for
1109         searching the queue for a specific connection
1110         (bus_owner_set_flags): new method for adding setting the flags on a
1111         bus owner
1112         (bus_owner_new): new method that creates a BusOwner object from the
1113         pool and sets its flags
1114         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1115         (bus_registry_ensure): Add the flags parameter
1116         (bus_registry_acquire_service): Switch from using raw connections to
1117         using the BusOwner struct
1118         Add new state machine for dealing with the new set of flags
1119         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1120         cancel_ownership, free_ownership_cancel_data, 
1121         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1122         restore_ownership, free_ownership_restore_data, 
1123         add_restore_ownership_to_transaction): Switch to using BusOwner 
1124         instead of raw connections
1125         (bus_service_add_owner): Add flags parameter
1126         Switch to using BusOwner instead of raw connections
1127         Add state machine for dealing with the new set of flags
1128         (bus_service_swap_owner): Swaps the first and second owners in the
1129         queue.  Used to make sure proper signals are sent when a service looses 
1130         or gains primary ownership.  We never insert an owner at the top of the
1131         queue.  Instead we insert it in the second position and then swap.
1132         (bus_service_remove_owner): Remove the owner from the queue sending
1133         out the NameLost and NameOwnerChanged signals if the we were the 
1134         primary owner
1135         (bus_service_get_primary_owners_connection): New method that extracts
1136         the connection from the primary owner
1137         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1138         connection
1139         (bus_service_get_allow_replacement): Changed from the old 
1140         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1141         primary owner and returns if it can be replaced or not
1142         (bus_service_set_prohibit_replacement): removed
1143         (bus_service_has_owner): returns TRUE if and owner with
1144         the specified connection exists in the queue
1145         
1146         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1147         method that only compiles if tests are enabled.  Allows us to get the 
1148         unique name of a connection so we can check it against the queue when
1149         doing regression tests
1150
1151         * bus/activation.c (bus_activation_send_pending_auto_activate),
1152         bus/dispatch.c (bus_dispatch),  
1153         bus/driver.c (bus_driver_handle_get_service_owner, 
1154         bus_driver_handle_get_connection_unix_user, 
1155         bus_driver_handle_get_connection_unix_process_id,
1156         bus_driver_handle_get_connection_selinux_security_context),
1157         bus/signals.c (connection_is_primary_owner): 
1158         use bus_service_get_primary_owners_connection instead of
1159         bus_service_get_primary_owner
1160
1161         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1162         _dbus_listen_unix_socket): Calculate the length of the socket
1163         path and use that instead of using a fixed length which was
1164         causing socket names to contain many trailing Nul bytes.
1165
1166         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1167         (dbus_g_method_get_sender): New method for extracting the sender 
1168         from a DBusGMethodInvocation
1169         (dbus_g_method_return_get_reply): changed name to 
1170         dbus_g_method_get_reply
1171         (dbus_g_method_return_send_reply): changed name to
1172         dbus_g_method_send reply
1173
1174         * doc/dbus-specification.xml: New docs that describe how the new
1175         queueing system works and talks about the changes to the how
1176         we specify socket names
1177
1178         * glib/examples/example-service.c, 
1179         glib/examples/example-signal-emitter.c,
1180         glib/examples/statemachine/statemachine-server.c:
1181         Changed the RequestName flags to the new system
1182
1183         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1184         regression test suite for testing various states of the new
1185         queueing system
1186         
1187 2005-11-15  Robert McQueen  <robot101@debian.org>
1188
1189         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1190         Taylor to add two methods, dbus_g_method_return_get_reply and
1191         dbus_g_method_return_send_reply, to allow you to get the reply
1192         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1193         and send it. The GLib bindings can't marshal a return value of
1194         something like a(s) if the array is empty - ultimately they should be
1195         made to heed the signature of the out arguments as the Python bindings
1196         now can, but this is a workable interim solution which might have
1197         other applications.
1198
1199 2005-11-15  Robert McQueen  <robot101@debian.org>
1200
1201         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1202         method to org.freedesktop.DBus to release a bus name or give up
1203         waiting in the queue for it.
1204
1205         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1206         dbus_bus_release_name method to send the ReleaseName method calls.
1207         Add constants for the return values to dbus/dbus-shared.h.
1208
1209         * doc/dbus-specification.xml: Document the new ReleaseName method
1210         in the specification.
1211
1212         * python/dbus_bindings.pyx: Add a low-level python binding for the
1213         release name method.
1214
1215         * python/exceptions.py, python/service.py: Make freeing BusName
1216         objects release the name. Add a NameExistsException, and fix a
1217         bug with creating UnknownMethodException.
1218
1219         * test/python/test-client.py: Add tests for freeing BusName
1220         objects causing names to be released.
1221
1222 2005-11-14  Robert McQueen  <robot101@debian.org>
1223
1224         * python/service.py: Include the traceback in the error reply when we
1225         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1226
1227 2005-11-14  David Zeuthen  <davidz@redhat.com>
1228
1229         Patch from Timo Hoenig <thoenig@suse.de>.
1230
1231         * bus/bus.c: I've recently investigated why the automatic reload
1232         of configuration files does not work as expected.
1233
1234         Currently, reloading configuration files does only work when
1235         running dbus-daemon with --nodaemon.  If we are running as daemon
1236         we're hitting a dnotify bug once we fork the process.
1237
1238         We're initializing the dnotify fds before calling fork().  Once
1239         the child process forked it does still have the fds (and they
1240         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1241         getting SIGIO as changes are made to the configuration files.
1242
1243         The attached patch moves the initialization of the dnotify fds to
1244         process_config_postinit().  This is safe for all current code
1245         paths and solves the dnotify disfunction.  If we're running
1246         dbus-daemon as daemon the fds for dnotify are now being
1247         initialized after fork() for the child process.
1248
1249         * configure.in: The current configure.in check for dnotify probes
1250         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1251         match for 'xlinux', too. Additionally I have adapted the configure
1252         option's style to match with the others.
1253
1254 2005-11-14  Robert McQueen  <robot101@debian.org>
1255
1256         * python/decorators.py, python/service.py: Add a new argument to the
1257         dbus.service.method decorator called sender_keyword, which if set,
1258         specifies the name of an argument which will be provided the bus
1259         name of the method caller.
1260
1261         * test/python/test-client.py, test/python/test-service.py: Add a
1262         method and test to check the sender_keyword functionality.
1263
1264 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1265
1266         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1267         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1268         Simons <sjoerd at luon.net>)
1269
1270         * AUTHORS: Add Robert McQueen for his work on the Python
1271         Bindings and other parts of D-Bus
1272
1273 2005-11-07  Robert McQueen  <robot101@debian.org>
1274
1275         * python/decorators.py: Change emit_signal function to use the
1276         signature annotation of the signal when marhsalling the arguments from
1277         the service. Fix a bug where the code checking signature length
1278         against argument length referenced the wrong variable.
1279
1280         * python/introspect_parser.py: Avoid adding the type signature of
1281         signal arguments to any methods which occur after them in the
1282         introspection data (!) by making the parser a little more careful
1283         about its current state.
1284
1285         * python/service.py: Remove debug prints from last commit (again :D).
1286
1287         * test/python/test-client.py, test/python/test-service.py: Add test
1288         signals with signature decorators to test the strict marshalling code
1289         gives errors at the right time. Could do with checking the signals
1290         actually get emitted too, given that the test does nothing with
1291         signals at the moment...
1292
1293 2005-11-07  Robert McQueen  <robot101@debian.org>
1294
1295         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1296         instances to stop madness of creating new instances representing
1297         the same bus connection all the time, rendering any tracking of
1298         match rules and bus names quite meaningless. Caught a bug where
1299         the private argument to SessionBus() and friends was being passed
1300         in as use_default_mainloop by mistake. Still some problems with
1301         multiple dbus_binding.Connection instances representing the same
1302         low-level connection (eg when you use both SessionBus() and
1303         StarterBus() in same process), but it's a lot better now than it
1304         was.
1305
1306         * python/dbus_bindings.pyx: Add constants with the return values
1307         for bus_request_name().
1308
1309         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1310         and retrieve the same instances for the same name, so deletion can be
1311         done with refcounting. Also now throws some kind of error if you
1312         don't actually get the name you requested, unlike previously...
1313
1314         * test/python/test-client.py: Add tests for instance caching of buses
1315         and bus name objects.
1316
1317 2005-11-04  Robert McQueen  <robot101@debian.org>
1318
1319         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1320         marshalling of boolean values. Add some booleans to the values in
1321         the test client.
1322
1323         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1324         argument to the dbus.service.method decorator, which allows you to
1325         name arguments to take two callback functions for replying with
1326         return values or an exception.
1327
1328         * test/python/test-client.py, test/python/test-service.py: Add test
1329         case using asynchronous method reply functions, both return values and
1330         errors, and from within both the function itself and from a mainloop
1331         callback.
1332
1333         * python/decorators.py, python/service.py: Perform checking that the
1334         number of method/signal arguments matches the number of types in the
1335         signature at class loading time, not when you first introspect the
1336         class.
1337
1338         * python/service.py: Remove debug print left by the last commit.
1339
1340 2005-11-03  Robert McQueen  <robot101@debian.org>
1341
1342         * python/service.py: Heavy refactoring of method invocation, with
1343         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1344         in favour of a new _message_cb that uses seperate functions for
1345         looking up the method to call, marshalling the return values, and
1346         sending exceptions as errors, and is easier to follow as a
1347         consequence.  Fixes some corner cases about returning things that
1348         don't match your declared out_signature, allows exceptions to define
1349         _dbus_error_name and have it be sent over the bus as the error name,
1350         and paves the way for cool stuff like heeding the message no reply
1351         flag, asynchronous method implementations, informing the method of the
1352         sender, and including backtraces in the error messages.
1353
1354         * test/python/test-client.py: Catch and print exceptions thrown in the
1355         async callback tests, rather than passing them to the low-level
1356         bindings to be ignored in a noisy and frustrating manner.
1357
1358 2005-11-03  Robert McQueen  <robot101@debian.org>
1359
1360         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1361         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1362         tweak others to be consistent.
1363
1364         * test/python/test-client.py: Tweak output of testInheritance.
1365
1366 2005-10-29  Robert McQueen  <robot101@debian.org>
1367
1368         * python/service.py: Major changes to allow multiple inheritance
1369         from classes that define D-Bus interfaces:
1370         
1371          1. Create a new Interface class which is the parent class of
1372             Object, and make the ObjectType metaclass into InterfaceType.
1373         
1374          2. Patch written with Rob Taylor to replace use of method_vtable
1375             with code that walks the class's __MRO__ (method resolution order)
1376             to behave like Python does when invoking methods and allow
1377             overriding as you'd expect. Code is quite tricky because
1378             we have to find two methods, the one to invoke which has the
1379             right name and isn't decorated with the /wrong/ interface,
1380             and the one to pick up the signatures from which is decorated
1381             with the right interface.
1382         
1383             The same caveats apply as to normal multiple inheritance -
1384             this has undefined behaviour if you try and inherit from two
1385             classes that define a method with the same name but are
1386             decorated with different interfaces. You should decorate
1387             your overriding method with the interface you want.
1388         
1389          3. Replace grungy introspection XML generation code in the metaclass
1390             with dictionaries that cope correctly with multiple inheritance
1391             and the overriding of methods. This also uses the signature
1392             decorations to provide correct introspection data, including
1393             the debut appearance of the types of your return values. :D
1394
1395         * test/python/test-client.py, test/python/test-service.py: Add a test
1396         case to try invoking an method that overrides one inherited from a
1397         D-Bus interface class.
1398
1399 2005-10-29  Robert McQueen  <robot101@debian.org>
1400
1401         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1402         Add checking for the end of struct character when marshalling a
1403         struct in MessageIter.append_strict.
1404
1405         * python/examples/example-service.py,
1406         python/examples/gconf-proxy-service.py,
1407         python/examples/gconf-proxy-service2.py: Update to use gobject
1408         mainloop directly rather than appearing to depend on gtk.
1409
1410         * python/test/test-client.py, python/test/test-server.py: Remove
1411         obsolete and broken test scripts for old bindings. We have up to date
1412         and working tests in test/python/.
1413
1414 2005-10-29  Robert McQueen  <robot101@debian.org>
1415
1416         * python/decorators.py: Add optional arguments to the method and
1417         signal decorators to allow you to specify the signature of arguments
1418         and return values. Preserve the doc strings of signal functions in the
1419         decorated version, for pydoc and friends.
1420
1421         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1422         parse_signature_block function with an iterable dbus.Signature()
1423         type. Fix a bug in MessageIter.append_strict where you could append
1424         anything by claiming it was a string.
1425
1426         * python/service.py: Use the out_signature decoration on methods to
1427         marshal return values, meaning you no longer require dbus.Array()
1428         or dbus.Dictionary() to indicate the type when returning empty
1429         arrays or dictionaries. Fix a bug where exceptions which are defined
1430         in __main__ are not turned into error replies.
1431
1432         * test/python/test-client.py, test/python/test-service.py: Add test
1433         for correct marshalling of return values according to out_signature.
1434         Fix a bug in the async call test where the error_handler is missing a
1435         self argument.
1436
1437 2005-10-29  Robert McQueen  <robot101@debian.org>
1438
1439         * glib/Makefile.am, glib/examples/Makefile.am,
1440         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1441         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1442
1443         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1444
1445         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1446         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1447         the command line.
1448
1449 2005-10-27  Ross Burton  <ross@openedhand.com>
1450
1451         * dbus/dbus-marshal-header.c:
1452         Remove dead code.
1453
1454         * glib/dbus-gobject.c:
1455         Stop compiler warning.
1456
1457 2005-10-25  Ross Burton  <ross@openedhand.com>
1458
1459         * dbus/dbus-auth.c:
1460         * dbus/dbus-server-unix.c:
1461         * dbus/dbus-transport-unix.c:
1462         * glib/dbus-gmain.c:
1463         * glib/dbus-gobject.c:
1464         Add some const keywords.
1465
1466 2005-10-25  Ross Burton  <ross@openedhand.com>
1467
1468         * doc/dbus-specification.xml:
1469         Document the NoReply annotation.
1470
1471         * glib/dbus-binding-tool-glib.h:
1472         * glib/dbus-binding-tool-glib.c:
1473         Respect the NoReply annotation.
1474
1475 2005-10-24  Robert McQueen <robot101@debian.org>
1476
1477         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1478         derive from unicode instead of str, and encode/decode UTF-8 when
1479         marshalling/unmarshalling bus messages
1480
1481         * python/introspect_parser.py: encode introspection data as UTF-8
1482         before passing the buffer into libxml2
1483
1484         * test/python/test-client.py: add unicode test strings
1485
1486         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1487         ignore generated python test files
1488
1489 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1490
1491         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1492         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1493         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1494
1495         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1496         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1497         when constructing struct signatures
1498
1499         * python/_dbus.py (Bus): handle private connections using the
1500         private keyword in the constructor. defaults to private=False
1501         (Bus::close): new method to close a connection to the bus
1502
1503         * python/dbus_bindings.pyx (Connection::close): renamed method
1504         was previously called disconnect
1505         (bus_get): now supports getting a private connection
1506
1507         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1508         keyword is set to True.  if it is, execute the method without waiting
1509         for a reply
1510         (ProxyObject::_introspect_execute_queue): new method for executing
1511         all the pending methods that were waiting for the introspect to
1512         finish.  this is called when introspect either succeeds or fails
1513         (ProxyObject::_introspect_error_handler): call queued methods
1514
1515 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1516
1517         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1518         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1519
1520         * python/service.py (Object::_message_cb): handle exceptions correctly
1521         by sending them over the wire to the calling app.  This makes sure
1522         the client returns immediately instead of waiting the 15 seconds to
1523         timeout.
1524
1525         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1526         Add a test to benchmark how long it takes to introspect a service and 
1527         call a method which returns a large element (pretty fast)
1528
1529         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1530         method which pushes a lot of data
1531
1532 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1533
1534         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1535         reclaim memory outside of the loop and use del istead of just setting
1536         the key to None
1537
1538 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1539
1540         * python/service.py (ObjectType::_reflect_on_signal): Always close
1541         signal tag even when there are no arguments
1542
1543 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1544
1545         * configure.in: Set mono, mono-docs and Qt3 to default
1546         to no instead of auto when building.  These bindings do not
1547         have full time maintainers and will not be supported for the
1548         1.0 release.
1549
1550 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1551
1552         patches from Michael Krivoruchko <misha at sun.com>: 
1553         
1554         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1555         _dbus_connection_message_sent, 
1556         _dbus_connection_send_preallocated_unlocked_no_update, 
1557         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1558         is NULL when calling _dbus_verbose
1559
1560         * configure.in: check for functions getpeerucred and getpeereid
1561
1562         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1563         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1564         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1565         Patch was only tested on Solaris 10 x86 so it might be issues
1566         with other platforms (i.e. BSDs and MacOSX)
1567         
1568
1569 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1570
1571         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1572         instead of marshal basic so we can handle recursive types in a variant
1573
1574         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1575         in variants
1576
1577         * test/glib/test-service-glib.c, test-service-glib.xml
1578         (my_object_echo_variant [EchoVariant], 
1579         my_object_process_variant_of_array_of_ints123
1580         [ProcessVariantOfArrayOfInts123]): 
1581         Add two test methods
1582
1583         * python/introspect_parser.py: New module for parsing introspect
1584         data.
1585
1586         * python/dbus_bindings.pyx:
1587         (various places): when throwing errors fix to use errormsg instead 
1588         of message local variable because Pyrex can get confused with other 
1589         message variables (initial patch by Robert McQueen 
1590         <robert.mcqueen at collabora.co.uk>)
1591         (MessageIter::parse_signature_block): new method for getting the next
1592         block in a signiture.
1593         (MessageIter::append_strict): new method for appending values strictly
1594         using the passed in signature instead of guessing at the type
1595         (MessageItter:: append_dict, append_struct, append_array): use 
1596         signatures to marshal children if the signature is available
1597         
1598         * python/exceptions.py (IntrospectionParserException): new exception
1599
1600         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1601         introspected signatures if available, else we fall back to the
1602         old way of doing things.
1603         (ProxyObject::_introspect_reply_handler ): parse introspection data
1604         
1605         * python/service.py (ObjectType::_reflect_on_method): Properly
1606         terminate <method> if there are no args in the reflection data
1607
1608         * test/python/test-client.py: add tests for talking with the GLib
1609         test server.  This gives us better coverage for introspection since
1610         python to python will always generate arguments as variants.  It also
1611         allows us to test the robustness of the GLib bindings and interlanguage
1612         communications.
1613
1614         
1615 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1616
1617         * bus/driver.c (bus_driver_handle_introspect): Add signals
1618         to the introspect data. (patch from Daniel P. Berrange 
1619         <dan at berrange.com>)
1620
1621         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1622         
1623         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1624         _dbus_connection_run_builtin_filters): Changed these to
1625         be unlock_no_update functions and call 
1626         _dbus_connection_send_unlocked_no_update instead of
1627         dbus_connection_send to avoid locking errors.
1628         
1629         * doc/TODO: Removed the make Ping test TODO
1630         
1631 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1632
1633         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1634         We now copy the message from a DBusError and then free 
1635         the error object befor throwing the error
1636
1637         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1638         DBusBindingOutputMode enum which was causing a warning.
1639         #include <time.h> so using time_t is explicitly defined
1640
1641 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1642
1643         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1644         - dbus/dbus-bus.c
1645         (internal_bus_get): new method that take over the heavy lifting
1646         of dbus_bus_get and adds the ability to get a private connection
1647         to the bus
1648         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1649         interface as in previous versions
1650         (dbus_bus_get_private): new method that is a wrapper to 
1651         internal_bus_get to get a private connection to the bus
1652
1653         - dbus/dbus-bus.h
1654         (dbus_bus_get_private): add as a public libdbus interface
1655
1656         - dbus-1.pc.in: output system_bus_default_address and 
1657         sysconfdir variables so apps can use them when compiling
1658
1659 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1660         * dbus/qt: New Qt bindings
1661
1662 2005-09-12  Waldo Bastian  <bastian@kde.org>
1663
1664         * dbus/dbus-marshal-validate.c,
1665         doc/dbus-specification.xml, test/Makefile.am,
1666         test/test-names.c: allow hyphens in bus names.
1667
1668 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1669
1670         * test/data/auth/fallback.auth-script: we don't
1671         retry the EXTERNAL method when we know its going
1672         to fail anymore.
1673
1674 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1675
1676         * dbus/dbus-connection-internal.h: rename
1677         (add|remove|toggle)_(watch|timeout) to unlocked()
1678         
1679         * dbus/dbus-connection.c: ditto.
1680         
1681         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1682         Update some callers for the renaming.
1683
1684 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1685
1686         * dbus/dbus-auth.c: (record_mechanisms): don't
1687         retry the first auth mechanism because we know
1688         we're just going to get rejected again.
1689         
1690         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1691         Fix thinko ... and what a nasty little bugger to
1692         track down you were ...
1693
1694         * dbus/dbus-connection.c:
1695         (_dbus_connection_add_watch),
1696         (_dbus_connection_remove_watch): add note about
1697         these needing the connection to be locked.
1698         (_dbus_connection_get_dispatch_status_unlocked):
1699         set status to DATA_REMAINS when we queue the
1700         disconnected message.
1701         
1702         * bus/dispatch.c:
1703         (bus_dispatch): fix warning.
1704         (check_existent_service_no_auto_start):
1705         Expect ChildSignaled error too.
1706         (check_existent_hello_from_self): fix another
1707         couple of warnings.
1708         
1709 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1710
1711         Patches from James Willcox <snorp@snorp.net>
1712
1713         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1714
1715         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1716         support array "out" parameters.
1717
1718         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1719         for 16-bit int support.
1720
1721 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1722
1723         * Released 0.50
1724
1725         * Patch from Steve Grubb:
1726         - bus/activation.c (bus_activation_service_reload_test): clean up
1727         some indentation
1728         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1729         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1730         buffer overflows in the test suite.  This is non critical because
1731         it can not be exploited and this code is only run when doing a 
1732         make check.
1733
1734         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1735         - configure.in: Don't check and link against kdecore, only qt headers
1736         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1737         - gcj/org/freedesktop/dbus/Makefile.am:
1738         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1739         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1740         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1741         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1742         - tools/Makefile.am: Add platform extentions to binaries 
1743         (i.e. .exe on windows)
1744
1745         * configure.in: 
1746         - Make it so if no suitable version of python is found we only 
1747         disable building python instead of exiting the configure script
1748         - Require version 2.4 of glib for glib bindings
1749         - Up version to 0.50
1750
1751         * python/__init__.py: Sync version with libdbus to (0,50,0)
1752         
1753 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1754
1755         * dbus/dbus-object-tree.c (find_subtree_recurse):
1756         a couple of optimizations (bug #710):
1757         - do a binary search in the tree
1758         - insert a new child at the right place directly, no need for
1759           qsort anymore
1760         - do the "double alloc" thing when allocating children
1761
1762 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1763
1764         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1765
1766         * python/dbus_bindings.pyx: Memory management foo
1767         (global): remove hacky _user_data_references global list
1768         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1769         tuples. Unref user_data
1770         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1771         (Connection::__del__): Remove and replace with __dealloc__ method
1772         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1773         to keep tuple from being deallocated instead of the global var hack
1774         (Connection::register_object_path): Stuff user_data into a tuple.
1775         Use Py_INCREF to keep tuple from being deallocated instead of the 
1776         global var hack
1777         (Connection::register_fallback): Stuff user_data into a tuple.
1778         Use Py_INCREF to keep tuple from being deallocated instead of the 
1779         global var hack
1780         (GIL_safe_pending_call_notification): Don't unref the message
1781         because it gets unreffed when going out of scope.  Py_XDECREF
1782         the user_data
1783         (PendingCall::__del__): Remove and replace with __dealloc__ method
1784         (PendingCall::set_notify): ref the pending call because we will
1785         need it to stick around for when the notify callback gets called
1786         (Message::__del__): Remove and replace with __dealloc__ method
1787
1788         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1789         gthreads_init to match up with the dbus call
1790
1791         * python/glib.py (init_threads): Changed to threads_init to match
1792         up with gobject.threads_init().  init_threads is kept for backwards
1793         compat but will most likely be deprecated in the future
1794
1795         * test/python/test-client.py: 
1796         - revamp to use Python's unittest functionality
1797         - add async call tests
1798         - setup threads in glib and dbus so we make sure locks are working
1799         
1800 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1801
1802         * python/dbus_bindings.pyx 
1803         (_pending_call_notification, cunregister_function_handler, 
1804         cmessage_function_handler): All callback functions have been rearranged 
1805         to workaround a bug in Pyrex when working with the GIL which is Python's 
1806         global lock when dealing with threads.  They have been split into
1807         a wrapper function (which assumes the name of the old function) and
1808         a _GIL_safe_<function name> function which contains the functionality
1809         of the old function.  This ensures that Pyrex does not write code
1810         the lock is released.
1811         
1812
1813 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1814
1815         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1816         GIL global lock when calling back into Python
1817
1818 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1819
1820         * Release 0.36.2
1821
1822         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1823
1824         * bus/policy.c (bus_policy_allow_user): change default "user is
1825         allowed" to be "user has same uid as the bus itself"; any
1826         allow/deny rules will override.
1827
1828         * bus/session.conf.in: don't allow all users, since now by default
1829         the user that ran the bus can connect.
1830
1831 2005-08-26  Colin Walters  <walters@verbum.org>
1832
1833         * tools/dbus-print-message.c (print_message): Flush stdout
1834         after printing a message, so that redirecting to a file, then
1835         hitting Ctrl-C works.
1836
1837 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1838
1839         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1840         (EmptyMessage): new class that subclasses Message.  This is a workaround
1841         to a Pyrex bug that fails to call __del__ when the Message object goes out
1842         of scope.  For some reason subclassing Message fixes this bug
1843         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1844         - s/Message(_create=0)/EmptyMessage everywhere else
1845         
1846         * test/python/test-{server|client}.py: add the python/.libs directory
1847         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1848         get picked up from the system
1849
1850 2005-08-25  Colin Walters  <walters@verbum.org>
1851
1852         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1853         to Ryan Lortie for the suggestion.
1854
1855 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1856
1857         * test/python: Add python regression test
1858
1859         * configure.in: Add test/python/Makefile
1860
1861         * test/Makefile.am: Add the python directory to SUBDIRS
1862
1863 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1864
1865         * Release 0.36.1
1866
1867         * python/_dbus.py: 
1868         (Interface::connect_to_signal): propigate keywords for match on args
1869         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1870
1871         * python/proxies.py (ProxyObject::connect_to_signal):
1872         propigate keywords for match on args
1873
1874         * Makefile.am: point everything to pyexecdir since python borks
1875         on multilib
1876
1877 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1878
1879         * Release 0.36
1880
1881 2005-08-23  Colin Walters  <walters@verbum.org>
1882
1883         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1884
1885 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1886
1887         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1888         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1889         of defining DBusConnection ourselves.
1890
1891 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1892
1893         * python/dbus.pth: New path file to fix up problems when installing
1894         c libraries to lib64 and python files to lib.
1895
1896         * python/Makefile.am: install dbus.pth in the correct spot
1897
1898 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1899         * ChangeLog: clean up my last entry a bit
1900
1901         * doc/introspect.xsl: New stylesheet for converting introspection data
1902         into browser renderable xhtml. Contributed by Lennart Poettering.
1903
1904         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1905         Poettering.
1906
1907         * doc/dbus-tutorial.xml: 
1908         - Add Colin Walter to the Authors section for authoring the GLib
1909         section
1910         - Add descriptions of the new signature and type functionality
1911         in the Python complex type mapping section
1912         - Add a sidenote on the new args matching functionality in 
1913         the Python bindings
1914         - Fixed up some of the examples to use the gobject.MainLoop
1915         instead of gtk.main
1916         
1917         * python/_dbus.py:
1918         (Bus::_create_args_dict): New. Converts a hash of arg matches
1919         to a more useable format
1920         (Bus::add_signal_receiver): add a **keywords parameter for catching
1921         arg match parameters
1922         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1923         arg match parameters
1924         
1925         * python/matchrules.py:
1926         (MatchTree::exec_matches): Check for arg matches
1927         (SignalMatchRule::add_args_match): New method
1928         (SignalMatchRule::execute): Added args_list parameter as an optimization
1929         so we don't have to marshal the args more than once
1930         (SignalMatchRule::match_args_from_list): New method that checks to see
1931         if the rule's arg matches match an argument list.  Only arguments
1932         set in the rule are checked.
1933         (SignalMatchRule::match_args_from_rule): New method that checks to see
1934         if the rule's arg matches match another rule's.  All args have to match
1935         in order for this method to return true.  If either rule has more args
1936         then it is not a match.
1937         (SignalMatchRule::is_match): Add args match
1938         (SignalMatchRule::repr): Add args to the final output if they exist
1939
1940 2005-08-17  Ross Burton  <ross@burtonini.com>
1941
1942         * glib/dbus-gproxy.c:
1943         (dbus_g_proxy_call_no_reply): unref the message once sent.
1944         (dbus_g_proxy_call): protect against NULL proxy.
1945
1946 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1947
1948         * python/__init__.py: Version updated (0, 43, 0)
1949         
1950         * python/dbus_bindings.pyx: 
1951         - Fixed type objects to have self passed into __init__
1952         - Added the Variant type
1953         - Add the ability to specify types or signatures for Array, Variant 
1954         and Dictionary
1955         (Connection::send_with_reply_handlers): return a PendingCall object
1956         (_pending_call_notification): handle the case when an error is returned 
1957         without an error message in the body
1958         (MessageIter::get_boolean): return True or False instead of an integer
1959         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1960         and add checks for objects with embeded signatures or types (Array, 
1961         Variant and Dictionary)
1962         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1963         (MessageIter::append_dict): handle embeded types or signatures
1964         (MessageIter::append_array): handle embeded types or signatures
1965         (MessageIter::append_variant): new method
1966         
1967         * python/proxies.py:
1968         (DeferedMethod): New. Dummy executable object used when queuing calls 
1969         blocking on introspection data
1970         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1971         or shorter timeouts for method calls
1972         (ProxyObject): Add first pass at an introspection state machine
1973         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1974         introspection. 
1975         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1976         the usual mechanisms for sending messages.  This is to avoid a deadlock
1977         where the Intospect call would be queued waiting for the Introspect 
1978         call to finish ;-)
1979         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1980         when introspection returns with no error
1981         (ProxyObject::_introspect_error_handler): New.  This method is called 
1982         when introspection encounters an error
1983         (ProxyObject::__getattr__): Code to handle different introspection 
1984         states.  Queue async calls or block blocking calls if we are 
1985         introspecting.  Pass through as normal if we are not or are done with 
1986         introspecting.
1987         
1988         * python/service.py: Import signal and method from decorators.py
1989
1990         * python/types.py: Add Variant type
1991
1992 2005-08-16  Colin Walters  <walters@verbum.org>
1993
1994         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1995         DBusError message is NULL.
1996
1997 2005-08-09  Havoc Pennington  <hp@redhat.com>
1998
1999         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2000         malloc'd copy of the name parameter
2001
2002 2005-08-09  Havoc Pennington  <hp@redhat.com>
2003
2004         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2005         warning if the reply serial is set to 0
2006
2007 2005-08-04  Colin Walters  <walters@verbum.org>
2008
2009         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2010         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2011         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2012         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2013         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2014         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2015         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2016         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2017         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2018         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2019         
2020         Prefix name with _ to ensure they're not exported.  All callers
2021         updated.
2022
2023         * glib/dbus-gvalue.c (typecode_to_gtype)
2024         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2025         (signature_iter_to_g_type_dict)
2026         (signature_iter_to_g_type_array)
2027         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2028         (dbus_gtypes_from_arg_signature):
2029         Move to dbus-gsignature.c.
2030
2031         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2032         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2033         (dbus_binding_tool_output_glib_client): Ditto.
2034
2035         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2036         and dbus-gsignature.h
2037
2038         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2039         unused variable.
2040
2041 2005-08-03  Colin Walters  <walters@verbum.org>
2042
2043         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2044         catch any incompatible changes accidentally made.
2045
2046 2005-08-03  Havoc Pennington  <hp@redhat.com>
2047
2048         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2049         typo, from Julien Puydt
2050
2051         * bus/connection.c (bus_connection_disconnected): we were always
2052         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2053
2054 2005-08-01  Colin Walters  <walters@verbum.org>
2055
2056         Patch from Joe Markus Clarke:   
2057         
2058         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2059         use-after-free.
2060
2061 2005-08-01  Colin Walters  <walters@verbum.org>
2062         
2063         Patch from Joe Markus Clarke:   
2064         
2065         * tools/dbus-send.c (main): 
2066         
2067         Don't use C99 style initializers (bug #3933).
2068         
2069 2005-08-01  Colin Walters  <walters@verbum.org>
2070
2071         Patch from Joe Markus Clarke:   
2072
2073         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2074         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2075         * glib/dbus-gobject.c (write_interface):
2076
2077         Don't use C99 style initializers (bug #3933).
2078
2079 2005-07-31  Havoc Pennington  <hp@redhat.com>
2080
2081         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2082         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2083
2084 2005-07-30  Havoc Pennington  <hp@redhat.com>
2085
2086         * fix a bunch of Doxygen warnings and mistakes
2087
2088 2005-07-30  Havoc Pennington  <hp@redhat.com>
2089
2090         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2091         DBUS_BUILD_TESTS since it's now used in production code
2092
2093 2005-07-29  Havoc Pennington  <hp@redhat.com>
2094
2095         * test/glib/test-profile.c (write_junk): initialize the junk
2096         buffer so valgrind doesn't have a breakdown
2097
2098 2005-07-29  Havoc Pennington  <hp@redhat.com>
2099
2100         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2101         (match_rule_matches): remove unused arg
2102         (test_matching): add tests for match_rule_matches()
2103
2104         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2105         do arg0='foo' arg5='bar' in the match rules
2106         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2107
2108         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2109
2110 2005-07-29  Ross Burton  <ross@openedhand.com>
2111
2112         * dbus/dbus-connection.c:
2113         Don't create a DBusCondVar which is never used.
2114
2115 2005-07-27  Ross Burton  <ross@openedhand.com>
2116
2117         * dbus/dbus-message.c:
2118         Reduce the size of the maximum cached message to 10K.
2119
2120 2005-07-25  Ross Burton  <ross@openedhand.com>
2121
2122         * glib/dbus-gproxy.c:
2123         Remove matches when all proxies are unregistered.
2124
2125 2005-07-24  Colin Walters  <walters@verbum.org>
2126
2127         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2128         typedata; recursive arrays won't have it.
2129
2130         * test/glib/test-dbus-glib.c:
2131         * test/glib/test-service-glib.c:
2132         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2133         
2134 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2135
2136         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2137         proxies.py, service.py: Cleanup of code after running it through the
2138         pyflakes code checker mostly dealing with undefined names.  
2139         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2140
2141 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2142
2143         * NEWS: Update to 0.35.2
2144
2145 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2146
2147         * python/_dbus.py: Remove import of the dbus.services
2148         module as it no longer exists (patch from Dimitur Kirov)
2149
2150         * python/service.py (Object::__init__): Fixed typo
2151         s/name/bus_name (patch from Dimitur Kirov)
2152
2153         * python/examples/example-signal-emitter.py: import dbus.glib
2154         to get the main loop and use glib mainloop instead of gtk so
2155         X doesn't have to be running.
2156
2157         * python/examples/example-signal-recipient.py: import dbus.glib
2158         to get the main loop and use glib mainloop instead of gtk so
2159         X doesn't have to be running. Import the decorators module
2160         directly.
2161
2162         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2163         didn't pick up on but are needed to build
2164
2165         * configure.in: upped version to 0.35.2
2166
2167         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2168         added Colin Walters' SELinux API rename patch from head 
2169         s/unix sercurity context/selinux security context/
2170
2171 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2172
2173         * python/Makefile.am: dbus_binding.pxd.in should be included 
2174         in EXTRA_DIST not dbus_binding.pxd
2175         fix up $(srcdir) hopefully for the last time
2176
2177         * NEWS: Update to 0.35.1
2178
2179 2005-07-16  Colin Walters  <walters@verbum.org>
2180
2181         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2182         from bus_driver_handle_get_connection_unix_security_context.  Update for
2183         error usage.
2184         (message_handlers): Update for renames.
2185
2186         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2187         _dbus_string_init failure correctly.
2188         (bus_selinux_append_context): Convert SID to context.  Append it
2189         as a byte array.
2190         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2191         hasn't been called.
2192
2193         * bus/selinux.h: Update prototype.
2194
2195         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2196         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2197
2198 2005-07-15  Colin Walters  <walters@verbum.org>
2199
2200         * doc/TODO: Add note about convenience wrappers.
2201
2202 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2203
2204         * NEWS: Update to 0.35
2205
2206 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2207
2208         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2209         so distcheck doesn't fail
2210
2211         * glib/examples/Makefile.am: Add example-service.xml and 
2212         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2213
2214         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2215         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2216
2217         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2218         compiler looks in the right places during distcheck
2219
2220 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2221
2222         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2223         to fail
2224
2225 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2226
2227         * python/examples/example-service.py,
2228         python/examples/example-signal-emitter.py: Fixed up examples
2229         for API changes
2230
2231 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2232
2233         * python/__init__.py: Upped to version (0,42,0) because of
2234         the API change
2235
2236 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2237
2238         * ChangeLog: fix date in last entry
2239
2240         * configure.in, bus/system.conf.in: add the ability to configure 
2241         the system bus user at compiletime with the --with-dbus-user flag
2242         (patch from Kristof Vansant)
2243
2244 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2245
2246         * bus/dispatch.c, test/test-service.c: Add testcase
2247         for sending messages to oneself (TODO item).
2248
2249         * python/service.py (class Object): Swap ordering of bus_name 
2250         and object_path parameters to better support inheritance.
2251
2252         * doc/dbus-tutorial.xml: change Python docs to reflect change
2253         in parameter ordering and fix the inheritance section.
2254
2255         * doc/TODO: remove sending message to oneself TODO item
2256
2257 2005-07-15  Ross Burton  <ross@openedhand.com>
2258
2259         * glib/dbus-gproxy.c:
2260         Fix a leak when calling methods via the proxy.
2261
2262 2005-07-15  Colin Walters  <walters@verbum.org>
2263
2264         * bus/selinux.c (bus_selinux_append_context): Wrap in
2265         HAVE_SELINUX.
2266
2267 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2268
2269         * python/_dbus.py (Bus::remove_signal_receiver):
2270         don't add a callback to the match if none has been passed in
2271         
2272         * python/matchrules.py (SignalMatchTree::remove): if the rule
2273         being matched does not have a callback treat it as a wildcard
2274         fix matching logic
2275
2276         * doc/dbus-tutorial.xml: Add Python tutorial
2277
2278 2005-07-14  Colin Walters  <walters@verbum.org>
2279
2280         * bus/driver.c
2281         (bus_driver_handle_get_connection_unix_security_context): New function.
2282         (message_handlers): Add.
2283
2284         * bus/selinux.c (bus_selinux_append_context): New function; appends
2285         security context to message.
2286
2287         * bus/selinux.h: Prototype.
2288
2289         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2290
2291 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2292
2293         * bus/activation.c: clean up all tabs to be 8 spaces 
2294         (bus_activation_activate_service): make sure we clean up
2295         if activation fails
2296
2297         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2298         (check_shell_fail_service_auto_start): New function
2299         tests to make sure we get fail properly when trying to auto start a service
2300         with a faulty command line
2301         (check_shell_service_success_auto_start): New function tests to make sure
2302         auto started services get the arguments on the command line
2303
2304         * test/test-shell-service.c: Added service for testing auto-starting with 
2305         command line arguments
2306
2307         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2308         test/data/valid-service-files/debug-shell-echo-success.service.in:
2309         Added service files for testing auto-starting with command line arguments
2310
2311         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2312
2313 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2314
2315         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2316         
2317         * dbus/Makefile.am: added new files to build.
2318
2319         * bus/activation.c (bus_activation_activate_service): support
2320         activation commands with parameters.
2321
2322         * test/shell-test.c: added test program for the shell parsing
2323         code.
2324
2325 2005-07-13  David Zeuthen  <davidz@redhat.com>
2326
2327         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2328         64 bit signed and unsigned parameters
2329
2330 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2331
2332         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2333
2334         * python/service.py (class Name): renamed BusName to make it clearer
2335         what the object is for (a name on the bus)
2336
2337         * python/examples/example-service.py,
2338         python/examples/example-signal-emitter.py: change the Name object to
2339         BusName
2340
2341 2005-07-12  Colin Walters  <walters@verbum.org>
2342
2343         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2344
2345         * tools/dbus-launch.c: Include sys/select.h.
2346
2347 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2348         * python/dbus_bindings.pyx.in: removed
2349
2350         * python/dbus_bindings.pyx: Added.
2351         - Fixed some memleaks (patch from 
2352         Sean Meiners <sean.meiners@linspireinc.com>)
2353         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2354         own pxd file (Pyrex definition)
2355         - Broke out glib dependancies into its own pyx module
2356         
2357         * python/dbus_bindings.pdx: Added.
2358         - Defines C class Connection for exporting to other modules
2359
2360         * python/dbus_glib_bindings.pyx: Added.
2361         - New module to handle lowlevel dbus-glib mainloop integration
2362
2363         * python/glib.py: Added.
2364         - Registers the glib mainloop when you import this module
2365
2366         * python/services.py: Removed (renamed to service.py)
2367         
2368         * python/service.py: Added.
2369         - (class Server): renamed Name
2370
2371         * python/__init__.py: Bump ro version (0,41,0)
2372         -don't import the decorators or service module
2373         by default.  These now reside in the dbus.service namespace
2374
2375         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2376         setup function on creation 
2377
2378         * python/examples/example-service.py,
2379         python/examples/example-signal-emitter.py: update examples
2380
2381         * python/examples/gconf-proxy-service.py,
2382         python/examples/gconf-proxy-service2.py: TODO fix these up
2383
2384         * doc/TODO: Addition
2385         - Added a Python Bindings 1.0 section
2386         - added "Add match on args or match on details to match rules"
2387
2388
2389 2005-07-12  Colin Walters  <walters@verbum.org>
2390
2391         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2392         (statemachine-glue.h): 
2393         * glib/examples/Makefile.am (example-service-glue.h) 
2394         (example-signal-emitter-glue.h): 
2395         * glib/Makefile.am (dbus-glib-error-switch.h): 
2396         Add libtool --mode=execute so we use the built library instead
2397         of any installed one.
2398
2399 2005-07-11  Colin Walters  <walters@verbum.org>
2400
2401         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2402         (dbus_g_value_types_init): Remove assertion.
2403         (dbus_g_value_get_g_type, dbus_g_value_open)
2404         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2405         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2406         functions related to DBusGValue.  Now we marshal/demarshal
2407         structures as GValueArray.
2408         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2409         structures.
2410         (signature_iter_to_g_type_array): Don't call
2411         signature_iter_to_g_type_struct.
2412         (signature_iter_to_g_type_struct): Delete.
2413         (dbus_gvalue_to_signature): Delete.
2414         (dbus_gvalue_to_signature): New function with same name as other
2415         one; we can convert structures to signatures.
2416         (demarshal_valuearray): New function.
2417         (get_type_demarshaller): Use it.
2418         (demarshal_recurse): Delete.
2419         (marshal_proxy): New function.
2420         (marshal_map): Warn if we can't determine signature from type.
2421         (marshal_collection_ptrarray): Ditto.
2422         (marshal_collection_array): Ditto.
2423         (get_type_marshaller): Use marshal_valuearray.
2424         (marshal_recurse): Delete.
2425         (_dbus_gvalue_test): Add some tests.
2426
2427         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2428         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2429         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2430         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2431         (dbus_g_value_free): Remove prototypes.
2432
2433         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2434         G_TYPE_VALUE_ARRAY.
2435
2436         * glib/examples/example-service.c:
2437         * glib/examples/example-client.c: Implement GetTuple.
2438
2439         * test/glib/test-dbus-glib.c:
2440         * test/glib/test-service-glib.c:
2441         * test/glib/test-service-glib.xml: Add structure tests.
2442
2443 2005-07-10  Colin Walters  <walters@verbum.org>
2444
2445         * doc/TODO: Knock off some GLib items with this patch.
2446
2447         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2448         (_dbus_gvalue_signals_error): New functions.
2449
2450         * glib/dbus-gvalue-utils.h: Prototype them.
2451
2452         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2453         and change to not output const/retval flags for input args.  All
2454         callers updated.
2455         (invoke_object_method): Refactor to handle return values.  Add
2456         some more comments in various places.  Remove debug g_print.
2457
2458         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2459
2460         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2461         Handle G_TYPE_NONE.
2462         (compute_gsignature): New function; refactored from code from
2463         compute_marshaller and compute_marshaller_name.  Enhance to
2464         handle return values and async ops more cleanly.  Update for
2465         async ops returning NONE instead of BOOLEAN.
2466         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2467         and output appropriate string.
2468         (generate_glue): Handle return value annotation.  Also don't dump
2469         constness flag for input arguments.
2470
2471         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2472         files shared between installed library and utilities.
2473         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2474         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2475         binding tool can access gtype utility functions.
2476
2477         * test/glib/test-service-glib.c: 
2478         * test/glib/test-service-glib.xml: 
2479         * test/glib/test-dbus-glib.c: Add some tests for return values.
2480
2481 2005-07-09  Colin Walters  <walters@verbum.org>
2482
2483         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2484         argument if available, not method.
2485
2486         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2487         (invoke_object_method): First, remove some redundant
2488         GValues (object_value, error_value) in favor of working on
2489         array directly.  Second, rework constness to be less buggy.
2490         Now we iterate directly over the argument metadata instead
2491         of parallel iterating over output signature and metadata.
2492
2493         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2494
2495         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2496         annotation on input args.
2497         
2498 2005-07-09  Colin Walters  <walters@verbum.org>
2499
2500         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2501         Define.
2502
2503         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2504         annotation.
2505
2506         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2507         (method_dir_signature_from_object_info): Handle arg_iterate change.
2508         (write_interface): Ditto.
2509         (lookup_object_info): Don't barf if format_version is > 0.
2510         (invoke_object_method): Handle arg constness.
2511
2512         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2513         (arg_info_new): Create.
2514         (arg_info_unref): Destroy.
2515         (arg_info_get_annotations, arg_info_get_annotation) 
2516         (arg_info_add_annotation): New functions.
2517
2518         * glib/dbus-gidl.h: Prototype them.
2519
2520         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2521         args, disallow them in properties.
2522         (parse_annotation): Handle arg annotations.
2523
2524         * test/glib/test-service-glib.xml: 
2525         * test/glib/test-service-glib.c: Update to make some methods
2526         const.
2527
2528 2005-07-08  Colin Walters  <walters@verbum.org>
2529
2530         * test/glib/test-service-glib.xml: 
2531         * test/glib/test-service-glib.c:
2532         * test/glib/test-dbus-glib.c: Test a{sv}.
2533
2534         * glib/examples/statemachine/statemachine.c:
2535         * glib/examples/statemachine/statemachine-server.c:
2536         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2537         add progress bar, etc.
2538
2539         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2540         needed anymore due to generic array/map marshalling.
2541         (dbus_g_value_types_init): Don't register basic arrays or the
2542         string/string hash.
2543         (dbus_gtype_from_signature_iter): Don't try to recurse into
2544         variants.
2545         (dbus_gtype_to_signature): Check collection/map before type
2546         metadata.
2547         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2548         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2549         generic map creation/append functions instead of hash table
2550         specifically.
2551         (get_type_demarshaller): Handle maps.
2552         (demarshal_collection): Dispatch on collection type to either
2553         demarshal_collection_ptrarray or demarshal_collection_array.
2554         (get_type_marshaller): Handle maps.
2555         (marshal_collection): Dispatch collection type to either
2556         marshal_collection_ptrarray or marshal_collection_array.
2557         (_dbus_gvalue_test): New test.
2558
2559         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2560         (hash_free_from_gtype): Use it to free GValues.
2561         (hashtable_append): New function.
2562         (ptrarray_append): Fix prototype.
2563         (slist_append): Ditto.
2564         (_dbus_gvalue_utils_test): Extend tests.
2565
2566         * glib/dbus-gtype-specialized.c
2567         (dbus_g_type_specialized_init_append): Renamed from
2568         dbus_g_type_specialized_collection_init_append.  Remove const from
2569         value, since we steal it.
2570         (dbus_g_type_specialized_map_append): New function.
2571
2572         * glib/dbus-gtype-specialized.h: Update prototypes.
2573         Add DBusGTypeSpecializedMapAppendFunc.
2574
2575         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2576         _dbus_gvalue_test.
2577         
2578         * glib/dbus-gtest.h: Prototype it.
2579
2580 2005-07-08  Ross Burton  <ross@openedhand.com>
2581
2582         * dbus/dbus-glib.h:
2583         Add DBysGAsyncData for the async bindings.
2584
2585         * glib/dbus-binding-tool-glib.c:
2586         Re-enable the async bindings.
2587
2588         * test/glib/test-dbus-glib.c:
2589         Add a test for the generated async bindings.
2590
2591 2005-07-08  Colin Walters  <walters@verbum.org>
2592
2593         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2594         connection concept.
2595         
2596 2005-07-08  Colin Walters  <walters@verbum.org>
2597         
2598         * tools/Makefile.am: Kill of print-introspect in favor of using
2599         dbus-send --print-reply=literal.
2600
2601         * test/glib/test-service-glib.xml: 
2602         * test/glib/test-service-glib.c (my_object_get_objs): New test
2603         for "ao".
2604
2605         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2606         (main): Test GetObjs.
2607
2608         * glib/examples/statemachine/Makefile.am:
2609         * glib/examples/statemachine/sm-marshal.list:
2610         * glib/examples/statemachine/statemachine-client.c:
2611         * glib/examples/statemachine/statemachine-server.c:
2612         * glib/examples/statemachine/statemachine-server.xml:
2613         * glib/examples/statemachine/statemachine.c:
2614         * glib/examples/statemachine/statemachine.h:
2615         * glib/examples/statemachine/statemachine.xml:
2616
2617         New example.
2618
2619         * glib/examples/example-service.c (main): Move invocation
2620         of dbus_g_object_type_install_info earlier, to emphasize it
2621         should only be done once.
2622
2623         * glib/examples/example-signal-emitter.c (main): Ditto.
2624
2625         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2626
2627         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2628         (dbus_gvalue_marshal): Update prototypes.
2629
2630         * glib/dbus-gvalue.c: Update all marshalling functions to take
2631         const GValue instead of GValue.
2632         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2633         types.
2634         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2635         change.
2636         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2637         Return a newly-allocated string.
2638         (demarshal_proxy, demarshal_object_path, demarshal_object)
2639         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2640         we get the wrong types from message.
2641         (get_type_demarshaller): New function, extracted from
2642         dbus_gvalue_demarshal.
2643         (demarshal_collection): New function, demarshals generic
2644         collection.
2645         (dbus_gvalue_demarshal): Just invoke result of
2646         get_type_demarshaller.  Throw error if we don't have one.
2647         (marshal_garray_basic): Abort on OOM.
2648         (get_type_marshaller): New function, extracted from
2649         dbus_gvalue_marshal.
2650         (collection_marshal_iterator, marshal_collection): New functions;
2651         implements generic marshalling for an iteratable specialized
2652         collection.
2653         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2654
2655         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2656         G_TYPE_STRING.
2657         (ptrarray_value_from_gvalue): Ditto.
2658         (ptrarray_append, ptrarray_free): New functions.
2659         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2660         (slist_append, slist_end_append, slist_free): New functions.
2661         (dbus_g_type_specialized_builtins_init): Add append fuctions
2662         for GPtrArray and GSList.  Register GSList.
2663         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2664
2665         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2666         New.
2667         (dbus_g_type_specialized_collection_init_append)
2668         (dbus_g_type_specialized_collection_append)
2669         (dbus_g_type_specialized_collection_end_append): Prototype.
2670         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2671         end_append_func.
2672
2673         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2674         (dbus_g_type_specialized_collection_append) 
2675         (dbus_g_type_specialized_collection_end_append): New functions.
2676         (dbus_g_type_map_value_iterate): Take const GValue.
2677         (dbus_g_type_collection_value_iterate): Ditto.
2678
2679         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2680         _dbus_gvalue_utils_test.
2681         
2682         * glib/dbus-gtest.h: Prototype it.
2683
2684         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2685         using uninitialized owner_list.
2686         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2687         public API.
2688         (dbus_g_proxy_end_call_internal): Update to use error set
2689         from dbus_gvalue_demarshal instead of setting it here.
2690         (dbus_g_proxy_begin_call): Move return_if_fail here.
2691
2692         * glib/dbus-gobject.c (write_interface): Update for
2693         dbus_gtype_to_signature returning new string.
2694
2695         * configure.in: Add glib/examples/statemachine.
2696
2697 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2698
2699         * configure.in: Add a configure option, --with-console-auth-dir
2700         
2701         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2702         new setting.  Patch from Kay Sievers.
2703
2704 2005-07-06  Colin Walters  <walters@verbum.org>
2705
2706         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2707         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2708         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2709         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2710         Delete in favor of dbus_g_proxy_begin_call and
2711         dbus_g_proxy_cancel_call.
2712         (DBusGProxyCall, DBusGProxyCallNotify): New.
2713         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2714         data, and destroy function.  This replaces
2715         dbus_g_pending_call_set_notify.
2716         (dbus_g_proxy_cancel_call): Prototype.
2717         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2718
2719         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2720         pending_calls map.
2721         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2722         internal proxy for calls to the bus. Remove
2723         pending_nameowner_calls, now the internal proxy keeps track.
2724         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2725         pending_nameowner_calls.
2726         (got_name_owner_cb): Update prototype, and use
2727         dbus_g_proxy_end_call.
2728         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2729         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2730         favor of using internal proxy.
2731         (dbus_g_proxy_manager_unregister): Update to use
2732         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2733         (dbus_g_proxy_init): Initialize pending calls map.
2734         (dbus_g_proxy_constructor): New.
2735         (dbus_g_proxy_class_init): Add get/set property functions,
2736         constructor, and add NAME, PATH, and INTERFACE properties.
2737         (cancel_pending_call): New function.
2738         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2739         cancel them.
2740         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2741         (GPendingNotifyClosure): New structure.
2742         (d_pending_call_notify, d_pending_call_free): Moved here from
2743         dbus-glib.c.
2744         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2745         ordering.
2746         (manager_begin_bus_call): New internal function for talking to
2747         internal bus proxy.
2748         (dbus_g_proxy_new): Construct object using GObjet properties.
2749         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2750         Create closure of same, and insert call into map of pending calls.
2751         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2752         call.  Look up pending call in current set.  Remove it when we've
2753         completed.
2754         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2755         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2756         and destroy function directly.
2757         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2758         (dbus_g_proxy_call): Invoke with NULL callback.
2759         (dbus_g_proxy_cancel_call): New function, replaces
2760         dbus_g_pending_call_cancel.
2761
2762         * glib/dbus-gparser.c (validate_signature): Fix call to
2763         dbus_set_g_error.
2764
2765         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2766         New quark for attaching metadata to GType.
2767         (info_hash): Delete.
2768         (lookup_object_info): Look up using quark.
2769         (dbus_g_object_type_install_info): Check that a type is classed,
2770         not that it's an object.  Also just install type data using quark
2771         instead of using global hash.
2772
2773         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2774         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2775         (GPendingNotifyClosure): Delete.
2776         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2777         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2778
2779         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2780         client method generation until we can fix it...
2781         
2782         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2783         (load_from_service_thread_func): Ditto.
2784
2785         * tools/dbus-names-model.c (struct NamesModel): Hold
2786         DBusGProxyCall.
2787         (have_names_notify): Update prototype, use
2788         dbus_g_proxy_cancel_call.
2789         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2790
2791         * tools/dbus-monitor.c (filter_func): Update for print_message
2792         API change.
2793
2794         * test/glib/test-dbus-glib.c: Add more tests for async
2795         invocations.  Update many begin_call/end_call pairs to just use
2796         dbus_g_proxy_call.
2797
2798         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2799         allows us to dump print-introspect.c.
2800
2801         * tools/dbus-print-message.h (print_message): Add literal argument
2802         to print_message which is intended to allow printing arguments without
2803         metadata like "string=".
2804
2805         * tools/dbus-print-message.c (print_iter): Add literal argument.
2806         (print_message): Allow printing string messages literally.
2807
2808 2005-07-05  Colin Walters  <walters@verbum.org>
2809
2810         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2811         Remove value refcount leak, original patch from Jorn Baayen
2812         <jorn@openedhand.com>.  Also remove useless extra value in favor
2813         of prepending to value array directly.
2814
2815 2005-07-02  Colin Walters  <walters@verbum.org>
2816
2817         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2818
2819 2005-07-01  Colin Walters  <walters@verbum.org>
2820
2821         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2822         
2823         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2824         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2825         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2826         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2827
2828 2005-06-30  Colin Walters  <walters@verbum.org>
2829
2830         * test/glib/test-dbus-glib.c:
2831         * test/glib/test-service-glib.c:
2832         * test/glib/test-service-glib.xml: Update tests for new error
2833         setting bits, also add async tests (patch from Ross Burton).
2834
2835         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2836         DBUS_GLIB_THREADS_LIBS.
2837
2838         * glib/dbus-gproxy.c (get_name_owner)
2839         (dbus_g_pending_call_end_valist): Ditto.
2840
2841         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2842         domain (GQuark) to DBusGErrorInfo.  
2843         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2844         quark in error_metadata.  Take message interface as default
2845         error message interface.
2846         (gerror_to_dbus_error_message): Pass message interface.
2847         (dbus_set_g_error): Resurrected.
2848         (dbus_g_error_info_free): New function.
2849         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2850         of _peek to actually create the object class if it hasn't been
2851         created yet.
2852         (dbus_g_error_domain_register): New function.
2853
2854         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2855
2856         * glib/dbus-gparser.c (validate_signature): Ditto.
2857
2858         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2859         (dbus_g_error_domain_register): Prototype.
2860
2861         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2862         Update tests.
2863
2864 2005-06-29  Colin Walters  <walters@verbum.org>
2865
2866         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2867         DBUS_TYPE_G_OBJECT_PATH.
2868
2869         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2870         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2871         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2872         (dbus_g_object_path_get_g_type): New function.
2873         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2874         to DBUS_TYPE_G_OBJECT_PATH by default.
2875         (demarshal_proxy): Remove unused name variable.
2876         (demarshal_object_path, marshal_object_path): New functions.
2877         (demarshal_proxy_array, marshal_proxy_array): Delete.
2878         
2879         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2880         DBUS_TYPE_G_OBJECT_PATH to char *.
2881         (dbus_g_type_get_lookup_function): Map builtin
2882         DBUS_TYPE_G_OBJECT_PATH.
2883
2884         * test/glib/test-dbus-glib.c
2885         * test/glib/test-service-glib.c (my_object_objpath): 
2886         Adapt tests to new object path marshalling.
2887
2888 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2889
2890         * configure.in: force check for Python >= 2.4
2891
2892 2005-06-29  Colin Walters  <walters@verbum.org>
2893         
2894         Patch from Ross Burton <ross@openedhand.com>
2895         
2896         * glib/dbus-gobject.c (invoke_object_method): Unset object
2897         value in all cases, not only in async case.
2898
2899 2005-06-29  Colin Walters  <walters@verbum.org>
2900
2901         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2902         name_call for keeping track of any outgoing GetNameOwner call.
2903         Also add for_owner and associated.
2904         (struct _DBusGProxyManager): Add owner_names, which is hash table
2905         that maps a base name to a list of names it owns (that we're
2906         interested in).  Add pending_nameowner_calls which is a list of
2907         all outstanding GetNameOwner; avoids us having to iterate over
2908         every proxy.  Add unassociated_proxies which keeps track of name
2909         proxies with no associated name owner.
2910         (dbus_g_proxy_manager_unref): Destroy owner_names.
2911         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2912         name refcounts.
2913         (find_name_in_info, name_owner_foreach)
2914         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2915         (dbus_g_proxy_manager_monitor_name_owner)
2916         (dbus_g_proxy_manager_unmonitor_name_owner)
2917         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2918         New functions; they manipulate the owner_names mapping.
2919         (got_name_owner_cb): New function.
2920         (get_name_owner): New function, extracted from
2921         dbus_g_proxy_new_for_name_owner.
2922         (dbus_g_proxy_manager_register): For now we need to keep track of
2923         all NameOwnerChanged.  Also if the proxy is for a name, if we
2924         don't already know the name owner, queue a new GetNameOwner
2925         request and add it to our list of unassociated proxies.  Otherwise
2926         inc the refcount.
2927         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2928         cancel any pending GetNameOwner call, etc.
2929         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2930         the owner_names mapping to look up the current names for the
2931         signal source, and dispatch to any proxies for that name.
2932         (dbus_g_proxy_new): Initialize new members.
2933         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2934         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2935         (dbus_g_pending_call_end_valist): New function, extracted from
2936         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2937         but want to use the GLib infrastructure.  Also note how many
2938         arguments in reply were over.
2939         (dbus_g_pending_call_end): New function, just call
2940         dbus_g_pending_call_end_valist.
2941         (dbus_g_proxy_end_call_internal): Just call
2942         dbus_g_pending_call_end_valist.
2943
2944         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2945         of builtin marshaller for STRING_STRING_STRING.
2946
2947         * test/glib/test-dbus-glib.c: 
2948         * test/glib/test-service-glib.c:
2949         * test/glib/test-service-glib.xml:
2950         Extend tests to cover name proxies, destruction of owner proxies,
2951         etc.
2952         
2953         * glib/examples/example-signal-recipient.c
2954         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2955         
2956         * tools/dbus-send.c (main): Print D-BUS error name in addition
2957         to message.
2958
2959 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2960
2961         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2962         cmessage_function_handler): Patch from 
2963         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2964         by using the Py_GILState_Ensure/Release to synchronize with the
2965         python runtime.
2966         
2967 2005-06-28  Ray Strode  <rstrode@redhat.com>
2968
2969         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2970         babysitter helper process on last unref, bug #2813.
2971
2972 2005-06-27  Colin Walters  <walters@verbum.org>
2973
2974         * test/glib/test-dbus-glib.c: 
2975         * test/glib/test-service-glib.c:
2976         * test/glib/test-service-glib.xml:
2977         Test hash table signal emitting.
2978
2979         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2980         types to their fundamental basis types, since this is what
2981         marshallers operate on.  Also add an entry for VOID__BOXED.
2982         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2983
2984 2005-06-26  Havoc Pennington  <hp@redhat.com>
2985
2986         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2987         from Don Park
2988
2989 2005-06-26  Colin Walters  <walters@verbum.org>
2990
2991         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2992         (dbus_g_error_set): New public function from its ashes; used by
2993         both service-side method implementation and GLib bindings
2994         internals.
2995         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2996         (_dbus_glib_test): Add some tests.
2997
2998         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2999
3000         * test/glib/test-service-glib.c (my_object_throw_error): Use
3001         dbus_g_error_set.
3002
3003         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3004         errors thrown by dbus_g_error_set.
3005
3006         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3007
3008         * glib/dbus-gparser.c (validate_signature): Ditto.
3009
3010         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3011         (dbus_g_proxy_end_call_internal): Ditto.
3012
3013         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3014         converts DBUS_ERROR_x to DBUS_GERROR_x.
3015         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3016
3017         * doc/TODO: Remove error TODO.
3018
3019         * doc/dbus-tutorial.xml: Update with documentation about error
3020         handling.
3021
3022         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3023         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3024         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3025
3026 2005-06-22  Colin Walters  <walters@verbum.org>
3027         
3028         Patch from Ross Burton <ross@openedhand.com>
3029
3030         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3031
3032 2005-06-20  Colin Walters  <walters@verbum.org>
3033
3034         * configure.in: Add glib/examples.
3035
3036         * glib/Makefile.am: Add examples/
3037
3038         * glib/examples/.cvsignore
3039         * glib/examples/Makefile.am
3040         * glib/examples/example-client.c
3041         * glib/examples/example-service.c
3042         * glib/examples/example-service.xml
3043         * glib/examples/example-signal-emitter.c
3044         * glib/examples/example-signal-emitter.xml
3045         * glib/examples/example-signal-recipient.c:
3046         New files; GLib binding examples, ported from
3047         python/examples.
3048
3049 2005-06-20  Colin Walters  <walters@verbum.org>
3050
3051         * dbus/dbus-glib.h: 
3052         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3053         dbus_g_proxy_call.
3054
3055         * glib/dbus-binding-tool-glib.c: 
3056         * doc/dbus-tutorial.xml: 
3057         * test/glib/test-dbus-glib.c: Update for rename.
3058         
3059 2005-06-20  Colin Walters  <walters@verbum.org>
3060
3061         Patch suggested by Ross Burton <ross@openedhand.com>
3062
3063         * glib/dbus-gobject.c (export_signals): Free signal name.
3064         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3065         memory leak.  Add a bit of documentation.
3066         (dbus_g_method_return_error): Free context, and note we do
3067         so.
3068
3069 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3070
3071         * dbus/dbus-glib.h:
3072         * glib/dbus-gobject.c:
3073         * glib/dbus-gproxy.c:
3074         * glib/dbus-gvalue.c: Predeclare structs as 
3075         typedef struct _Something Something instead of 
3076         typedef struct Something Something, so we can 
3077         redeclare the prototypes. Other GNOME libraries 
3078         do this already.
3079
3080 2005-06-17  Colin Walters  <walters@verbum.org>
3081
3082         * tools/dbus-names-model.c (have_names_notify): Fix call
3083         to dbus_g_proxy_end_call.
3084         
3085 2005-06-17  Colin Walters  <walters@verbum.org>
3086
3087         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3088         spew warnings if we get malformed remote signals.
3089
3090         * glib/dbus-gobject.c (propsig_iterate): New function.
3091         (lookup_object_info): New function, extracted from
3092         lookup_object_and_method.
3093         (introspect_properties, introspect_signals): Delete; these
3094         are merged into write_interface.
3095         (write_interface): Write out signals and properties here;
3096         dump the org.gtk.object stuff and use the interface given
3097         in the introspection data blob.  Also fix up property XML.
3098         (lookup_values): New function.
3099         (introspect_interfaces): Gather a mapping from interface to a
3100         list of its methods, signals, and properties, then write out
3101         each interface.
3102         (lookup_object_and_method): Use lookup_object_info.
3103         (struct DBusGSignalClosure): Add interface.
3104         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3105         we can just use the constant data.
3106         (dbus_g_signal_closure_finalize): Don't free signal name.
3107         (signal_emitter_marshaller): Use interface from signal closure.
3108         (export_signals): Only export signals mentioned in introspection
3109         blob.
3110         (dbus_g_connection_register_g_object): Warn if we have no
3111         introspection data for an object.
3112         (funcsig_equal): Remove unused variable.
3113         (dbus_g_object_register_marshaller): Take varargs instead of
3114         list.
3115         (dbus_g_object_register_marshaller_array): New function,
3116         extracted from old dbus_g_object_register_marshaller.
3117
3118         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3119         signals and property data.
3120         (write_quoted_string): New function, extracted from generate_glue.
3121         (generate_glue): Write signals and properties to introspection
3122         blob.
3123
3124         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3125         exported_signals and exported_properties.
3126         (dbus_g_object_register_marshaller): Update prototype.
3127         (dbus_g_object_register_marshaller_array): Prototype.
3128         
3129         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3130
3131         * test/glib/test-service-glib.c: Add new test signals and method
3132         to emit them.
3133
3134         * test/glib/test-service-glib.xml: Add some test signals.
3135
3136         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3137         and my-object-marshal.h
3138         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3139         my-object-marshal.c.
3140         (my-object-marshal.c, my-object-marshal.h): Implement.
3141
3142         * test/glib/.cvsignore: Update.
3143
3144         * doc/TODO: Remove two GLib TODO items fixed by this
3145         patch.
3146
3147 2005-06-16  Colin Walters  <walters@verbum.org>
3148
3149         * doc/TODO: Update for GLib bindings.
3150         
3151 2005-06-16  Colin Walters  <walters@verbum.org>
3152
3153         * glib/dbus-binding-tool-glib.c:
3154         * glib/dbus-gobject.c:
3155         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3156         from Ross Burton, for his GLib bindings work.
3157
3158 2005-06-16  Colin Walters  <walters@verbum.org>
3159
3160         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3161         to iterate instead of walking to G_TYPE_INVALID.
3162
3163         Patch based on a patch from Ryan Gammon.
3164
3165 2005-06-16  Colin Walters  <walters@verbum.org>
3166
3167         * bus/bus.c (bus_context_new): Set parser to NULL
3168         after we unref it (Patch from Chris Boscolo, #2174).
3169         
3170 2005-06-16  Colin Walters  <walters@verbum.org>
3171
3172         * python/dbus_bindings.pyx.in: Import size_t,
3173         __int64_t, __uint64_t, and __signed.
3174
3175         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3176         Define cmsg struct, output it.
3177         (_dbus_read_credentials_unix_socket):
3178         Use cmsg struct.
3179         
3180         Patch from Joe Markus Clarke for FreeBSD support.
3181         
3182 2005-06-16  Colin Walters  <walters@verbum.org>
3183
3184         * tools/dbus-send.c (append_array): Use strtok.
3185         (append_dict): New function.
3186         (type_from_name): New function, extracted from main.
3187         (main): Handle sending dicts.
3188
3189         * tools/dbus-print-message.c (print_iter): Print dict
3190         entries.
3191         
3192 2005-06-16  Colin Walters  <walters@verbum.org>
3193
3194         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3195         values as the empty string (#2948).
3196         
3197 2005-06-16  Colin Walters  <walters@verbum.org>
3198
3199         * dbus/Makefile.am:
3200         * mono/doc/Makefile.am:
3201         * test/glib/Makefile.am:
3202
3203         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3204
3205 2005-06-16  Colin Walters  <walters@verbum.org>
3206
3207         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3208         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3209
3210         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3211         Increment pointer after swapping fixed array.  Add assertion
3212         for array length.
3213                 
3214 2005-06-15  Colin Walters  <walters@verbum.org>
3215
3216         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3217         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3218         
3219 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3220
3221         * NEWS: Update to 0.34
3222
3223 2005-06-15  David Zeuthen  <davidz@redhat.com>
3224
3225         * configure.in (LT_CURRENT): Revert back to 1 as the library
3226         hasn't changed and we've certainly not committed to protocol
3227         stability yet.  All this does is to break ABI. See commit note
3228         from hp@redhat.com 2005-05-05 for details.
3229         
3230 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3231
3232         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3233         (_dbus_connection_run_builtin_filters): New method
3234         (dbus_connection_dispatch): Run the builtin filters which in turn
3235         runs the peer filter which handles Ping messages.
3236
3237         * doc/TODO: 
3238          - Ping isn't handled: This patch fixes it
3239          
3240          - Add a test case for the Ping message: added TODO item
3241
3242 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3243
3244         * dbus/dbus-message.c:
3245         (dbus_message_has_path): New method
3246         (dbus_message_has_interface): New method
3247         (dbus_message_has_member): New method
3248
3249         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3250         New method
3251
3252         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3253         the keyring directory is private to the user
3254
3255         * doc/TODO:
3256          - The convenience functions in dbus-bus.h should perhaps have
3257          the signatures that they would have if they were autogenerated
3258          stubs. e.g. the acquire service function. We should also evaluate
3259          which of these functions to include, in light of the fact that
3260          GLib/Qt native stubs will probably also exist.: Punted
3261
3262          - add dbus_message_has_path(), maybe has_member/interface:
3263          fixed in this patch
3264
3265          - in dbus-keyring.c, enforce that the keyring dir is not
3266          world readable/writable: Fixed in this patch
3267
3268 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3269
3270         * dbus/dbus-marshal-validate.h: Added a new validation
3271         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3272         out of memory errors when validating signitures
3273
3274         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3275         in places where we previously used DBUS_VALID and a FALSE return 
3276         value to indicate OOM
3277         
3278         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3279         Use a stack to track the number of elements inside containers.  The 
3280         stack values are then used to validate that dict entries have only two
3281         elements within them.
3282         (validate_body_helper): check the reason for failure when validating
3283         varients
3284         
3285         * dbus/dbus-message.c (load_message): use 
3286         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3287         DBUS_VALID and a FALSE return value to indicate OOM
3288
3289         * doc/TODO: remove "- validate dict entry number of fields" as this
3290         patch fixes it
3291
3292 2005-06-14  David Zeuthen  <davidz@redhat.com>
3293
3294         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3295         watches (if applicable) and add new watches
3296
3297         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3298         (main): Setup SIGIO signal handler if using D_NOTIFY
3299
3300         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3301
3302         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3303         (merge_included): Also merge conf_dirs list
3304         (bus_config_parser_unref): Clear conf_dirs list
3305         (include_dir): Add directory to conf_dirs list
3306         (bus_config_parser_get_conf_dirs): New function
3307
3308         * bus/dir-watch.[ch]: New files
3309
3310         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3311
3312         * configure.in: Add checks for D_NOTIFY on Linux
3313
3314 2005-06-14  Colin Walters  <walters@verbum.org>
3315
3316         * glib/dbus-binding-tool-glib.c:
3317         * glib/dbus-gobject.c:
3318         * glib/dbus-gvalue.c: Fix indentation and brace style.
3319         
3320 2005-06-14  Ross Burton <ross@openedhand.com>.
3321
3322         * glib/dbus-glib.h: Make DBusGMethodInvocation
3323         a private structure.  Rearrange prototypes a bit.
3324         
3325         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3326         documentation for first_arg_type.
3327         
3328         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3329         here, add documentation.  Move dbus_g_method_return
3330         and dbus_g_method_return_error into public API
3331         section.
3332
3333 2005-06-14  Colin Walters  <walters@verbum.org>
3334
3335         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3336         Add missing return statements, noticed by Ross Burton.
3337         
3338 2005-06-13  Ross Burton <ross@openedhand.com>.
3339
3340         * glib/dbus-gobject.c: Handle errors on message
3341         demarshalling by sending error message back.
3342         * glib/dbus-gvalue.c: Initialize return variables.
3343
3344 2005-06-13  Colin Walters  <walters@verbum.org>
3345
3346         * glib/Makefile.am: Fix thinko in last patch.
3347
3348 2005-06-13  Colin Walters  <walters@verbum.org>
3349
3350         * glib/Makefile.am: Move dbus-gtype-specialized.c
3351         and dbus-gtype-specialized.h into a _HEADERS variable,
3352         install them.
3353
3354 2005-06-12  Colin Walters  <walters@verbum.org>
3355
3356         Async signals and various bugfixes and testing by
3357         Ross Burton <ross@openedhand.com>.
3358
3359         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3360         (dbus_gvalue_genmarshal_name_from_type)
3361         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3362         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3363         (dbus_g_value_types_init, dbus_gtype_from_signature)
3364         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3365         (dbus_gtypes_from_arg_signature): New function prototypes.
3366         (dbus_gvalue_demarshal): Take context and error arguments.
3367         (dbus_gvalue_demarshal_variant): New function.
3368         (dbus_gvalue_demarshal_message): New function.
3369         (dbus_gvalue_store): Delete.
3370
3371         * glib/dbus-gvalue.c:
3372
3373         File has been almost entirely rewritten; now we special-case
3374         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3375         hash tables correctly, etc.  Full support for recursive values
3376         is not yet complete.
3377
3378         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3379         argument of signal to G_TYPE_POINTER since we now pass a
3380         structure.
3381         (lookup_g_marshaller): Delete in favor of
3382         _dbus_gobject_lookup_marshaller.
3383         (marshal_dbus_message_to_g_marshaller): Use
3384         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3385         to handle remote signal callbacks.
3386         (dbus_g_proxy_new_from_proxy): New function; creates a new
3387         DBusGProxy by copying an existing one.
3388         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3389         (dbus_g_proxy_get_path): New functions.
3390         (dbus_g_proxy_marshal_args_to_message): New function;
3391         factored out of existing code.
3392         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3393         from a varargs array.
3394         (dbus_g_proxy_begin_call_internal): New function.
3395         (dbus_g_proxy_end_call_internal): New function.
3396         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3397         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3398         after collecting args into value array.
3399         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3400         invoke dbus_g_proxy_end_call_internal.
3401         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3402         end_call_internal.
3403         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3404         types.
3405         (array_free_all): New function.
3406         (dbus_g_proxy_add_signal): Take GTypes.
3407
3408         * glib/dbus-gobject.h:
3409         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3410         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3411         Prototype.
3412
3413         * glib/dbus-gobject.c: Add a global marshal_table hash which
3414         stores mappings from type signatures to marshallers.  Change lots
3415         of invocations of dbus_gtype_to_dbus_type to
3416         dbus_gtype_to_signature.
3417         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3418         (introspect_signals): Fix test for query.return_type.
3419         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3420         (invoke_object_method): Many changes.  Handle asynchronous
3421         invocations.  Convert arguments with
3422         dbus_gvalue_demarshal_message.  Handle errors.  Use
3423         DBusSignatureIter instead of strlen on args. Handle all arguments
3424         generically.  Special-case variants.
3425         (dbus_g_method_return, dbus_g_method_return_error): New function.
3426         (DBusGSignalClosure): New structure, closes over signal
3427         information.
3428         (dbus_g_signal_closure_new): New function.
3429         (dbus_g_signal_closure_finalize): New function.
3430         (signal_emitter_marshaller): New function; is special marshaller
3431         which emits signals on bus.
3432         (export_signals): New function; introspects object signals and
3433         connects to them.
3434         (dbus_g_object_type_install_info): Take GType instead of
3435         GObjectClass.
3436         (dbus_g_connection_register_g_object): Invoke export_signals.
3437         (dbus_g_connection_lookup_g_object): New function.
3438         (DBusGFuncSignature) New structure; used for mapping type
3439         signatures to marshallers.
3440         (funcsig_hash): New function; hashes DBusGFuncSignature.
3441         (funcsig_equal): New function; compares DBusGFuncSignature.
3442         (_dbus_gobject_lookup_marshaller): New function.
3443         (dbus_g_object_register_marshaller): New function; used to
3444         register a marshaller at runtime for a particular signature.
3445
3446         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3447
3448         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3449         which notes a server method implementation should be
3450         asynchronous.
3451
3452         * glib/dbus-binding-tool-glib.c
3453         (dbus_binding_tool_output_glib_server): Call
3454         dbus_g_value_types_init.
3455         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3456         variants specially.
3457         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3458         of a lookup function.
3459         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3460         (write_untyped_out_args): New method; write output arguments.
3461         (write_formal_declarations_for_direction): Function for
3462         writing prototypes.
3463         (write_formal_parameters_for_direction): Function for
3464         writing implementations.
3465         (write_typed_args_for_direction): Function for writing
3466         arguments prefixed with GTypes.
3467         (write_async_method_client): Write out async version
3468         of method.
3469
3470         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3471         (dbus_g_type_get_marshal_name): Move mapping from GType
3472         to marshal name into here.
3473         (dbus_g_type_get_c_name): Move into here.
3474         (compute_marshaller): Convert signature to type with
3475         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3476         (compute_marshaller_name): Ditto.
3477         (compute_marshaller): Handle async signal annotations.
3478         (gather_marshallers): Return if we don't have a known
3479         prefix.
3480         (generate_glue): Collect introspection blob here, and
3481         write all of the blob at the end.  This allows an object
3482         with multiple interfaces to work.
3483         Mark async methods in introspection blob.
3484
3485         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3486         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3487         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3488
3489         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3490         avoids people accidentally using DBUS_TYPE_* which should
3491         not be necessary anymore.
3492         Do include dbus-gtype-specialized.h, which are utilities
3493         for GLib container types.
3494         Add various #defines for types such as
3495         DBUS_TYPE_G_BOOLEAN_ARRAY.
3496         (DBusGValueIterator, DBusGValue): Define, not fully used
3497         yet.
3498         (dbus_g_value_get_g_type): Type for recursive value.
3499         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3500         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3501         (dbus_g_value_free): Prototypes.
3502         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3503         (dbus_g_proxy_set_interface): Prototype.
3504         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3505         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3506         types.
3507         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3508         Accessors.
3509         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3510         doing async invocations.
3511         (dbus_g_method_return, dbus_g_method_return_error):
3512         Prototypes.
3513         * doc/dbus-tutorial.xml: Update GLib section.
3514         
3515         * tools/dbus-viewer.c (load_child_nodes): Update
3516         for new invocation type of dbus_g_proxy_end_call.
3517         (load_from_service_thread_func): Ditto.
3518
3519         * tools/print-introspect.c (main): Ditto.
3520
3521         * tools/dbus-names-model.c (have_names_notify)
3522         (names_model_reload, names_model_set_connection)
3523         Use GTypes.
3524
3525         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3526         needed since Python bindings use GLib bindings.
3527
3528         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3529         Add --prefix argument.
3530
3531         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3532         unneeded --ignore-unsupported arg.
3533         
3534         * test/glib/test-service-glib.c: 
3535         * test/glib/test-service-glib.xml:
3536         * test/glib/test-dbus-glib.c: Add many more tests.
3537
3538 2005-06-06  David Zeuthen  <davidz@redhat.com>
3539
3540         * doc/TODO: Add item about need to remove deprecated functions.
3541
3542         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3543
3544         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3545         to repair the ABI which was broken with the last commit.
3546
3547 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3548
3549         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3550         (dbus_connection_disconnect): renamed to dbus_connection_close 
3551         for API symmetry with dbus_connection_open
3552         (_dbus_connection_open_internal): 
3553         s/dbus_connection_disconnect/dbus_connection_close
3554
3555         * dbus/dbus-bus.c (dbus_bus_get):
3556         s/dbus_connection_disconnect/dbus_connection_close
3557
3558         * bus/connection.c (bus_connections_unref, 
3559         bus_connections_setup_connection, bus_connections_expire_incomplete):
3560         s/dbus_connection_disconnect/dbus_connection_close
3561
3562         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3563         kill_client_connection_unchecked, check_hello_connection):
3564         s/dbus_connection_disconnect/dbus_connection_close
3565
3566         * bus/bus.c (new_connection_callback):
3567         s/dbus_connection_disconnect/dbus_connection_close
3568
3569         * tools/dbus-send.c (main):
3570         s/dbus_connection_disconnect/dbus_connection_close
3571
3572         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3573         s/dbus_connection_disconnect/dbus_connection_close
3574         
3575         * test/test-service.c (path_message_func, filter_func):
3576         s/dbus_connection_disconnect/dbus_connection_close
3577         
3578         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3579         
3580 2005-05-25  Colin Walters  <walters@verbum.org>
3581
3582         * dbus/dbus-protocol.h: Move various bus service #defines such
3583           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3584           dbus/dbus-shared.h.
3585         * dbus/dbus-shared.h: Various defines moved here.
3586         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3587
3588 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3589
3590         * python/__init__.py: Python bindings deserve a minor version
3591         update.  Upped to (0, 40, 2)
3592
3593 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3594
3595         * python/decorators.py: add explicitly_pass_message decorator
3596         for passing in the dbus message as keyword for edge case signal
3597         handling
3598
3599         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3600         to conform with what dbus expects for match rules
3601         (SignalMatchRule.execute): add the dbus message as a keyword
3602         if the signal handler has requested it
3603
3604         * python/examples/example/signal-recipient.py: added some more
3605         examples on how to hook up to signals
3606
3607 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3608
3609         * python/decorators.py: import dbus_bindings
3610
3611         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3612         SignalMatchNode): new classes that implement wildcard signal
3613         callback matching using a tree lookup. Heavily modified from a
3614         patch sent by Celso Pinto (fd.o bug #3241)
3615
3616         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3617         use new match classes to handle signals.
3618
3619 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3620         
3621         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3622
3623 2005-05-18  Havoc Pennington  <hp@redhat.com>
3624
3625         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3626         gettext. Not really worth requiring yet perhaps, but any
3627         production quality 1.0 would require it so we should go ahead and
3628         get things set up. We do have a couple token calls to
3629         bindtextdomain in the code already.
3630
3631 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3632
3633         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3634         when using recursive g_main_loops
3635
3636         * python/_dbus.py (class Bus): add the ProxyObjectClass
3637         alias for ProxyObject to make it easier for the Twisted 
3638         networking framework to integrate dbus.
3639
3640         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3641         alias for ProxyMethod to make it easier for the Twisted 
3642         networking framework to integrate dbus. 
3643
3644 2005-05-11  Ross Burton  <ross@openedhand.com>
3645
3646         * glib/dbus-glib-tool.c: Add --prefix argument.
3647         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3648         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3649         Add prefix argument.
3650         (generate_glue): Pass prefix argument down.
3651         (dbus_binding_tool_output_glib_server): Pass prefix to
3652         glib-genmarshal.
3653         
3654 2005-05-11  Colin Walters  <walters@verbum.org>
3655
3656         * tools/dbus-send.c (append_array): New function.
3657         (append_arg): Broken out from main.
3658         (main): Add cheesy hack to send arrays and variants.
3659         (usage): Update.
3660         * tools/dbus-print-message.c (print_iter): Broken out
3661         from main.
3662
3663 2005-05-11  Colin Walters  <walters@verbum.org>
3664
3665         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3666         New function, returns signature string for signature iter.
3667         * dbus/dbus-signature.h: Prototype it.
3668         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3669         New function, returns signature string for message iter.
3670         (dbus_message_iter_get_array_len): New function, returns
3671         length of array.
3672         (dbus_message_iter_get_fixed_array): Fix assertion; this
3673         function should be used when the iter is pointing to the
3674         contents of an array
3675         * dbus/dbus-message.h: Prototypes.
3676         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3677         New function; returns length of an array.
3678         * dbus/dbus-marshal-recursive.h: Prototype it.
3679         
3680 2005-05-11  Colin Walters  <walters@verbum.org>
3681
3682         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3683         compilation error.
3684         
3685 2005-05-08  Havoc Pennington  <hp@redhat.com>
3686
3687         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3688         daemon's pid, not the parent's pid, to the file descriptor.
3689         Reported by Taj Morton.
3690
3691 2005-05-05  Havoc Pennington  <hp@redhat.com>
3692
3693         * configure.in (LT_*): add notes on how the libtool versioning
3694         works to save thinking. Increment soname to indicate protocol
3695         breakage (though really the library interface hasn't changed I
3696         guess)
3697
3698         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3699         verify the GUID received from server matches what we were
3700         expecting, if we had an expectation
3701
3702         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3703         (_dbus_auth_get_guid_from_server): new function
3704         (send_begin): parse the OK args
3705
3706         * doc/dbus-specification.xml: add GUID to the auth protocol
3707
3708 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3709
3710         * Fix my name in previous changelog ;)
3711
3712         * python/proxies.py (ProxyObject.__getattr__): add further patch
3713         from Anthony Baxter to throw an AttributeError when python 
3714         __special__ functions are called instead of marshling them over 
3715         the bus (Bug#1685 comment 3).
3716
3717 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3718
3719         * python/Makefile.am: changed to use pyexecdir for the binding
3720         shared libraries (Bug#2494)
3721
3722         * python/exceptions.py: bring exceptions over from the bindings
3723         so they can be used in applications (Bug#2036)
3724         Make all exceptions derive from DBusException
3725
3726         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3727         of classes so that print obj doesn't throw an exception (Bug #1685)
3728
3729 2005-05-03  Ross Burton  <ross@openedhand.com>
3730
3731         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3732         Return if we get an error during registration.  Set up a
3733         weak reference on object to unregister if object is destroyed.
3734         (unregister_gobject): New function.
3735         
3736 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3737
3738         * python/dbus_bindings.pyx.in: 
3739         - added new type classes for hinting to the marashaler what type 
3740         to send over the wire
3741         - added int16 and uint16 marshalers
3742         - Fixed a bug in the type constants that caused int32 to go out
3743         as uint16 over the wire
3744         * python/dbus.py: split up into different files and renamed _dbus.py
3745         * python/__init__.py, python/_util.py, python/decorators.py, 
3746         python/exceptions.py, python/proxies.py, python/services.py,
3747         python/types.py: new files split off from dbus.py
3748         * python/Makefile.am: Add new files, remove dbus.py and 
3749         install all python files to <python module dir>/dbus
3750         * python/examples/*: Added #!/usr/bin/env python to the top of
3751         every example.  Patch provided by Tatavarty Kalyan
3752
3753 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3754
3755         * NEWS: Update to 0.33
3756
3757 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3758
3759         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3760         method for doing async calls
3761         (_pending_call_notification): New C function for handling pendning call
3762         callbacks
3763         (set_notify): New method for setting pending call notification
3764         
3765         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3766         Async capabilities added to remote method calls
3767         (Sender): class removed
3768         (RemoteService): class removed
3769         (ObjectTree): class removed for now
3770         (RemoteObject): Renamed to ProxyObject
3771         (RemoteMethod): Renamed to ProxyMethod
3772         (method): Decorator added for decorating python methods as dbus methods
3773         (signal): Decorator added for decorating python methods as signal emitters
3774         (ObjectType): Metaclass added for generating introspection data and the
3775         method callback vtable
3776         (Interface): Wrapper class added to wrap objects in a dbus interface
3777         (Object): Uses ObjectType as its metaclass and exports Introspect
3778         of the org.freedesktop.DBus.Introspectable interface
3779         (ValidationException, UnknownMethodException): new exceptions
3780
3781         * python/examples/*: Modified to fit with the new bindings
3782
3783 2005-04-23  Havoc Pennington  <hp@redhat.com>
3784
3785         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3786         reported by Tony Houghton
3787
3788         * test/test-service.c (main): test
3789         dbus_connection_get_object_path_data()
3790
3791         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3792         the exact_match
3793         (_dbus_object_tree_get_user_data_unlocked): new function used by
3794         dbus_connection_get_object_path_data()
3795         (do_register): add assertion test for get_user_data_unlocked
3796         (object_tree_test_iteration): more tests
3797
3798         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3799         new function from Dan Reed to let you get the user data from 
3800         dbus_connection_register_object_path()
3801
3802 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3803
3804         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3805         in numerous places that did not account for the NULL terminator
3806         (signature_from_seed): changed the manual string copy loop to 
3807         just use strcpy instead
3808         make check should now pass
3809
3810 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3811
3812         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3813         so that it allows messages that are not signals to pass in 
3814         NULL as the interface.
3815
3816 2005-04-18  David Zeuthen  <davidz@redhat.com>
3817
3818         * glib/dbus-gmain.c (io_handler_destroy_source): 
3819         (timeout_handler_destroy_source, connection_setup_free): 
3820         Also unref the source to avoid memory leaks.
3821
3822 2005-04-13  David Zeuthen  <davidz@redhat.com>
3823
3824         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3825         more reasonable, yet still totally arbitrary, value :-). 
3826
3827 2005-04-13  David Zeuthen  <davidz@redhat.com>
3828
3829         * doc/TODO: Added an "important for 1.0" item about selinux
3830         allow/deny messages
3831
3832 2005-04-13  David Zeuthen  <davidz@redhat.com>
3833
3834         * bus/selinux.c: Add c-file-style to top of file
3835         (log_audit_callback): Don't free the data here anymore
3836         (bus_selinux_check): Don't take spid and tpid since appending
3837         that to auxdata may OOM.
3838         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3839         to the caller if we are OOM by taking an error object.
3840         (bus_selinux_allows_send): -do-
3841
3842         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3843         and bus_selinux_allows_send
3844
3845         * bus/bus.c (bus_context_check_security_policy): Pass error and
3846         pass on OOM thrown by bus_selinux_allows_send()
3847
3848         * bus/services.c (bus_registry_acquire_service): Pass error and
3849         pass on OOM thrown by bus_selinux_allows_acquire_service()
3850
3851 2005-04-13  Havoc Pennington  <hp@redhat.com>
3852
3853         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3854         message at a time to avoid monopolizing the main loop, bug 
3855         #2953 from Benjamin Otte
3856
3857 2005-04-09  Havoc Pennington  <hp@redhat.com>
3858
3859         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3860         possible overlap, fix from Daniel Reed
3861         (fixup_alignment): fix signedness warnings
3862         (_dbus_string_append_unichar): ditto
3863
3864 2005-04-09  Havoc Pennington  <hp@redhat.com>
3865
3866         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3867
3868         * glib/dbus-glib-tool.c (main): fix warning
3869
3870         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3871
3872         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3873         add a new function that can be used in simple applications that
3874         don't have a main loop and are willing to block
3875
3876 2005-04-05  David Zeuthen  <davidz@redhat.com>
3877
3878         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3879
3880         * glib/dbus-gmain.c:
3881         (io_handler_destroy_source): Remove from list of IO handlers
3882         of the ConnectionSetup object
3883         (timeout_handler_destroy_source): -do- for timeout handlers
3884         (io_handler_source_finalized): Don't remove from list since
3885         we now do that in io_handler_destroy_source(). Renamed from
3886         io_handler_source_destroyed
3887         (timeout_handler_source_destroyed): -do- for timeout handlers
3888         (connection_setup_free): It is now safe to iterate over all
3889         IO and timeout handlers as the _destroy_source removes them
3890         from the list synchronously
3891
3892 2005-03-30  Havoc Pennington  <hp@redhat.com>
3893
3894         * configure.in: change check to gtk 2.4
3895
3896         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3897         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3898         to 2.4
3899
3900 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3901
3902         * News: Update 0.32
3903
3904         * HACKING: Fixed realease instructions.  configure.in should be updated to
3905           the next release by the person who made the last release.
3906
3907 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3908
3909         * python/lvalue_cast_post_process.py - removed.  Patch has been
3910           submitted to Pyrex maintainers that fixes gcc4.0 errors
3911
3912         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3913
3914 2005-03-24  Daniel Reed  <n@ml.org>
3915
3916         * tools/Makefile.am: Make print-introspect and
3917         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3918
3919 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3920
3921         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3922
3923         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3924           had in Red Hat packages for a while but for some reason never 
3925           got merged upstream
3926           (_dbus_is_a_number): New checks if a string
3927           can be converted to a number and does the conversion if it can
3928           (_dbus_user_database_lookup): Add check to see if the given username
3929           is a udi.  This allows udi's to be used instead of usernames in the
3930           config file.
3931           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3932           is a gdi.  This allows gdi's to be used instead of groupnames in the
3933           config file.
3934
3935 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3936
3937         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3938           code so that it compiles with gcc4.0
3939
3940         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3941           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3942           results back to dbus_binding.c
3943
3944 2005-03-20  Colin Walters  <walters@verbum.org>
3945
3946         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3947
3948         * configure.in: Require GTK+ 2.6.
3949         
3950 2005-03-20  Colin Walters  <walters@verbum.org>
3951
3952         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3953
3954 2005-03-17  Tom Parker  <palfrey@tevp.net>
3955
3956         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3957         print DBUS_UID_UNSET; instead print passed username.  Also
3958         be sure to actually use gid looked up in cache.
3959         
3960         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3961         for DBUS_GID_UNSET and groupname.
3962
3963 2005-03-17  Colin Walters  <walters@verbum.org>
3964
3965         * bus/print-introspect.c: Move to tools/.
3966         * bus/run-with-tmp-session-bus.sh: Ditto.
3967         
3968         * glib/Makefile.am (dbus-glib-bindings.h): Move
3969         generation to tools/Makefile.am.
3970
3971         * test/glib/run-test.sh: Update to handle move
3972         of run-with-tmp-session-bus.sh.
3973
3974         * test/glib/test-service-glib.c: Update to handle
3975         move of dbus-glib-bindings.h.
3976
3977         * tools/print-introspect.c: Moved here
3978         from bus/, and ported to GLib bindings.
3979
3980         * tools/run-with-tmp-session-bus.sh: Moved here
3981         from bus/.
3982
3983         * tools/Makefile.am: Generate dbus-glib-bindings.h
3984         and dbus-bus-introspect.xml here.
3985
3986         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3987         Update.
3988
3989 2005-03-17  Colin Walters  <walters@verbum.org>
3990
3991         * bus/driver.c (write_args_for_direction): Use
3992         _dbus_string_get_const_data to retrieve string;
3993         _dbus_string_get_const_data_len doesn't actually return
3994         a NULL-terminated substring.
3995
3996         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3997         (main): Change to use org_freedesktop_DBus_request_name
3998         instead of using g_proxy_begin_call/end_call.
3999
4000 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4001
4002         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4003         generating the finalizer.  Fixes from Ben Maurer.
4004
4005 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4006
4007         * mono/BusDriver.cs: Update method names: ListServices
4008         becomes ListNames; GetOwner becomes GetNameOwner.
4009
4010         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4011         onto the eval stack when removing the delegate.
4012
4013 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4014
4015         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4016         LT_CURRENT.  Set it to the autoconf variable.
4017                                                                                 
4018         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4019         classes that disconnects the signal handler delegate from the
4020         service object.  Fixes a big leak of proxy objects on the
4021         client side of things.  Patch from Ben Maurer
4022         <bmaurer@ximian.com>
4023
4024 2005-03-12  Colin Walters  <walters@verbum.org>
4025
4026         * bus/driver.c (write_args_for_direction): New function,
4027         parses a type signature into arguments and outputs to
4028         XML.
4029         (bus_driver_handle_introspect): Use it instead of
4030         hardcoding XML for certain signatures.
4031         
4032         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4033         dependency on dbus-daemon.
4034
4035         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4036         argument, pass it to dbus_binding_tool_output_glib_client.
4037
4038         * glib/dbus-binding-tool-glib.c
4039         (generate_client_glue): Protect against multiple inclusion.
4040         (dbus_binding_tool_output_glib_client): Add
4041         G_BEGIN_DECLS/G_END_DECLS.
4042
4043         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4044         Change to just take iface prefix directly.
4045         (write_formal_parameters): Clarify error message.
4046         (check_supported_parameters): New function; checks to see type
4047         signatures of method parameters are supported.
4048         (generate_client_glue): Handle ignore_unsupported flag.
4049         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4050         parameter.
4051
4052         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4053         --ignore-unsupported by default until glib bindings
4054         support arrays.
4055
4056 2005-03-11  Colin Walters  <walters@verbum.org>
4057
4058         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4059         install it.
4060
4061         * bus/print-introspect.c: New file; prints introspection
4062         data for a given name and object path.
4063
4064         * bus/run-with-tmp-session-bus.sh: New file, refactored
4065         from test/glib/run-test.sh.  Creates a temporary session
4066         bus and runs another program.
4067
4068         * test/glib/run-test.sh: Refactor to invoke
4069         run-with-tmp-session-bus.sh.
4070
4071         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4072         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4073         macros instead of hardcoding.
4074
4075         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4076
4077 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4078
4079         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4080         this unref; it doesn't match up evenly in some codepaths.
4081         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4082         this evenly matches with the ref near the top of this function.
4083
4084 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4085
4086         * dbus/dbus-object-tree.c
4087         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4088         and we try to unregister a path that's not registered, still go
4089         through the process of unlocking and don't just return.
4090
4091 2005-03-09  Colin Walters  <walters@verbum.org>
4092
4093         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4094         to this are generated for client-side wrappers.  Invokes a
4095         D-BUS method and returns reply values.  
4096
4097         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4098         function; writes signature string for argument direction.
4099         (write_args_for_direction): Change to pass input values directly
4100         instead of via address, and fix indentation.
4101         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4102         make generated wrappers inlineable.
4103
4104         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4105         note about using dbus_type_is_fixed.
4106
4107         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4108         dbus/dbus-signature.c as dbus_type_is_fixed.
4109
4110         All callers updated.
4111
4112         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4113         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4114
4115         * dbus/dbus-signature.h: Prototype.
4116
4117         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4118         error printf code.
4119
4120         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4121         appropriate instead of just freeing it.
4122         (main): Free returned strings using g_free.
4123
4124         * test/glib/Makefile.am (test-service-glib-glue.h)
4125         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4126
4127         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4128         simply maps a simple D-BUS type to GType.
4129         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4130         GType.
4131         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4132         initialize the value with it.
4133         (dbus_gvalue_binding_type_from_type): Unused, delete.
4134         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4135         various types instead of unmarshalling to value data directly.
4136         Remove can_convert boolean.
4137         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4138         returning directly instead of using can_convert boolean.
4139         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4140         Stores a GValue in a pointer to a value of its corresponding C
4141         type.
4142
4143         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4144         add dbus_gvalue_store.
4145
4146 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4147
4148         Fix a bunch of lifecycle and memory management problems
4149         in the mono bindings.
4150
4151         * mono/Arguments.cs (Arguments): Implement IDisposable
4152
4153         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4154         strictly a static class.
4155
4156         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4157         delegates into this file.
4158         (Connection): Implement IDisposable.
4159         (Dispose): Disconnect the connection and set the raw connection
4160         pointer to IntPtr.Zero.
4161         (~Connection): Call Dispose().
4162         (RegisterObjectPath): Added.  Manages the registration of object
4163         paths so we can cleanly disconnect them at dispose/finalize time.
4164         (UnregisterObjectPath): Ditto.
4165         (set_RawConnection): Unregister all of the object paths when
4166         changing the underlying DBusConnection.  Add them back onto the
4167         new connection, if any.
4168
4169         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4170         more unmanaged resources anymore, so it's not necessary.  Move all
4171         the DBusObjectPathVTable stuff out of here.
4172         (Handler): Save references to our delegates so that they don't get
4173         finalized.  Call Connection.RegisterObjectPath() instead of
4174         dbus_connection_register_object_path() directly.
4175         (Message_Called): Dispose the message after we're finished with
4176         it.
4177
4178         * mono/Message.cs (Message): Implement IDisposable.
4179         (Dispose): Dispose the Arguments, and set the RawMessage to
4180         IntPtr.Zero.
4181         (SendWithReplyAndBlock): We own the ref to the reply that comes
4182         back from dbus_connection_send_with_reply_and_block() so add a
4183         comment about that and unref it after we've constructed a managed
4184         MethodReturn class around it.  Fixes a big, big leak.
4185
4186         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4187         method.
4188         (BuildSignalHandler): After we've sent the Signal message, dispose
4189         of it.
4190         (BuildMethod): Dispose of the method call and reply messages after
4191         we've sent the message and extracted the data we want from the
4192         reply.
4193
4194         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4195         anymore.
4196         (Service_FilterCalled): Dispose of the message after we're
4197         finished with it.
4198
4199 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4200
4201         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4202         After we attach our pending call to the connection, unref
4203         it.  Fixes a leak.
4204  
4205         * mono/Connection.cs (set_RawConnection): Disconnect our
4206         filter and match callbacks from the old connection and
4207         reconnect them to the new connection, if any.
4208
4209         * mono/DBusType/Array.cs: "Code" is a static member, so
4210         don't use "this" to refer to it.  Fix for stricter checking
4211         in Mono 1.1.4.
4212  
4213         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4214         object path that we pass into unmanaged code.
4215  
4216         * mono/DBusType/String.cs (Append): Don't leak the string
4217         that we pass into unmanged code.
4218
4219 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4220         * NEWS: Update for 0.31
4221
4222         * configure.in: Release 0.31
4223         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4224
4225         * qt/Makefile.am: fixed build
4226
4227         * dbus/Makefile.am: soname bump for libdbus
4228
4229         * glib/Makefile.am: soname bump for libdbus-glib
4230
4231 2005-03-05  Havoc Pennington  <hp@redhat.com>
4232
4233         * dbus/dbus-sysdeps.c:
4234         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4235         value
4236         (_dbus_generate_random_bytes_buffer): fix return value
4237
4238         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4239         checks actually work, from Tom Parker <fdo@tevp.net>
4240
4241 2005-03-01  Colin Walters  <walters@verbum.org>
4242
4243         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4244         functions copied from dbus-glib-tool.c.
4245         (main): Convert lots of error code to use them.
4246         Also add some testing for introspection bits.
4247
4248 2005-03-01  Colin Walters  <walters@verbum.org>
4249         
4250         * doc/TODO: Remove introspection signature TODO.
4251
4252 2005-02-27  Colin Walters  <walters@verbum.org>
4253
4254         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4255         Change return value to const char * instead of int so we can do
4256         full signatures.
4257         (struct PropertyInfo, struct ArgInfo): Store char *.
4258         (property_info_new, arg_info_new): Update parameters, strdup.
4259         (property_info_unref, arg_info_unref): Free.
4260
4261         * glib/dbus-gidl.h: Update prototypes.
4262
4263         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4264         (validate_signature): New function, just validates signature and
4265         sets GError.
4266         (parse_property, parse_arg): Invoke validate_signature.  Store
4267         signature instead of just type code.
4268
4269         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4270         function to return a primary type for a signature, dropping
4271         information about types in container types.
4272         (dbus_gvalue_genmarshal_name_from_type)
4273         (dbus_gvalue_binding_type_from_type)
4274         (dbus_gvalue_ctype_from_type): Update to take full signature
4275          instead of type code.
4276         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4277
4278         * glib/dbus-gvalue.h: Update prototypes for above.
4279
4280         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4281         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4282         (introspect_properties, introspect_signals, write_interface):
4283         Update to handle signatures, and remove usage of
4284         _dbus_gutils_type_to_string.
4285         (handle_introspect): Print out type codes instead of e.g. "string"
4286         in hardcoded introspection XML; also use x_AS_STRING constants
4287         instead of hardcoding in string.
4288
4289         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4290         to string.  Remove usage of _dbus_gutils_type_to_string.
4291
4292         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4293
4294         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4295         deletion.
4296         
4297         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4298         (compute_marshaller_name, generate_glue): Handle signature change
4299         to string.
4300         (write_formal_parameters, write_args_for_direction): Ditto, and
4301         remove FIXME.
4302
4303         * tools/dbus-tree-view.c (type_to_string): Delete.
4304         (info_set_func_text): Update to print full signatures.
4305
4306         * test/glib/test-service-glib.xml: Change types to new
4307         introspection format.
4308
4309 2005-02-26  Havoc Pennington  <hp@redhat.com>
4310
4311         * doc/TODO: remove the "guid" item
4312
4313         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4314         (with_bus_thread_func): use open_private
4315
4316         * dbus/dbus-connection.c (dbus_connection_open_private): new
4317         function that works like the old dbus_connection_open()
4318         (dbus_connection_open): now returns an existing connection if
4319         possible
4320
4321         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4322         through the GUID to the transport
4323
4324         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4325         GUID in hex-encoded form.
4326
4327         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4328         pass GUID argument in to the transport
4329
4330         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4331         guid argument
4332
4333         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4334
4335         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4336
4337 2005-02-25  Havoc Pennington  <hp@redhat.com>
4338
4339         * doc/dbus-specification.xml: document the GUID thing
4340
4341         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4342         globally unique ID for the server, and put a "guid=hexencoded"
4343         field in the address
4344
4345         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4346
4347         * dbus/dbus-message.c: ditto
4348
4349         * dbus/dbus-dataslot.c: ditto
4350
4351         * dbus/dbus-list.c: ditto
4352
4353         * dbus/dbus-internals.h: wait, just include
4354         dbus-threads-internal.h here
4355         
4356         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4357         use in main library
4358
4359         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4360
4361 2005-02-24  Colin Walters  <walters@verbum.org>
4362
4363         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4364
4365 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4366
4367         * glib/Makefile.am: added dbus-gobject.h to sources list
4368         so distcheck doesn't fail
4369         
4370 2005-02-24  Havoc Pennington  <hp@redhat.com>
4371
4372         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4373         you must disconnect before unref, since locking and other things
4374         are screwed up otherwise. Fix assorted other locking stuff.
4375
4376         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4377         fix compilation
4378
4379         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4380         into a private header and don't export from the library
4381
4382         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4383
4384 2005-02-24  Colin Walters  <walters@verbum.org>
4385         
4386         * dbus/dbus-signature.c: New file; implements various functions
4387         related to type signatures.  Includes an interator for parsing,
4388         validation functions.
4389         (dbus_type_is_basic): Moved here from
4390         dbus-marshal-basic.c:_dbus_type_is_basic.
4391         (dbus_type_is_container): Moved here from
4392         dbus-marshal-basic.c:_dbus_type_is_container.
4393
4394         All callers of _dbus_type_is_container and _dbus_type_is_basic
4395         updated, and include dbus-signature.h.
4396
4397         * dbus/dbus-signature.h: New file; prototypes for the above.
4398
4399         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4400         dbus-signature.h.
4401
4402         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4403         function factored out of _dbus_first_type_in_signature.
4404         (_dbus_first_type_in_signature_c_str): New function; returns first
4405         type code for a type signature character.
4406
4407         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4408         handle function moves.
4409
4410         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4411
4412         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4413         function; skips to next complete type in type signature.
4414         Implemented using previous skip_one_complete_type.  Now
4415         skip_one_complete_type just delegates to
4416         _dbus_type_signature_next.
4417
4418         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4419         to dbus-signature.c
4420         (_dbus_type_is_container): Ditto.
4421
4422         * doc/dbus-specification.xml: Update introspection sample to
4423         use real type signatures.
4424
4425         * dbus/dbus-test.h: Prototype signature test.
4426
4427         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4428         signature tests.
4429
4430         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4431
4432 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4433
4434         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4435         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4436
4437 2005-02-21  Colin Walters  <walters@verbum.org>
4438
4439         * dbus/dbus-test-main.c (main): Take optional specific test
4440         argument.
4441
4442         * dbus/dbus-test.c (run_test): New function, runs a test function
4443         with no data directory.
4444         (run_data_test): Like above, but takes data directory.
4445         (dbus_internal_do_not_use_run_tests): Take
4446         specific test argument.  Replace lots of cut n' paste code
4447         with run_test and run_data_test.
4448
4449         * dbus/dbus-test.h: Update prototype for
4450         dbus_internal_do_not_use_run_tests.
4451
4452 2005-02-20  Havoc Pennington  <hp@redhat.com>
4453
4454         Fix bugs reported by Daniel P. Berrange
4455         
4456         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4457         (protected_change_watch): new function
4458         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4459         (_dbus_server_add_watch): change to work like the
4460         dbus-connection.c equivalents; like those, probably kind of
4461         busted, but should at least mostly work for now
4462         (dbus_server_disconnect): drop the lock if we were already
4463         disconnected, patch from Daniel P. Berrange
4464
4465         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4466         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4467         same stuff
4468
4469         * doc/TODO: todo about unscrewing this mess
4470
4471 2005-02-19  Colin Walters  <walters@verbum.org>
4472
4473         * glib/dbus-binding-tool-glib.c
4474         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4475
4476         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4477         as errno.h and sys/stat.h.
4478         (lose): New function, prints error with
4479         newline and exits.
4480         (lose_gerror): Similar, but takes GError for message.
4481         (main): Add --output argument to specify output file to write to,
4482         instead of always printing to stdout.  In this mode, determine
4483         timestamps on source files to see whether any are newer than the
4484         target file.  If not, exit.  Also convert a number of error
4485         messages to use lose (since it's shorter), and switch to using
4486         g_io_channel_shutdown.
4487
4488 2005-02-19  Havoc Pennington  <hp@redhat.com>
4489
4490         * glib/dbus-gobject.c
4491         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4492
4493         * glib/dbus-glib.c: fix doxygen warnings
4494
4495         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4496         is found on an <arg>
4497
4498 2005-02-17  Colin Walters  <walters@verbum.org>
4499
4500         * glib/dbus-gobject.h: Don't export
4501         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4502         
4503         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4504         (invoke_object_method): Handle it.
4505
4506         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4507         Handle rename.
4508         
4509 2005-02-17  Colin Walters  <walters@verbum.org>
4510
4511         * bus/.cvsignore, doc/.cvsignore
4512         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4513         Update.
4514
4515 2005-02-17  Colin Walters  <walters@verbum.org>
4516         
4517         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4518         Rename to DBUS_SERVICE_DBUS.
4519         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4520         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4521         Change the value from "org.freedesktop.Local"
4522         to "org.freedesktop.DBus.Local".
4523         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4524         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4525         DBUS_INTERFACE_INTROSPECTABLE.
4526         Change the value from "org.freedesktop.Introspectable"
4527         to "org.freedesktop.DBus.Introspectable".
4528         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4529         DBUS_INTERFACE_PROPERTIES.
4530         Change the value from "org.freedesktop.Properties"
4531         to "org.freedesktop.DBus.Properties".
4532         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4533         DBUS_INTERFACE_PEER.
4534         Change the value from "org.freedesktop.Peer"
4535         to "org.freedesktop.DBus.Peer".
4536         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4537         DBUS_INTERFACE_LOCAL.
4538         Change the value from "org.freedesktop.Local"
4539         to "org.freedesktop.DBus.Local".
4540
4541         All other users of those constants have been changed.
4542
4543         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4544
4545         * glib/dbus-gobject.c (handle_introspect): Use constants.
4546
4547         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4548
4549 2005-02-17  Colin Walters  <walters@verbum.org>
4550
4551         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4552         (parse_node, parse_interface, parse_method, parse_signal)
4553         (parse_property, parse_annotation): Lose if we're currently in an
4554         annotation.
4555         (parse_annotation): New function.
4556         (parser_start_element, parser_end_element): Handle annotation.
4557         (parse_method, parse_interface): Remove support for c_name attribute,
4558         switch to annotations.
4559
4560         * glib/dbus-gidl.h (interface_info_get_binding_names)
4561         (method_info_get_binding_names)
4562         (interface_info_get_binding_name, method_info_get_binding_name)
4563         (interface_info_set_binding_name, method_info_set_binding_name):
4564         Remove.
4565         (interface_info_get_annotations, method_info_get_annotations)
4566         (interface_info_get_annotation, method_info_get_annotation)
4567         (interface_info_add_annotation, method_info_add_annotation):
4568         Prototype.
4569
4570         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4571         for "bindings".
4572         (struct MethodInfo): Ditto.
4573         Straightfoward conversion of binding methods into annotation methods
4574         as prototyped.
4575
4576         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4577
4578         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4579
4580         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4581         Use new annotation API.
4582
4583         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4584         annotation element.
4585         
4586         * doc/dbus-specification.xml: Discuss introspection annotations,
4587         include list of well-known annotations.
4588
4589         * test/glib/test-service-glib.xml: Make validate against new DTD.
4590
4591 2005-02-17  Colin Walters  <walters@verbum.org>
4592
4593         This patch is based on initial work from
4594         Paul Kuliniewicz <kuliniew@purdue.edu>.
4595
4596         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4597         initialization of GValue from dbus type to here.
4598         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4599         for the "glib-genmarshal" program from a DBus type.
4600         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4601         into the C name for it we use in the glib bindings.
4602         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4603         glib C type (not GValue).
4604         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4605
4606         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4607         from dbus-gobject.c.
4608
4609         * glib/dbus-gutils.h: Prototype it.
4610
4611         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4612         (marshal_dbus_message_to_g_marshaller): Use new shared function
4613         dbus_glib_marshal_dbus_message_to_gvalue_array.
4614
4615         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4616         Will be changed once we have annotations.
4617
4618         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4619         GStaticRWLock.  Callers updated.
4620         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4621         (string_table_next): New function for iterating over zero-terminated
4622         string value array.
4623         (string_table_lookup): New function; retrieves specific entry in
4624         array.
4625         (get_method_data): New function; look up method data in object data chunk.
4626         (object_error_domain_prefix_from_object_info)
4627         (object_error_code_from_object_info): New functions, but not implemented yet.
4628         (method_interface_from_object_info): New function; retrieve interface name.
4629         (method_name_from_object_info): New function; retrieve method name.
4630         (method_arg_info_from_object_info): New function; retrieve argument data.
4631         (arg_iterate): New function; iterates over serialized argument data.
4632         (method_dir_signature_from_object_info): New function; returns a
4633         GString holding type signature for arguments for just one
4634         direction (input or output).
4635         (method_input_signature_from_object_info)
4636         (method_output_signature_from_object_info): New functions.
4637         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4638         converts dbus message arguments into a GValue array.  Used for both
4639         signal handling and method invocation.
4640         (struct DBusGlibWriteIterfaceData): New utility structure.
4641         (write_interface): New function; generate introspection XML for
4642         an interface.
4643         (introspect_interfaces): New function; gathers all interface->methods,
4644         generates introspection XML for them.
4645         (handle_introspect): Invoke introspect_interfaces.
4646         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4647         (lookup_object_and_method): New function; examines an incoming message
4648         and attempts to match it up (via interface, method name, and argument
4649         signature) with a known object and method.
4650         (gerror_domaincode_to_dbus_error_name): New function; converts a
4651         GError domain and code into a DBus error name.  Needs GError data
4652         added to object introspection to work well.
4653         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4654         GError.
4655         (invoke_object_method): New function to invoke an object method
4656         looked up via lookup_object_and_method.  Parses the incoming
4657         message, turns it into a GValue array, then invokes the marshaller
4658         specified in the DBusGMethodInfo.  Creates a new message with
4659         either return values or error message as appropriate.
4660         (gobject_message_function): Invoke lookup_object_and_method and
4661         invoke_object_method.
4662
4663         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4664         (enum DBusBindingOutputMode): New enum for binding output modes.
4665         (pretty_print): Print binding names.
4666         (dbus_binding_tool_error_quark): GError bits.
4667         (version): Fix typo.
4668         (main): Create GIOChannel for output.  Parse new --mode argument,
4669         possible values are "pretty-print", "glib-server", "glib-client".
4670         Use mode to invoke appropriate function.
4671         
4672         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4673
4674         * glib/dbus-glib-tool.h: New header, just includes GError bits
4675         for now.
4676
4677         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4678         maps binding style to name.
4679         (struct MethodInfo): Ditto.
4680         (get_hash_keys, get_hash_key): Utility function, returns keys for
4681         a GHashTable.
4682         (interface_info_new, method_info_new): Initialize bindings.
4683         (interface_info_unref, method_info_unref): Destroy bindings.
4684         (method_info_get_binding_names, method_info_get_binding_name)
4685         (interface_info_get_binding_names, interface_info_get_binding_name):
4686         Functions for retrieving binding names.
4687         (method_info_set_binding_name, interface_info_set_binding_name):
4688         Functions for setting binding names.
4689
4690         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4691         for glib binding generation.
4692
4693         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4694         and client-side glib glue generation.
4695
4696         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4697         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4698         dbus-glib-tool.h.
4699
4700         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4701         of using GClosureMarshal directly.
4702         (struct DBusGObjectInfo): Add n_infos member.
4703
4704         * test/glib/test-service-glib.xml: New file; contains introspection data
4705         for MyTestObject used in test-service-glib.c.
4706
4707         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4708         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4709         (my_object_uppercase, my_object_many_args): New test methods.
4710         (main): Use dbus_g_object_class_install_info to include generated object
4711         info.
4712
4713         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4714         as well as client-side bindings.
4715
4716         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4717         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4718         using both the dbus_gproxy stuff directly as well as the generated bindings.
4719
4720 2005-02-15  Havoc Pennington  <hp@redhat.com>
4721
4722         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4723         complete a pending call, don't run filters first.
4724
4725         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4726         dbus_pending_call_steal_reply
4727
4728         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4729         _dbus_connection_block_pending_call
4730         (dbus_pending_call_get_reply): change to steal_reply and return a
4731         ref
4732
4733         * dbus/dbus-connection.c
4734         (dbus_connection_send_with_reply_and_block): port to work in terms
4735         of DBusPendingCall
4736         (_dbus_connection_block_pending_call): replace block_for_reply
4737         with this
4738
4739 2005-02-14  Havoc Pennington  <hp@redhat.com>
4740
4741         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4742         properly handle looking up group information by name; fix 
4743         from j@bootlab.org
4744
4745 2005-02-13  Havoc Pennington  <hp@redhat.com>
4746
4747         * dbus/dbus-connection.c (dbus_connection_return_message) 
4748         (dbus_connection_borrow_message): hold dispatch lock while message
4749         is outstanding
4750         (_dbus_connection_block_for_reply): hold dispatch lock while we
4751         block for the reply, so nobody steals our reply
4752         (dbus_connection_pop_message): hold the dispatch lock while we
4753         pluck the message
4754
4755 2005-02-13  Havoc Pennington  <hp@redhat.com>
4756
4757         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4758         (_dbus_connection_release_dispatch)
4759         (_dbus_connection_acquire_io_path)
4760         (_dbus_connection_release_io_path): make the mutex and condvar
4761         control access to the "acquired" flag. Drop the connection lock
4762         while waiting on the condvar. Hopefully these are baby steps in
4763         roughly the right direction.
4764
4765 2005-02-13  Havoc Pennington  <hp@redhat.com>
4766
4767         * dbus/dbus-connection.c: use separate mutexes for the condition
4768         variables; this is some kind of baseline for sanity, but the
4769         condition variables still aren't used correctly afaict
4770
4771 2005-02-13  Havoc Pennington  <hp@redhat.com>
4772
4773         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4774         fix a double-unlock
4775
4776         * dbus/dbus-connection.c
4777         (_dbus_connection_detach_pending_call_unlocked): add this
4778
4779         Initial semi-correct pass through to fix thread locking; there are
4780         still some issues with the condition variable paths I'm pretty
4781         sure
4782         
4783         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4784         lock/unlock calls
4785
4786         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4787         rename to add _unlocked
4788         (struct DBusConnection): move "dispatch_acquired" and
4789         "io_path_acquired" to use only one bit each.
4790         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4791         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4792         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4793         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4794         (_dbus_connection_remove_timeout) 
4795         (_dbus_connection_toggle_timeout): drop lock when calling out to
4796         user functions; done in a hacky/bad way.
4797         (_dbus_connection_send_and_unlock): add a missing unlock
4798         (_dbus_connection_block_for_reply): add a missing unlock
4799
4800         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4801         drop lock in a hacky probably unsafe way to call out to user
4802         function
4803
4804 2005-02-12  Havoc Pennington  <hp@redhat.com>
4805
4806         * tools/dbus-tree-view.c (info_set_func_text): display more
4807         details on args
4808
4809         * bus/driver.c (bus_driver_handle_list_services): list the bus
4810         driver
4811
4812         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4813
4814         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4815         (method_info_get_n_args): new function
4816
4817 2005-02-12  Havoc Pennington  <hp@redhat.com>
4818
4819         * bus/driver.c (bus_driver_handle_introspect): add introspection
4820         for bus driver
4821
4822 2005-02-12  Havoc Pennington  <hp@redhat.com>
4823
4824         * bus/driver.c: put the signature of each bus driver method in the
4825         table of handlers and check it on incoming calls; this isn't
4826         really useful, but going to add introspect support in a minute.
4827
4828 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4829
4830         * mono/Connection.cs: The unpredictability of finalizers in mono
4831         prevents us from deterministically disconnecting the filters from
4832         the Service class's finalizer, so move tracking of filters and
4833         matches here.  Add API for that.
4834
4835         * mono/Service.cs: Remove the code, add code which calls the
4836         methods now on the Connection class.
4837
4838 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4839
4840         * python/dbus.py (class Sender): added to support dbus signals better
4841         (Bus::add_signal_receiver): added expand_args parameter which defaults
4842         to True.  When expand args is True the signal handler will pass the 
4843         message arguments as parameters to the signal handler.  If False
4844         revert to previous behavior where the signal handler must get the
4845         argument list from the message.  This is to help port applications
4846         like HAL that have a tendancy to send variable length argument lists.
4847         self._match_rule_to_receivers is now a dict of dicts.
4848         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4849         removing it from a list
4850         (Bus::_signal_func): change signal handlers so that interface,
4851         signal_name, service, path and message are packed into a Sender
4852         object and that is passed to the handler.  If expand_args is True
4853         extract the args list from the message and append it to the parameter
4854         list
4855         
4856         * python/dbus_bindings.pyx.in (class Signature): added to support 
4857         signiature types
4858         (MessageIter::__init__): changed iteration limit to match D-BUS
4859         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4860         STRUCT and VARIENT type support
4861         (MessageIter::python_value_to_dbus_sig): made recursive to support
4862         recursive types
4863         (MessageIter::append*): added Signature, dict, tuple 
4864         support
4865
4866         * python/examples/example-client.py: added examples of getting tuples
4867         and dicts
4868
4869         * python/examples/example-service.py: added examples of sending tuples
4870         and dicts
4871
4872         * python/examples/example-signal-recipient.py: Fixed to handle new
4873         signal callback format
4874
4875 2005-02-10  Havoc Pennington  <hp@redhat.com>
4876
4877         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4878         (call dbus_g_proxy_add_signal)
4879
4880         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4881         escape the hostname
4882         (_dbus_server_new_for_domain_socket): escape the path
4883
4884         * dbus/dbus-address.c (dbus_address_escape_value): new
4885         (dbus_address_unescape_value): new
4886         (dbus_parse_address): unescape values
4887
4888         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4889
4890         * doc/dbus-specification.xml: explain how to escape values in
4891         addresses
4892
4893 2005-02-10  Havoc Pennington  <hp@redhat.com>
4894
4895         * dbus/dbus-message-factory.c (generate_special): modify test to
4896         avoid using a non-basic dict key
4897
4898         * dbus/dbus-marshal-validate-util.c: add test for the below
4899
4900         * doc/dbus-specification.xml: require that dict keys are a basic
4901         type
4902
4903         * dbus/dbus-marshal-validate.c
4904         (_dbus_validate_signature_with_reason): require that dict key is a
4905         basic type
4906
4907 2005-02-10  Havoc Pennington  <hp@redhat.com>
4908
4909         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4910         change to be _and_unlock instead of _unlocked
4911
4912         * dbus/dbus-connection.c
4913         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4914         have no_update so we can find this bug quickly in future
4915
4916 2005-02-10  Havoc Pennington  <hp@redhat.com>
4917
4918         * dbus/dbus-message-util.c (verify_test_message): tests for string
4919         array
4920
4921         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4922         support for arrays of string/signature/path
4923
4924 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4925
4926         * dbus/dbus-connection.c
4927         (_dbus_connection_queue_received_message_link,
4928         _dbus_connection_message_sent): Add the path to
4929         the verbose output.
4930         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4931         _dbus_connection_send_preallocated_unlocked(), updated the
4932         dispatch status, and unlocks.  Fixes a bug where certain
4933         situations (like a broken pipe) could cause a Disconnect message
4934         to not be sent, tricking the bus into thinking a service was still
4935         there when the process had quit.
4936         (_dbus_connection_send_preallocated): Call
4937         _dbus_connection_send_preallocated_and_unlock().
4938         (_dbus_connection_send_and_unlock): Added.  Calls
4939         _dbus_connection_send_preallocated_and_unlock().
4940         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4941         (dbus_connection_send_with_reply): Update the dispatch status and
4942         unlock.
4943
4944         * mono/Service.cs (~Service): Added.  Removes the filter so that
4945         we don't get unmanaged code calling back into a GCed delegate.
4946         (RemoveFilter); Added.
4947
4948 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4949
4950         * dbus/dbus-message.c (dbus_message_iter_open_container):
4951         - Removed check for iterator type being an array because
4952         get_arg_type does not work with writer iterators
4953         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4954
4955 2005-02-07  Havoc Pennington  <hp@redhat.com>
4956
4957         * doc/dbus-specification.xml: some more language cleanups; add
4958         stuff about how to deal with invalid protocol and extension
4959         points; add _ to allowed chars in auth commands; add EXTENSION_
4960         auth command prefix
4961
4962 2005-02-06  Havoc Pennington  <hp@redhat.com>
4963
4964         * s/expected/required/ in a couple places for clarity
4965
4966 2005-02-07  Colin Walters  <walters@verbum.org>
4967
4968         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4969         sender or proposed_recipient.
4970
4971 2005-02-06  Havoc Pennington  <hp@redhat.com>
4972
4973         * dbus/dbus-message-factory.c (generate_special): more tests
4974
4975         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4976         array length that exceeds the maximum
4977
4978 2005-02-05  Havoc Pennington  <hp@redhat.com>
4979
4980         * dbus/dbus-message-factory.c (generate_special): more test cases,
4981         increasing coverage
4982
4983         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4984         reason why a signature was invalid
4985
4986         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4987         skip the length of the string before we look at it in validation
4988
4989         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4990         equal_substring
4991
4992         * dbus/dbus-message.c (_dbus_message_loader_new): default
4993         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4994
4995 2005-02-05  Havoc Pennington  <hp@redhat.com>
4996
4997         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4998         if the signature of a variant was empty
4999         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5000         struct with no element type)
5001
5002         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5003         mangled messages to break things
5004
5005 2005-02-04  Havoc Pennington  <hp@redhat.com>
5006
5007         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5008         g_quark_try_string() so it actually can return 0
5009         (dbus_g_proxy_connect_signal): ditto
5010
5011 2005-02-04  Havoc Pennington  <hp@redhat.com>
5012
5013         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5014         bogus warning
5015         (tristring_from_message): assert cleanly on null path/interface
5016         (should not be possible though I decided later)
5017         (dbus_g_proxy_dispose): move proxy manager unregistration here
5018         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5019         g_return_if_fail() checks
5020
5021 2005-02-04  Havoc Pennington  <hp@redhat.com>
5022
5023         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5024
5025         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5026         (with some minor changes)
5027
5028         * doc/dbus-specification.xml: add deprecated attribute to
5029         introspection format
5030
5031 2005-01-31  Havoc Pennington  <hp@redhat.com>
5032
5033         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5034         think it's sort of right
5035
5036 2005-01-30  Havoc Pennington  <hp@redhat.com>
5037
5038         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5039
5040 2005-01-30  Havoc Pennington  <hp@redhat.com>
5041
5042         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5043
5044         * autogen.sh: change to autotools 1.9
5045
5046         * glib/dbus-gproxy.c: completely change how signals work
5047         (dbus_g_proxy_add_signal): new function to specify signature of a
5048         signal
5049         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5050         and g_warning if the incoming message has the wrong signature.
5051
5052 2005-01-30  Havoc Pennington  <hp@redhat.com>
5053
5054         * tools/dbus-names-model.c (have_names_notify): fix this
5055
5056         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5057         up the string array handling a bit 
5058
5059 2005-01-30  Havoc Pennington  <hp@redhat.com>
5060
5061         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5062         (dbus_g_pending_call_cancel): new function
5063
5064         * dbus/dbus-glib.h: move GType decls for connection/message here;
5065         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5066         here, just kind of rationalizing how we handle all that
5067
5068         * tools/dbus-names-model.c: new file for a tree model listing the
5069         services on a bus
5070
5071         * tools/dbus-tree-view.c (model_new): use proper typing on the
5072         model rows
5073
5074 2005-01-30  Havoc Pennington  <hp@redhat.com>
5075
5076         * glib/dbus-gmain.c: add a custom GSource back that just checks
5077         whether the message queue has anything in it; otherwise, there are 
5078         cases where we won't see messages in the queue since there was no 
5079         IO visible to the glib main loop
5080
5081         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5082         increase default message timeout to 25 seconds
5083
5084 2005-01-30  Havoc Pennington  <hp@redhat.com>
5085
5086         * test/glib/test-profile.c (no_bus_stop_server): remove the
5087         warning about the g_warning that I just fixed
5088
5089         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5090         custom source, seems to be a lot easier to understand and work
5091         better.
5092
5093 2005-01-30  Havoc Pennington  <hp@redhat.com>
5094
5095         I think this main loop thing is conceptually broken, but here are 
5096         some band aids. I'll maybe rewrite it in a minute.
5097         
5098         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5099         custom GSource, so don't pass it in; confusing
5100         (gsource_server_finalize, gsource_connection_finalize): add
5101         finalize handlers that remove all the watches.  
5102
5103 2005-01-30  Havoc Pennington  <hp@redhat.com>
5104
5105         * glib/dbus-gobject.c (introspect_properties): fix the XML
5106         generated
5107
5108         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5109         which effectively detects the use of freed messages
5110
5111         * glib/dbus-gobject.c (handle_introspect): modify and return the
5112         reply message instead of the incoming message
5113
5114         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5115         gee, maybe it should SEND THE XML instead of just making a string
5116         and freeing it again ;-)
5117
5118         * tools/dbus-print-message.c (print_message): improve printing of
5119         messages
5120
5121         * configure.in: add debug-glib.service to the output
5122
5123 2005-01-30  Havoc Pennington  <hp@redhat.com>
5124
5125         dbus-viewer introspected and displayed the bus driver
5126         
5127         * dbus/dbus-object-tree.c 
5128         (object_tree_test_iteration): add tests for a handler registered on "/"
5129
5130         * dbus/dbus-object-tree.c
5131         (_dbus_decompose_path): fix to handle path "/" properly
5132         (run_decompose_tests): add tests for path decomposition
5133         
5134         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5135         properly
5136
5137         * glib/dbus-gobject.c (handle_introspect): fix quotes
5138
5139         * test/glib/run-test.sh: support launching the bus, then running
5140         dbus-viewer
5141
5142         * test/glib/test-service-glib.c (main): put in a trivial gobject
5143         subclass and register it on the connection
5144
5145         * bus/driver.c (bus_driver_handle_introspect): implement
5146         introspection of the bus driver service
5147
5148         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5149         identifiers, doctype decl
5150
5151         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5152         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5153         returning the service unchanged.
5154         (bus_driver_handle_message): remove old check for reply_serial in
5155         method calls, now the message type deals with that
5156         (bus_driver_handle_message): handle NULL interface
5157
5158         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5159
5160         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5161         -1 for len
5162
5163         * tools/dbus-viewer.c: add support for introspecting a service on
5164         a bus
5165
5166         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5167         (dbus_g_pending_call_unref): add
5168
5169 2005-01-29  Havoc Pennington  <hp@redhat.com>
5170
5171         * tools/dbus-tree-view.c: add support for displaying properties.
5172         (run dbus-viewer with an introspect xml file as arg, then resize
5173         the window so the tree elements show up, not sure what that is)
5174
5175         * glib/dbus-gobject.c (handle_introspect): return
5176         org.freedesktop.Properties and org.freedesktop.Introspectable
5177         interfaces when we are introspected.
5178
5179         * doc/dbus-specification.xml: allow empty interface name when 
5180         Get/Set a property
5181
5182 2005-01-29  Havoc Pennington  <hp@redhat.com>
5183
5184         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5185         though it uses glib, it could be extended for any binding in
5186         principle
5187
5188         * glib/dbus-gobject.c (gobject_message_function): change to the
5189         new way properties work
5190
5191         * dbus/dbus-protocol.h: add the new interfaces
5192
5193         * doc/dbus-specification.xml: document the introspection format,
5194         Introspectable interface, and add an org.freedesktop.Properties
5195         interface.
5196
5197         * glib/dbus-gparser.c: add support for a <property> element
5198
5199         * glib/dbus-gidl.c: add PropertyInfo
5200
5201         * glib/dbus-gobject.c (handle_introspect): put the outermost
5202         <node> outside the signal and property descriptions.
5203         (introspect_properties): export properties as <property> rather
5204         than as method calls
5205
5206 2005-01-28  Havoc Pennington  <hp@redhat.com>
5207
5208         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5209         related to authentication protocol
5210
5211 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5212
5213         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5214                 - BUS_ACTIVATION -> BUS_STARTER
5215                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5216                 - class MessageIter (__init__): Added recursion checking 
5217                 so we throw a nice error instead of just disconnecting from the
5218                 bus.
5219                 (get): Added arg_type parameter for recursion.
5220                 Removed the nil type
5221                 Added signiture type placeholder (not implemented)
5222                 Added struct type placeholder (not implemented)
5223                 Added varient type placeholder (not implemented)
5224                 Commented out dict type for now     
5225                 (get_element_type): renamed from get_array_type
5226                 (get_*): changed to use the dbus_message_iter_get_basic API
5227                 (get_*_array): removed in favor of recursive get_array method
5228                 (get_array): new recursive method which calls get to marshal
5229                 the elements of the array
5230                 (value_to_dbus_sig): New method returns the corrasponding
5231                 dbus signiture to a python value
5232                 (append): Comment out dict handling for now
5233                 Handle lists with the new recursive API
5234                 Comment out None handling for now
5235                 (append_nil): removed
5236                 (append_*): changed to use dbus_message_iter_append_basic API
5237                 (append_*_array): removed in favor of recursive append_array 
5238                 method
5239                 (__str__): Make it easier to print out recursive iterators
5240                 for debugging
5241                 - class Message (__str__): moved type inspection to the
5242                 MessageIter class' __str__ method
5243                 (get_iter): Added an append parameter wich defaults to False
5244                 If True use the new API's to create an append iterator
5245
5246         * python/dbus.py: Update to use new bindings API
5247                 - TYPE_ACTIVATION -> TYPE_STARTER
5248                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5249                 - class ActivationBus -> class StarterBus
5250                 - class RemoteObject (__call__): get an append iterator
5251                 - (_dispatch_dbus_method_call): get an append iterator
5252                 - class Object (emit_signal): get an append iterator
5253
5254         * python/examples/: Fixed up the examples to work with the new API
5255                 
5256 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5257
5258         * configure.in: Bump version up to 0.30.
5259
5260         * HACKING: Add a release item to bump the version number up after 
5261         a release.
5262
5263 2005-01-28  Havoc Pennington  <hp@redhat.com>
5264
5265         * doc/dbus-specification.xml: update to describe 16-bit types and
5266         dict entries
5267
5268         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5269         assertion
5270
5271         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5272         type
5273
5274         * dbus/dbus-marshal-recursive.c: implement
5275
5276 2005-01-27  Havoc Pennington  <hp@redhat.com>
5277
5278         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5279
5280         * configure.in: find the right type for 16 and 32 bit ints as well
5281         as 64
5282
5283         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5284         the 16-bit types so people don't have to stuff them in 32-bit or
5285         byte arrays.
5286
5287 2005-01-27  Havoc Pennington  <hp@redhat.com>
5288
5289         * dbus/dbus-message.c: byteswap the message if you init an
5290         iterator to read/write from it
5291         
5292         * dbus/dbus-marshal-byteswap.c: new file implementing 
5293         _dbus_marshal_byteswap()
5294
5295         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5296
5297 2005-01-26  Havoc Pennington  <hp@redhat.com>
5298         
5299         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5300         build, apparently - nobody noticed?)
5301         
5302 2005-01-26  Havoc Pennington  <hp@redhat.com>
5303
5304         * dbus/dbus-marshal-recursive.h: remove todo comment
5305
5306 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5307
5308         * Land the mono binding changes to conform to the new APIs.
5309
5310         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5311         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5312
5313         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5314         type code as a string.
5315         (InitAppending): Rename dbus_message_append_iter_init() to
5316         dbus_message_iter_init_append().
5317
5318         * mono/BusDriver.cs: Rename ServiceEventHandler to
5319         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5320         Rename ServiceOwnerChanged to NameOwnerChanged.
5321
5322         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5323         underlying C call.
5324
5325         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5326
5327         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5328         dbus_bus_acquire_service() to dbus_bus_request_name().
5329
5330         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5331         of Type.UnderlyingSystemType to get the correct element type for
5332         the array.
5333         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5334         dbus_message_get_{element|arg}_type() instead of
5335         dbus_message_iter_init_array_iterator().
5336         (Append): Replace dbus_message_iter_append_array() with
5337         dbus_message_iter_open_container() and
5338         dbus_message_iter_close_container().
5339
5340         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5341         types have been removed.
5342         
5343         * mono/DBusType/*.cs: Replace calls of
5344         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5345         but specify the type in the DllImport extern declaration.  Ditto
5346         for dbus_message_iter_append_[type]() ->
5347         dbus_message_iter_append_basic().
5348
5349         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5350         NameOwnerChangedHandler.
5351
5352 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5353
5354         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5355                 - get_base_service -> get_unique_name
5356                 - bus_get_base_service -> bus_get_unique_name
5357                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5358                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5359                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5360                 - bus_activate_service -> bus_start_service_by_name
5361                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5362                 - bus_acquire_service -> bus_request_name
5363                 - dbus_bus_acquire_service -> dbus_bus_request_name
5364                 - bus_service_exists -> bus_name_has_owner
5365                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5366
5367         * python/dbus.py: Rename of methods
5368                 - activate_service -> start_service_by_name
5369                 - bus_acquire_service -> bus_request_name
5370                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5371                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5372
5373         
5374 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5375
5376         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5377         signature for the method that can't be found.
5378
5379         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5380         the message has any arguments, we need to call
5381         _dbus_type_reader_get_current_type(), not
5382         _dbus_type_reader_has_next().
5383
5384 2005-01-24  Havoc Pennington  <hp@redhat.com>
5385
5386         * dbus/dbus-message-factory.c: more testing of message validation
5387
5388         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5389         header
5390
5391 2005-01-23  Havoc Pennington  <hp@redhat.com>
5392
5393         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5394         get this all working, not many tests in the framework yet though
5395
5396 2005-01-22  Havoc Pennington  <hp@redhat.com>
5397
5398         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5399         tutorial, based on work from David Wheeler.
5400
5401 2005-01-21  Havoc Pennington  <hp@redhat.com>
5402
5403         * dbus/dbus-bus.c: add more return_if_fail checks
5404
5405         * dbus/dbus-message.c (load_message): have the "no validation"
5406         mode (have to edit the code to toggle the mode for now though)
5407
5408         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5409         skips all validation; I want to use this at least for benchmark
5410         baseline, I'm not sure if it should be a publicly-available switch.
5411
5412 2005-01-21  Havoc Pennington  <hp@redhat.com>
5413
5414         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5415         toplevel doxygen group as the low-level API stuff
5416
5417         * dbus/dbus.h: note that libdbus is the low-level API
5418
5419 2005-01-20  Havoc Pennington  <hp@redhat.com>
5420
5421         * update-dbus-docs.sh: script to update docs on the web site, only
5422         works for me though. neener.
5423
5424 2005-01-20  Havoc Pennington  <hp@redhat.com>
5425
5426         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5427         code can reveal bugs in it
5428
5429 2005-01-20  Havoc Pennington  <hp@redhat.com>
5430
5431         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5432         select() version, patches from Tor Lillqvist
5433
5434 2005-01-20  Havoc Pennington  <hp@redhat.com>
5435
5436         * doc/dbus-tutorial.xml: replace > with &gt;
5437
5438         * bus/services.c (bus_registry_acquire_service): validate the name
5439         and return a better error if it's no good.
5440
5441         * doc/dbus-specification.xml: note NO_AUTO_START change
5442
5443         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5444         from AUTO_START, we're toggling the default
5445
5446         * bus/dispatch.c: adapt the tests to change of auto-start default
5447
5448 2005-01-18  Havoc Pennington  <hp@redhat.com>
5449
5450         * rename dbus-daemon-1 to dbus-daemon throughout
5451
5452 2005-01-18  Havoc Pennington  <hp@redhat.com>
5453
5454         * Throughout, grand renaming to strip out the use of "service",
5455         just say "name" instead (or "bus name" when ambiguous).  Did not
5456         change the internal code of the message bus itself, only the
5457         programmer-facing API and messages.
5458         
5459         * doc/dbus-specification.xml: further update the message bus section
5460         
5461         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5462         in error case
5463
5464 2005-01-17  Havoc Pennington  <hp@redhat.com>
5465
5466         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5467         ever
5468
5469         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5470         "invalid name character" not only non-ASCII
5471
5472         * doc/dbus-specification.xml: further update spec, message bus 
5473         parts are still out-of-date but the marshaling etc. stuff is now
5474         accurate-ish
5475
5476 2005-01-17  Havoc Pennington  <hp@redhat.com>
5477
5478         * doc/dbus-specification.xml: partially update spec
5479
5480 2005-01-17  Havoc Pennington  <hp@redhat.com>
5481
5482         * Throughout, align variant bodies according to the contained
5483         type, rather than always to 8. Should save a fair bit of space in
5484         message headers.
5485         
5486         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5487         fix handling of case where p == end
5488
5489         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5490
5491 2005-01-17  Havoc Pennington  <hp@redhat.com>
5492
5493         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5494
5495         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5496         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5497         are marshaling/unmarshaling a boolean.
5498
5499 2005-01-16  Havoc Pennington  <hp@redhat.com>
5500
5501         This is about it on what can be disabled/deleted from libdbus
5502         easily, back below 150K anyhow. Deeper cuts are more work than 
5503         just turning the code off as I've done here.
5504         
5505         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5506         signed int convenience funcs
5507
5508         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5509         verbose mode
5510
5511         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5512         things out of libdbus
5513
5514         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5515         
5516         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5517         tests-enabled-only, though it should probably be deleted)
5518
5519         * dbus/dbus-message-util.c: same stuff
5520
5521         * dbus/dbus-auth-util.c: same stuff
5522
5523 2005-01-16  Havoc Pennington  <hp@redhat.com>
5524
5525         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5526
5527         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5528         way for stripping down dbus-userdb.c stuff included in libdbus.
5529         Rename _dbus_parse_uid for consistency.
5530
5531 2005-01-16  Havoc Pennington  <hp@redhat.com>
5532
5533         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5534         name the assertion failed in
5535
5536         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5537         (_dbus_return_val_if_fail): assert that the name of the function
5538         containing the check doesn't start with '_', since we only want to 
5539         use checks on public functions
5540         
5541         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5542         checks to assertions
5543
5544         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5545         change checks to asserts for private function
5546
5547         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5548         to asserts for private function
5549
5550         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5551         broken assertion that was breaking make check
5552         (_dbus_type_reader_array_is_empty): remove this rather than fix
5553         it, was only used in assertions
5554
5555 2005-01-16  Havoc Pennington  <hp@redhat.com>
5556
5557         * test/unused-code-gc.py: hacky script to find code that's used
5558         only by the bus (not libdbus) or used only by tests or not used at
5559         all. It has some false alarms, but looks like we can clean up a
5560         lot of size from libdbus.
5561
5562         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5563         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5564         
5565 2005-01-16  Havoc Pennington  <hp@redhat.com>
5566
5567         * Add and fix docs according to Doxygen warnings throughout
5568         source.
5569         
5570         * dbus/dbus-marshal-recursive.c
5571         (_dbus_type_reader_array_is_empty): change this to just call
5572         array_reader_get_array_len() and make it static
5573
5574         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5575         from get_array_type
5576         (dbus_message_iter_init_append): rename from append_iter_init
5577
5578         * dbus/dbus-marshal-recursive.c
5579         (_dbus_type_reader_get_element_type): rename from
5580         _dbus_type_reader_get_array_type
5581
5582 2005-01-15  Havoc Pennington  <hp@redhat.com>
5583
5584         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5585
5586         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5587         when DBUS_DISABLE_ASSERT
5588         (_dbus_marshal_set_basic): be sure we align for the string length
5589
5590         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5591         this look faster
5592
5593         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5594         inline macro version
5595         (_dbus_string_set_byte): provide inline macro version
5596
5597 2005-01-15  Havoc Pennington  <hp@redhat.com>
5598
5599         * Land the new message args API and type system.
5600
5601         This patch is huge, but the public API change is not 
5602         really large. The set of D-BUS types has changed somewhat, 
5603         and the arg "getters" are more geared toward language bindings;
5604         they don't make a copy, etc.
5605
5606         There are also some known issues. See these emails for details
5607         on this huge patch:
5608         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5609         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5610         
5611         * dbus/dbus-marshal-*: all the new stuff
5612
5613         * dbus/dbus-message.c: basically rewritten
5614
5615         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5616         freed blocks to be all non-nul bytes so using freed memory is less
5617         likely to work right
5618
5619         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5620         DBUS_FAIL_MALLOC=N environment variable, so you can do
5621         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5622         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5623         thorough.
5624
5625         * qt/message.cpp: port to the new message args API
5626         (operator<<): use str.utf8() rather than str.unicode()
5627         (pretty sure this is right from the Qt docs?)
5628
5629         * glib/dbus-gvalue.c: port to the new message args API
5630
5631         * bus/dispatch.c, bus/driver.c: port to the new message args API
5632
5633         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5634         "locked" flag to TRUE and align_offset to 0; I guess we never
5635         looked at these anyhow, but seems cleaner.
5636
5637         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5638         move allocation padding macro to this header; use it to implement
5639         (_DBUS_STRING_STATIC): ability to declare a static string.
5640
5641         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5642         change to return TRUE if the interface is not set.
5643
5644         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5645         to dbus-marshal-validate.[hc]
5646
5647         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5648         dbus-internals.c
5649
5650         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5651         to dbus-marshal-*.[hc]
5652
5653         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5654         function here from dbus-marshal.c
5655
5656 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5657
5658         * NEWS: Update for 0.23.
5659
5660         * configure.in: Release 0.23.
5661
5662 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5663
5664         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5665         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5666         behind.
5667
5668         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5669         uninstall"
5670
5671         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5672         is an enum, get the enum's underlying type.  Another mono
5673         1.1.3 fix.
5674
5675 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5676
5677         Patch from Sjoerd Simons <sjoerd@luon.net>
5678
5679         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5680         DESTDIR.  It breaks stuff.
5681
5682 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5683
5684         Patch from Tambet Ingo <tambet@ximian.com>
5685
5686         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5687         calling type.GetElementType().  The code previously depended on
5688         broken Mono behavior, which was fixed in Mono 1.1.3.
5689
5690         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5691         Activator.CreateInstance() so that the class's constructor is
5692         called with the right parameters.
5693
5694 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5695
5696         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5697
5698         * dbus/dbus-connection.c
5699         (_dbus_connection_queue_received_message_link): Call
5700         _dbus_connection_remove_timeout() instead of the _locked()
5701         variant, since it's always called from
5702         _dbus_connection_handle_watch(), which handles the locking.
5703         Removed the _locked() variant since it's no longer used.
5704
5705 2005-01-03  Havoc Pennington  <hp@redhat.com>
5706
5707         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5708         return
5709         
5710 2004-12-26  Havoc Pennington  <hp@redhat.com>
5711
5712         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5713
5714 2005-01-03  Havoc Pennington  <hp@redhat.com>
5715
5716         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5717         floating point
5718
5719         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5720
5721 2005-01-02  Havoc Pennington  <hp@redhat.com>
5722
5723         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5724
5725 2005-01-01  Havoc Pennington  <hp@redhat.com>
5726
5727         * configure.in: add -Wfloat-equal
5728
5729 2005-01-01  Havoc Pennington  <hp@redhat.com>
5730
5731         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5732         for a variety of reasons '==' doesn't do this.
5733
5734 2004-12-31  Havoc Pennington  <hp@redhat.com>
5735
5736         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5737         I keep wishing I had
5738
5739 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5740
5741         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5742
5743 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5744
5745         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5746         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5747         dbus-protocol.h.  Because they are defines and not enums they are not
5748         autogenerated.
5749
5750 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5751
5752         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5753         dbus_bus_activate_service
5754
5755         * python/dbus.py (Bus.activate_service): activate a service on the
5756         bus.
5757
5758 2004-12-24  Havoc Pennington  <hp@redhat.com>
5759
5760         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5761         file format has also changed and I haven't adapted to that yet
5762         
5763         * Makefile.am: load .gcno files from latest gcc
5764
5765 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5766         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5767
5768         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5769         lowlevel binding
5770
5771         * python/dbus.py (get_unix_user): Added binding to 
5772         call dbus_bindings.bus_get_unix_user
5773
5774         * python/extract.py: Modified the proto_pat regex to
5775         handle unsigned long
5776
5777 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5778
5779         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5780         better POSIX compliance.
5781
5782 2004-12-19  Havoc Pennington  <hp@redhat.com>
5783
5784         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5785         (_dbus_string_insert_8_aligned): new functions
5786
5787         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5788
5789 2004-12-18  Havoc Pennington  <hp@redhat.com>
5790
5791         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5792         macro
5793
5794         * dbus/dbus-message.c: fix a comment, and add a still-unused
5795         not-implemented function
5796
5797         * dbus/dbus-marshal.h: fix comment
5798
5799         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5800
5801 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5802
5803         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5804         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5805         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5806         Type.UnderlyingSystemType to get the actual system type
5807         underneath.  This code previously depended on the broken Mono
5808         behavior, which was fixed in 1.1.3.
5809
5810 2004-11-27  Havoc Pennington  <hp@redhat.com>
5811
5812         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5813         are disabled
5814         (_dbus_string_get_const_data): inline when asserts are disabled
5815
5816         * dbus/dbus-message.c: record the _dbus_current_generation of
5817         creation so we can complain if dbus_shutdown() is used improperly.
5818         Do this only if checks are enabled.
5819
5820         * dbus/dbus-connection.c: ditto
5821         
5822 2004-11-26  Havoc Pennington  <hp@redhat.com>
5823
5824         * test/glib/test-profile.c: add with_bus mode to profile echoes
5825         that go through the bus.
5826
5827         * test/glib/run-test.sh: add ability to run test-profile
5828
5829         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5830         config file reload.
5831
5832 2004-11-26  Havoc Pennington  <hp@redhat.com>
5833
5834         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5835         thing was implemented
5836
5837 2004-11-26  Havoc Pennington  <hp@redhat.com>
5838
5839         * test/glib/test-profile.c: tweak a bit, add support for some
5840         made-up minimal malloc overhead with plain sockets, since in 
5841         real life some sort of buffers are unavoidable thus we could 
5842         count them in the theoretical best case
5843
5844 2004-11-26  Havoc Pennington  <hp@redhat.com>
5845
5846         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5847         where I was trying to cache one too many messages
5848
5849 2004-11-26  Havoc Pennington  <hp@redhat.com>
5850
5851         * dbus/dbus-message.c: reimplement message cache as an array which 
5852         makes the cache about twice as fast and saves maybe 1.5% overall
5853
5854 2004-11-26  Havoc Pennington  <hp@redhat.com>
5855
5856         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5857         message cache lock here
5858
5859 2004-11-26  Havoc Pennington  <hp@redhat.com>
5860
5861         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5862         the "char byte_order" next to each other to save 4 bytes
5863         (dbus_message_new_empty_header): reduce preallocation, since the
5864         message cache should achieve a similar effect
5865         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5866         message cache that keeps a few DBusMessage around in a pool,
5867         another 8% speedup or so.
5868
5869         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5870
5871 2004-11-25  Havoc Pennington  <hp@redhat.com>
5872
5873         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5874         to write, without reading or blocking, try it before the poll()
5875         and skip the poll() if nothing remains to write. This is about a
5876         3% speedup in the echo client/server
5877
5878 2004-11-25  Havoc Pennington  <hp@redhat.com>
5879
5880         The primary change here is to always write() once before adding
5881         the write watch, which gives us about a 10% performance increase.
5882         
5883         * dbus/dbus-transport-unix.c: a number of modifications to cope
5884         with removing messages_pending
5885         (check_write_watch): properly handle
5886         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5887         messages_pending stuff
5888         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5889         AUTHENTICATED cases
5890         (unix_handle_watch): after writing, see if the write watch can be
5891         removed
5892         (unix_do_iteration): assert that write_watch/read_watch are
5893         non-NULL rather than testing that they aren't, since they 
5894         aren't allowed to be NULL. check_write_watch() at the end so 
5895         we add the watch if we did not finish writing (e.g. got EAGAIN)
5896
5897         * dbus/dbus-transport-protected.h: remove messages_pending call,
5898         since it resulted in too much inefficient watch adding/removing; 
5899         instead we now require that the transport user does an iteration 
5900         after queueing outgoing messages, and after trying the first
5901         write() we add a write watch if we got EAGAIN or exceeded our 
5902         max bytes to write per iteration setting
5903
5904         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5905         function
5906
5907         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5908         freed and then accessed, valgrind flagged this bug, fix it
5909
5910         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5911         as the last valid field plus 1, where really it is equal to the
5912         last valid field. Corrects some message corruption issues.
5913
5914         * dbus/dbus-mainloop.c: verbosity changes
5915
5916         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5917         instead of aborting in one of the test codepaths
5918
5919         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5920         caused not printing the pid ever again if a verbose was missing
5921         the newline at the end
5922         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5923
5924         * dbus/dbus-connection.c: verbosity changes; 
5925         (dbus_connection_has_messages_to_send): new function
5926         (_dbus_connection_message_sent): no longer call transport->messages_pending
5927         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5928         try to write() immediately, so we can avoid the write watch. This
5929         is the core purpose of this patchset
5930         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5931         dump the outgoing message queue, so nobody will get confused
5932         trying to send them or thinking stuff is pending to be sent
5933
5934         * bus/test.c: verbosity changes
5935
5936         * bus/driver.c: verbosity/assertion changes
5937
5938         * bus/dispatch.c: a bunch of little tweaks to get it working again
5939         because this patchset changes when/where you need to block.
5940
5941 2004-11-23  Havoc Pennington  <hp@redhat.com>
5942
5943         * test/glib/test-profile.c: modify to accept a plain_sockets
5944         argument in which case it will bench plain sockets instead of
5945         libdbus, for comparison purposes.
5946
5947 2004-11-22  Havoc Pennington  <hp@redhat.com>
5948
5949         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5950         threads for more time, so sysprof can get a grip on it.
5951
5952         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5953         pointless variable
5954
5955 2004-11-13  Havoc Pennington  <hp@redhat.com>
5956
5957         * test/glib/test-profile.c: fix this thing up a bit
5958
5959         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5960         preallocation sizes by a fair bit; not sure if this will be an
5961         overall performance win or not, but it does reduce reallocs.
5962
5963         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5964         the test hack that forced constant realloc if asserts are
5965         disabled, so we can profile sanely. Sprinkle in some
5966         _DBUS_UNLIKELY() which are probably pointless, but before I
5967         noticed the real performance problem I put them in.
5968         (_dbus_string_validate_utf8): micro-optimize this thing a little
5969         bit, though callgrind says it didn't help; then special-case
5970         ascii, which did help a lot; then be sure we detect nul bytes as
5971         invalid, which is a bugfix.
5972         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5973         superstition; use memset to nul the padding instead of a manual
5974         loop.
5975         (_dbus_string_get_length): inline this as a
5976         macro; it showed up in the profile because it's used for loop
5977         tests and so forth
5978
5979 2004-11-10  Colin Walters  <walters@verbum.org>
5980
5981         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5982         for extra paranoia.
5983
5984 2004-11-09  Colin Walters  <walters@verbum.org>
5985
5986         * dbus/dbus-string.c (_dbus_string_get_length): New
5987         function, writes DBusString to C buffer.
5988
5989         * dbus/dbus-string.h: Prototype it.
5990
5991         * dbus/dbus-message.c (dbus_message_type_to_string): New
5992         function, converts message type into C string.
5993
5994         * dbus/dbus-message.h: Prototype it.
5995
5996         * bus/selinux.c (bus_selinux_check): Take source pid,
5997         target pid, and audit data.  Pass audit data to
5998         avc_has_perm.
5999         (log_audit_callback): New function, appends extra
6000         audit information.
6001         (bus_selinux_allows_acquire_service): Also take
6002         service name, add it to audit data.
6003         (bus_selinux_allows_send): Also take message
6004         type, interface, method member, error name,
6005         and destination, and add them to audit data.
6006         (log_cb): Initialize func_audit.
6007         
6008         * bus/selinux.h (bus_selinux_allows_acquire_service)
6009         (bus_selinux_allows_send): Update prototypes 
6010
6011         * bus/services.c (bus_registry_acquire_service): Pass
6012         service name to bus_selinux_allows_acquire_service.
6013
6014         * bus/bus.c (bus_context_check_security_policy): Pass
6015         additional audit data.  Move assignment of dest
6016         to its own line.
6017
6018 2004-11-07  Colin Walters  <walters@verbum.org>
6019
6020         * dbus/dbus-transport-unix.c (do_authentication): Always
6021         initialize auth_completed.
6022         
6023 2004-11-07  Colin Walters  <walters@verbum.org>
6024
6025         * bus/bus.c (load_config): Break into three
6026         separate functions: process_config_first_time_only,
6027         process_config_every_time, and process_config_postinit.
6028         (process_config_every_time): Move call of
6029         bus_registry_set_service_context_table into
6030         process_config_postinit.
6031         (process_config_postinit): New function, does
6032         any processing that needs to happen late
6033         in initialization (and also on reload).
6034         (bus_context_new): Instead of calling load_config,
6035         open config parser here and call process_config_first_time_only
6036         and process_config_every_time directly.  Later, after
6037         we have forked but before changing UID,
6038         invoke bus_selinux_full_init, and then call
6039         process_config_postinit.
6040         (bus_context_reload_config): As in bus_context_new,
6041         load parse file inside here, and call process_config_every_time
6042         and process_config_postinit.
6043
6044         * bus/services.h, bus/services.c
6045         (bus_registry_set_service_context_table): Rename
6046         from bus_registry_set_sid_table.  Take string hash from config
6047         parser, and convert them here into SIDs.
6048
6049         * bus/config-parser.c (struct BusConfigParser): Have
6050         config parser only store a mapping of service->context
6051         string.
6052         (merge_service_context_hash): New function.
6053         (merge_included): Merge context string hashes instead
6054         of using bus_selinux_id_table_union.
6055         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6056         simply create a new string hash.
6057         (bus_config_parser_unref): Unref it.
6058         (start_selinux_child): Simply insert strings into hash,
6059         don't call bus_selinux_id_table_copy_over.
6060
6061         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6062         (bus_selinux_id_table_copy_over): Delete.
6063
6064 2004-11-03  Colin Walters  <walters@verbum.org>
6065
6066         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6067         variables.
6068         
6069 2004-11-03  Colin Walters  <walters@verbum.org>
6070
6071         * bus/test-main.c (test_pre_hook): Fix test logic,
6072         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6073
6074 2004-11-02  Colin Walters  <walters@redhat.com>
6075
6076         * bus/selinux.c (bus_selinux_init): Split into two functions,
6077         bus_selinux_pre_init and bus_selinux_post_init.
6078         (bus_selinux_pre_init): Just determine whether SELinux is
6079         enabled.
6080         (bus_selinux_post_init): Do everything else.
6081
6082         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6083         config file, and bus_selinux_post_init after.  This ensures that
6084         we don't lose the policyreload notification thread that
6085         bus_selinux_init created before forking previously.
6086         
6087         * bus/test-main.c (test_pre_hook): Update for split.
6088
6089 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6090
6091         Patch from Johan Fischer <linux@fischaz.com>
6092         
6093         * mono/doc/Makefile.am (install-data-local): Added directory
6094         install for DESTDIR
6095
6096 2004-10-29  Colin Walters  <walters@redhat.com>
6097
6098         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6099         parameter for fd to write pid to.       
6100
6101         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6102         
6103         * bus/bus.c (bus_context_new): Pass print_pid_fd
6104         to _dbus_become_daemon (bug #1720)
6105
6106 2004-10-29  Colin Walters  <walters@redhat.com>
6107
6108         Patch from Ed Catmur <ed@catmur.co.uk>
6109
6110         * mono/doc/Makefile.am (install-data-local): Handle
6111         DESTDIR.
6112
6113 2004-10-29  Colin Walters  <walters@redhat.com>
6114
6115         * bus/.cvsignore, qt/.cvsignore: Update.
6116
6117 2004-10-29  Colin Walters  <walters@redhat.com>
6118
6119         Patch from Kristof Vansant <de_lupus@pandora.be>
6120
6121         * configure.in: Detect Slackware.
6122         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6123         * bus/rc.messagebus.in: New file.
6124
6125 2004-10-29  Colin Walters  <walters@redhat.com>
6126
6127         * tools/dbus-monitor.c (filter_func): Return
6128         DBUS_HANDLER_RESULT_HANDLED in filter function
6129         for now.  See:
6130         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6131
6132 2004-10-29  Colin Walters  <walters@redhat.com>
6133
6134         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6135
6136         * bus/services.c (bus_registry_acquire_service): 
6137         Correctly retrieve service name from DBusString
6138         for printing.
6139
6140 2004-10-29  Colin Walters  <walters@redhat.com>
6141
6142         * dbus/dbus-glib.h: Update documentation to not
6143         refer to internal APIs.
6144
6145 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6146
6147         * mono/Arguments.cs (GetDBusTypeConstructor):
6148         type.UnderlyingSystemType will return "System.Byte" if you do it
6149         on "byte[]", which is not what we want.  So check the type.IsArray
6150         property and use System.Array instead.
6151
6152 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6153
6154         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6155         the DBusUserInfo structure since this is passed into the function.
6156         This would cause a double free when the function that allocated
6157         the structure would try to free it when an error occured.
6158
6159         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6160         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6161         for service activation to avoid 32bit/64bit parallel install issues
6162
6163 2004-10-21  Colin Walters  <walters@verbum.org>
6164
6165         * AUTHORS: Fix my email address, the @gnu.org one
6166         has been bouncing for some time.  Also add J5.
6167         
6168 2004-10-21  Colin Walters  <walters@verbum.org>
6169
6170         * dbus/dbus-transport-unix.c (do_authentication): Return
6171         authentication status to callers.
6172         (unix_handle_watch): If we completed authentication this round,
6173         don't do another read.  Instead wait until the next iteration,
6174         after we've read any pending data in the auth buffer.
6175         (unix_do_iteration): Ditto.
6176         (unix_handle_watch): Updated for new do_authentication prototype.
6177
6178 2004-10-18  Colin Walters  <walters@verbum.org>
6179
6180         * bus/selinux.c (bus_selinux_enabled): Handle
6181         --disable-selinux case.
6182         
6183 2004-10-18  Colin Walters  <walters@verbum.org>
6184
6185         * bus/selinux.h: Add bus_selinux_enabled.
6186         
6187         * bus/selinux.c (bus_selinux_enabled): Implement it.
6188         
6189         * bus/config-parser.c (struct include): Add
6190         if_selinux_enabled member.
6191         (start_busconfig_child): Parse if_selinux_enabled
6192         attribute for include.
6193         (bus_config_parser_content): Handle it.
6194
6195         * bus/session.conf.in, bus/system.conf.in: Add
6196         inclusion of context mapping to default config files;
6197         conditional on SELinux being enabled.
6198         
6199         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6200         
6201         * test/data/invalid-config-files/badselinux-1.conf, 
6202         test/data/invalid-config-files/badselinux-2.conf:
6203         Test files for bad syntax.
6204         
6205 2004-10-17  Colin Walters  <walters@verbum.org>
6206
6207         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6208         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6209         format specifier mismatches.
6210
6211 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6212
6213         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6214         format string.
6215
6216         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6217         pointer (bug #1540, Leonardo Boiko).
6218
6219 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6220
6221         * mono/BusDriver.cs: Changed BusDriver struct to remove
6222         the ServiceCreated and ServiceDeleted events and replace them
6223         with the new ServiceOwnerChanged event.
6224
6225         * mono/example/BusListener.cs: Added a new example program,
6226         which listens for and reports any ServiceOwnerChanged events
6227         on the bus driver.
6228
6229         * mono/example/Makefile.am (DESTDIR): Build changes for the
6230         new BusListener.cs example.
6231
6232 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6233
6234         * bus/signals.c (bus_match_rule_parse): validate the components of
6235         match rules (bug #1439).
6236
6237         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6238
6239 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6240
6241         * doc/dbus-specification.xml: document ServiceOwnerChanged
6242         signal.
6243         
6244         * bus/driver.c, bus/driver.h, bus/services.c: Use
6245         ServiceOwnerChanged signal instead of ServiceCreated and
6246         ServiceDeleted.
6247         
6248         * bus/dispatch.c: update testcase for the new signal.
6249
6250 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6251
6252         Patch from Nat Friedman <nat@novell.com>
6253
6254         * mono/Makefile.am: A number of small build fixes to allow "make
6255         distcheck" to succeed.
6256
6257         * mono/example/Makefile.am: "make distcheck" fixes.
6258
6259         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6260         key in @srcdir@.
6261
6262         * test/Makefile.am: "make distcheck" fixes.
6263
6264 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6265
6266         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6267
6268         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6269
6270         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6271         messages after the first one (bug #1389).
6272         
6273         * bus/dispatch.c (check_double_hello_message): add a test case for
6274         the double hello message bug.
6275         (check_existent_service_activation): fix check of spawning error.
6276         
6277 2004-09-16  David Zeuthen  <david@fubar.dk>
6278
6279         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6280
6281 2004-09-12  David Zeuthen  <david@fubar.dk>
6282
6283         Patch from Kay Sievers <kay.sievers@vrfy.org>
6284
6285         * bus/bus.c (bus_context_new):
6286         * bus/bus.h:
6287         * bus/main.c (usage)
6288         (main):
6289         Add commandline option --nofork to override configuration file
6290         setting.
6291
6292 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6293
6294         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6295         compilers don't like it (bug #974).
6296
6297 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6298
6299         * qt/connection.*: Applied patch by Jérôme Lodewyck
6300         <lodewyck@clipper.ens.fr> to integrate an existing
6301         connection into the Qt eventloop
6302
6303 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6304
6305         * mono/BusDriver.cs: Added.  This is a class for interacting with
6306         the org.freedesktop.DBus service.
6307
6308         * mono/Message.cs: Added a mechanism to expose the message that is
6309         currently being dispatched via the static Message.Current
6310         property.  Added Message.Sender and Message.Destination
6311         properties.
6312
6313         * mono/Handler.cs: Expose the dispatched message via
6314         Message.Current when handling method calls.
6315
6316         * mono/Service.cs: Expose the dispatched message via
6317         Message.Current when handling signal emissions.
6318         
6319         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6320         Connection.BaseService property.
6321
6322 2004-08-28  Havoc Pennington  <hp@redhat.com>
6323
6324         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6325
6326         More fixes from Steve Grubb
6327         
6328         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6329         (_dbus_listen_tcp_socket): fix fd leak
6330
6331         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6332         EINTR to a bit lower in the code
6333
6334 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6335
6336         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6337         TRUE if we are inquiring about the existence of the built-in
6338         org.freedesktop.DBus service.
6339
6340 2004-08-25  John Palmieri  <johnp@redhat.com>
6341         * bus/config-parser.c:
6342         (struct PolicyType): Add POLICY_CONSOLE
6343         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6344         (start_busconfig_child): Sets up console element when
6345         <policy at_console=""> is encountered in a policy file
6346         (append_rule_from_element): Convert console elements to console
6347         rules.
6348
6349         * bus/policy.c: 
6350         (bus_policy_create_client_policy): Add console rules to the client
6351         policy based on if the client is at the console
6352         (bus_policy_append_console_rule): New function for adding a
6353         console rule to a policy
6354         (bus_policy_merge): Handle console rule merging
6355
6356         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6357         where we check for console user files
6358         
6359         * dbus/dbus-sysdeps.c:
6360         (_dbus_file_exists): New function which checks if the given
6361         file exists
6362         (_dbus_user_at_console): New function which does the system
6363         specific process of checking if the user is at the console
6364
6365         * dbus/dbus-userdb.c:
6366         (_dbus_is_console_user): New function converts a UID to user name
6367         and then calls the system specific _dbus_user_at_console to 
6368         see if the user is at the console and therefor a console user
6369
6370 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6371
6372         * bus/config-parser.c (set_limit):
6373         * bus/dbus-daemon-1.1.in:
6374         * test/data/valid-config-files/many-rules.conf: set the
6375         max_match_rules_per_connection limt from the config file. 
6376
6377         * doc/busconfig.dtd: update the DTD.
6378
6379         * bus/driver.c: remove some unused variables.
6380
6381 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6382
6383         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6384         it's been replaced by dbus_g_bus_get
6385
6386 2004-08-23  Colin Walters  <walters@redhat.com>
6387
6388         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6389
6390         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6391
6392         * bus/selinux.c: Create a thread for policy reload notification.
6393         (bus_selinux_get_policy_root): Implement.
6394
6395         * bus/config-parser.c (start_busconfig_child)
6396         (bus_config_parser_content): Support SELinux-root relative
6397         inclusion.
6398
6399         * configure.in <HAVE_SELINUX>: Add -lpthread.
6400         
6401         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6402         (test_post_hook): Move memory checking into here.
6403         (test_pre_hook, test_post_hook): Move SELinux checks in
6404         here, but conditional on a DBUS_TEST_SELINUX environment
6405         variable.  Unfortunately we can't run the SELinux checks
6406         as a normal user, since they won't have any permissions
6407         for /selinux.  So this will have to be tested manually
6408         for now, until we have virtualization for most of
6409         libselinux.
6410         
6411 2004-08-23  Havoc Pennington  <hp@redhat.com>
6412
6413         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6414         drop supplementary groups, suggested by Steve Grubb
6415
6416 2004-08-20  Colin Walters  <walters@redhat.com>
6417
6418         * bus/config-parser.c (start_busconfig_child): Remove some unused
6419         variables.
6420         
6421         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6422         warning.
6423
6424 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6425
6426         * configure.in: If --enable-mono is passed in, if we can't find
6427         mono error out.
6428
6429         * mono/Makefile.am: Use /gacutil to install assemblies into the
6430         GAC and not /root.
6431
6432 2004-08-12  Havoc Pennington  <hp@redhat.com>
6433
6434         * NEWS: update for 0.22
6435
6436         * configure.in: release 0.22
6437
6438 2004-08-11  Colin Walters  <walters@redhat.com>
6439
6440         * tools/dbus-send.c (main, usage): Add --reply-timeout
6441         argument.
6442
6443 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6444
6445         * bus/bus.c (process_config_first_time_only): get rid of an unused
6446         DBusError that was causing a memoy leak (bug #989).
6447
6448         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6449         fix compilation on Solaris/Forte C (bug #974)
6450
6451         * bus/main.c (main): plug two minuscule memleaks.
6452
6453 2004-08-10  Havoc Pennington  <hp@redhat.com>
6454
6455         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6456
6457 2004-08-09  Havoc Pennington  <hp@redhat.com>
6458
6459         * COPYING: switch to Academic Free License version 2.1 instead of
6460         2.0, to resolve complaints about patent termination clause.
6461
6462 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6463
6464         * README: added documentation for the --enable-python 
6465         configure switch.
6466
6467 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6468
6469         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6470         _unref in the SELinux support.
6471
6472         * doc/busconfig.dtd: update DTD for SELinux support.
6473
6474         * bus/config-loader-libxml.c: fix error handler and parser
6475         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6476
6477         * configure.in: remove the warning about libxml2.
6478
6479         * dbus/dbus-bus.c: silence doxygen warning.
6480
6481 2004-07-31  Colin Walters  <walters@redhat.com>
6482
6483         * configure.in: Move #error in SELinux check to its own line.
6484
6485 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6486
6487         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6488         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6489         dbus_error_set.
6490
6491         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6492         broken by the change in the _SET_OOM macros.
6493
6494 2004-07-31  Colin Walters  <walters@redhat.com>
6495
6496         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6497         BUS_SET_OOM.
6498
6499 2004-07-31  Colin Walters  <walters@redhat.com>
6500
6501         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6502         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6503         AC_MSG_CHECKING.
6504
6505 2004-07-24  Havoc Pennington  <hp@redhat.com>
6506
6507         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6508
6509         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6510         functionality
6511
6512         * configure.in: add --enable-selinux
6513         
6514         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6515
6516         * bus/main.c (main): initialize and shut down selinux
6517
6518         * bus/connection.c: store SELinux ID on each connection, to avoid 
6519         repeated getting of the string context and converting it into 
6520         an ID
6521
6522         * bus/bus.c (bus_context_get_policy): new accessor, though it
6523         isn't used
6524         (bus_context_check_security_policy): check whether the security
6525         context of sender connection can send to the security context of
6526         recipient connection
6527
6528         * bus/config-parser.c: add parsing for <selinux> and <associate>
6529         
6530         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6531         implement dbus_connection_get_unix_fd()
6532
6533         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6534         function, used by the selinux stuff
6535         
6536 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6537
6538         * bus/config-loader-libxml.c: complete the implementation of
6539         libxml backend for config file loader. Doesn't work with full OOM
6540         test yet. 
6541         
6542         * configure.in: change error when selecting libxml into a warning.
6543         
6544         * test/data/invalid-config-files: add two non-well-formed XML
6545         files. 
6546         
6547         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6548         
6549         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6550         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6551         be necessary to read all the buffer. (bug #894)
6552
6553         * bus/activation.c (bus_activation_activate_service): fix a
6554         potential assertion failure (bug #896). Small optimization in the
6555         case of auto-activation messages.
6556
6557         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6558         add test case for byte-through-vararg bug (#901). patch by Kimmo
6559         Hämäläinen. 
6560
6561 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6562
6563         * python/dbus.py:
6564         * python/dbus_bindings.pyx.in:
6565         Add dbus.init_gthreads (), allow emit_signal to pass
6566         arguments to the signal.
6567         
6568 2004-07-24  Havoc Pennington  <hp@redhat.com>
6569
6570         * AUTHORS: add some people, not really comprehensively, let me
6571         know if I missed you
6572
6573 2004-07-24  Havoc Pennington  <hp@redhat.com>
6574
6575         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6576         Owen
6577
6578         * test/Makefile.am (DIST_SUBDIRS): here also
6579
6580 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6581
6582         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6583         breaking build on Solaris, reported by Farhad Saberi on the ML.
6584
6585         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6586         va_arg invocation to account for integer promotion in the case of
6587         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6588
6589         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6590         _dbus_list_get_first_link, not _dbus_list_get_first.
6591
6592         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6593
6594         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6595         handler functions so that the asserts in _dbus_object_subtree_unref
6596         do not fail.
6597
6598         * dbus/dbus-transport-unix.c (do_reading):
6599         _dbus_transport_queue_messages return value is of type
6600         dbus_bool_t, not DBusDispatchStatus.
6601         
6602 2004-07-19  David Zeuthen  <david@fubar.dk>
6603
6604         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6605
6606         * bus/dispatch.c:
6607         (check_get_connection_unix_user): Debug says GetProperty; but the
6608         method is called GetConnectionUnixUser
6609         (check_get_connection_unix_process_id): New function
6610         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6611         also call check_get_connection_unix_process_id()
6612         
6613         * bus/driver.c:
6614         (bus_driver_handle_get_connection_unix_process_id): New function,
6615         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6616         interface
6617         
6618         * dbus/dbus-auth.c:
6619         (handle_server_data_external_mech): Set pid from the credentials
6620         obtained from the socket
6621         
6622         * dbus/dbus-connection.c:
6623         (dbus_connection_get_unix_process_id): New function
6624         
6625         * dbus/dbus-connection.h: 
6626         Add prototype for dbus_connection_get_unix_process_id
6627         
6628         * dbus/dbus-transport.c:
6629         (_dbus_transport_get_unix_process_id): New function
6630         
6631         * dbus/dbus-transport.h:
6632         Add prototype for _dbus_transport_get_unix_process_id
6633         
6634 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6635
6636         * dbus/dbus-message.c: Message counter fix, patch by Christian
6637         Hammond <chipx86@gnupdate.org>
6638
6639 2004-07-18  Seth Nickell  <seth@gnome.org>
6640
6641         * python/dbus.py:
6642         * python/dbus_bindings.pyx.in:
6643         * python/tests/test-client.py:
6644
6645         Add dbus.ByteArray and dbus_bindings.ByteArray
6646         types so that byte streams can be passed back.
6647
6648         Give jdahlin the heaps of credit that are so
6649         rightfully his.
6650         
6651 2004-07-12  Seth Nickell  <seth@gnome.org>
6652
6653         * python/dbus.py:
6654
6655         Add message argument to the default object_method_handler
6656         function.
6657         
6658         * python/dbus_bindings.pyx.in:
6659
6660         Automatically return NIL when passed an empty list
6661         (we can't pass back a list since lists are typed
6662         and we don't have any idea what type the the client
6663         intended the list to be... :-( )
6664         
6665 2004-07-10  Seth Nickell  <seth@gnome.org>
6666
6667         * python/examples/Makefile.am:
6668
6669         Fix distcheck breakage caused by new examples.
6670
6671 2004-07-10  Seth Nickell  <seth@gnome.org>
6672
6673         * python/dbus.py:
6674
6675         Add "message" argument to service-side dbus.Object
6676         methods. This will break existing services written
6677         using the python bindings, but will allow extraction
6678         of all the message information (e.g. who its from).
6679
6680         Add improved "object oriented" signal handling/emission.
6681         
6682         * python/examples/example-service.py:
6683
6684         Nix this example.
6685         
6686         * python/examples/example-signal-emitter.py:
6687         * python/examples/example-signal-recipient.py:
6688
6689         Two new examples that show how to emit and receive
6690         signals using the new APIs.
6691         
6692         * python/examples/example-signals.py:
6693         * python/examples/gconf-proxy-service.py:
6694         * python/examples/gconf-proxy-service2.py:
6695
6696         Add "message" argument to service methods.
6697
6698 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6699
6700         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6701         * dbus/bus.c (dbus_bus_get_unix_user)
6702         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6703         method of org.freedesktop.DBus interface.
6704
6705         * bus/dispatch.c: test case
6706
6707 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6708
6709         * python/Makefile.am: switched include directory from glib/ to dbus/
6710         since dbus-glib.h moved
6711  
6712 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6713
6714         * configure.in: prevent building the gcj stuff and libxml loader
6715         since they are broken.
6716
6717 2004-06-20  Havoc Pennington  <hp@redhat.com>
6718
6719         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6720         codes from the dbus error names
6721         
6722         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6723         as dbus/dbus-glib.h and that breakage is now visible due to 
6724         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6725         
6726         * glib/dbus-glib.h: s/gproxy/g_proxy/
6727
6728         * dbus/dbus-shared.h: new header to hold stuff shared with
6729         binding APIs
6730         
6731         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6732         than dbus-errors.h
6733
6734         * glib/dbus-glib.h (dbus_set_g_error): move to
6735         dbus-glib-lowlevel.h
6736
6737         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6738         of stuff to enable this
6739
6740         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6741
6742         * a bunch of other changes with the same basic "separate glib 
6743         bindings from dbus.h" theme
6744         
6745 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6746
6747         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6748
6749         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6750
6751 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6752
6753         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6754         the reply value of the ServiceExists message.
6755
6756 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6757
6758         * python/dbus_bindings.pyx.in: No longer need to parse path
6759         elements and pass them as arrays of strings.  The C API now
6760         accepts plain path strings.
6761         (_build_parsed_path): removed 
6762
6763 2004-06-07  Havoc Pennington  <hp@redhat.com>
6764
6765         * doc/TODO: remove auto-activation item since it's done; sort
6766         items by importance/milestone
6767
6768 2004-06-07  Havoc Pennington  <hp@redhat.com>
6769
6770         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6771         random signature when using REQUIRED_FIELDS (this hack won't work
6772         in the long term)
6773
6774         * dbus/dbus-message.c: change the signature to be a header field,
6775         instead of message->signature special-case string. Incremental
6776         step forward. Then we can fix up code to send the signature in the
6777         message, then fix up code to validate said signature, then fix up
6778         code to not put the typecodes inline, etc.
6779         (load_one_message): don't make up the signature after the fact
6780         (decode_header_data): require signature field for the known
6781         message types
6782
6783         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6784
6785         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6786
6787 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6788
6789         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6790
6791         * mono/Handler.cs: Updated to follow new path argument for
6792         (un-)registering objects.
6793
6794         * mono/example/Makefile.am:
6795         * mono/Makefile.am:
6796         * configure.in: Bumped required version for mono and use new -pkg
6797         syntax for deps
6798
6799 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6800
6801         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6802         registration functions take the path argument as char* instead of
6803         char**.
6804
6805         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6806         split off the path decompostion part of
6807         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6808         warnings. 
6809
6810         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6811         
6812 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6813  
6814         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6815         machine approach.  A state is implemented as a function that
6816         handles incoming events as specified for that state.
6817         
6818         * doc/dbus-specification.xml: Update auth protocol state machine
6819         specification to match implementation.  Remove some leftover
6820         base64 examples.
6821
6822 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6823
6824         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6825         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6826         quiet doxygen.
6827
6828         * Doxyfile.in: remove deprecated options.
6829
6830         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6831         glib/test-thread.h, glib/test-thread-client.c,
6832         glib/test-thread-server.c, glib/test-profile.c,
6833         glib/test-dbus-glib.c: remove these unused files.
6834
6835 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6836
6837         * dbus/dbus-object-tree.c
6838         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6839         non-fallback handlers (bug #684).
6840         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6841         (find_subtree_recurse): report wether the returned subtree is an
6842         exact match or a "fallback" match higher up in the tree.
6843         (object_tree_test_iteration): update test case.
6844
6845 2004-06-01  Seth Nickell  <seth@gnome.org>
6846
6847         * python/dbus_bindings.pyx.in:
6848         * python/tests/test-client.py:
6849
6850         Round off basic type support. Add dicts (yay!), and 
6851         remaining array types.
6852
6853         Make MessageIter more general so it works for dicts too.
6854
6855         Mark all loop variables as C integers.
6856         
6857 2004-05-31  Havoc Pennington  <hp@redhat.com>
6858
6859         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6860         "in" before "out"
6861
6862         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6863
6864         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6865         option that runs the tests, and start filling in some code
6866         including for starters just dumping the interfaces to stdout
6867
6868         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6869
6870         * test/data/valid-introspection-files/lots-of-types.xml: test of
6871         an example introspection file
6872
6873         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6874         "node" (I think...)
6875
6876 2004-05-31  Seth Nickell  <seth@gnome.org>
6877
6878         * python/dbus_bindings.pyx.in:
6879         * python/tests/test-client.py:
6880
6881         Test Suite: 1
6882         Python Bindings: 0
6883
6884         Fix string array memory trashing bug... oops...
6885
6886 2004-05-30  Seth Nickell  <seth@gnome.org>
6887
6888         * python/dbus.py:
6889
6890         Add a nicer-but-less-flexible alternate API for handling 
6891         calls to virtual objects in dbus.ObjectTree.
6892
6893         Screw up the argument order to the dbus.Object constructor
6894         for consistency with dbus.ObjectTree (and to make dbus_methods
6895         optional for future extension)
6896         
6897         * python/examples/Makefile.am:
6898         * python/examples/gconf-proxy-service.py:
6899         * python/examples/gconf-proxy-service2.py:
6900
6901         Alternate implementation of gconf-proxy-service using the
6902         nicer dbus.ObjectTree API.
6903         
6904         * python/examples/example-service.py:
6905         * python/tests/test-server.py
6906
6907         Reverse the argument order to deal with dbus.Object constructor
6908         changes.
6909         
6910 2004-05-30  Seth Nickell  <seth@gnome.org>
6911
6912         * python/examples/example-client.py:
6913         * python/examples/example-service.py:
6914
6915         Take it back. Lists seem to work but they're broken
6916         in the test suite. Make the base examples use
6917         lists (works fine).
6918
6919 2004-05-30  Seth Nickell  <seth@gnome.org>
6920
6921         * python/dbus_bindings.pyx.in:
6922         * python/tests/test-client.py:
6923
6924         Add some more tests and fix errors that crop up.
6925         Unfortunately, currently it seems like marshalling
6926         and unmarshalling of lists is completely broken :-(
6927
6928 2004-05-30  Seth Nickell  <seth@gnome.org>
6929
6930         * python/dbus_bindings.pyx.in:
6931
6932         Add support for ObjectPath type.
6933
6934         * python/dbus.py:
6935
6936         Refactor message handling code to a common function.
6937         
6938         * python/tests/test-client.py:
6939         * python/tests/test-server.py:
6940
6941         Add tests that check to make sure values of all types
6942         can be echoed from a service w/o mangling.
6943         
6944 2004-05-29  Seth Nickell  <seth@gnome.org>
6945
6946         * python/dbus.py:
6947
6948         Add ObjectTree class which allows implementation
6949         of trees of "virtual" objects. Basically the python
6950         wrapper for "register_fallback".
6951         
6952         * python/examples/Makefile.am
6953         * python/examples/gconf-proxy-client.py:
6954         * python/examples/gconf-proxy-service.py:
6955
6956         Implement a simple GConf proxy service that supports
6957         get/set on string and int GConf keys using the ObjectTree.
6958         
6959 2004-05-29  Seth Nickell  <seth@gnome.org>
6960
6961         * python/dbus.py:
6962         * python/examples/example-client.py:
6963         * python/examples/example-service.py:
6964         * python/examples/list-system-services.py:
6965
6966         Add SessionBus, SystemBus and ActivationBus classes
6967         so you don't need to know the special little BUS_TYPE
6968         flag.
6969         
6970 2004-05-29  Havoc Pennington  <hp@redhat.com>
6971
6972         * bus/config-parser.c (process_test_valid_subdir): temporarily
6973         stop testing config parser OOM handling, since expat has issues
6974         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6975
6976         * bus/dbus-daemon-1.1.in: change requested_reply to
6977         send_requested_reply/receive_requested_reply so we can send the
6978         replies, not just receive them.
6979
6980         * bus/config-parser.c: parse the new
6981         send_requested_reply/receive_requested_reply
6982
6983         * bus/policy.c (bus_client_policy_check_can_send): add
6984         requested_reply argument and use it
6985
6986         * bus/bus.c (bus_context_check_security_policy): pass through
6987         requested_reply status to message send check
6988
6989         * bus/system.conf.in: adapt to requested_reply change
6990         
6991 2004-05-28  Havoc Pennington  <hp@redhat.com>
6992
6993         * test/glib/test-service-glib.c (main): remove unused variable
6994
6995         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6996
6997         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6998         from the enum, no longer in use.
6999
7000         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7001         works right.
7002
7003         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7004         whether error_name passed in is a valid error name.
7005
7006 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7007
7008         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7009         OBJECT_PATH and OBJECT_PATH_ARRAY
7010
7011 2004-05-28  Seth Nickell  <seth@gnome.org>
7012
7013         * python/examples/Makefile.am:
7014
7015         Forget to add Makefile.am. Do not pass go.
7016
7017 2004-05-28  Michael Meeks  <michael@ximian.com>
7018
7019         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7020         fix no int64 case.
7021
7022         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7023
7024         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7025         (_dbus_message_iter_get_basic_type_array): impl.
7026         drastically simplify ~all relevant _get methods to use these.
7027         (_dbus_message_iter_append_basic_array),
7028         (dbus_message_iter_append_basic): impl
7029         drastically simplify ~all relevant _append methods to use these.
7030
7031         * dbus/dbus-message-builder.c (parse_basic_type) 
7032         (parse_basic_array, lookup_basic_type): impl.
7033         (_dbus_message_data_load): prune scads of duplicate /
7034         cut & paste coding.
7035
7036         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7037         (_dbus_demarshal_basic_type): implement,
7038         (demarshal_and_validate_len/arg): beef up debug.
7039         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7040
7041 2004-05-27  Seth Nickell  <seth@gnome.org>
7042
7043         * configure.in:
7044         * python/Makefile.am:
7045
7046         Include the example python apps in the tarball.
7047         
7048         * python/examples/list-system-services.py
7049
7050         Add a python new example that fetches the list of services
7051         from the system bus.
7052         
7053 2004-05-27  Seth Nickell  <seth@gnome.org>
7054
7055         * python/dbus.py:
7056         * python/dbus_bindings.pyx.in:
7057
7058         Fix failure to notify that a signal was not handled,
7059         resulted in hung functions.
7060         
7061 2004-05-25  Colin Walters  <walters@redhat.com>
7062
7063         * tools/dbus-monitor.c (main): Monitor all types of messages.
7064
7065 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7066
7067         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7068         which unregisters the object path and disposes the handler.
7069
7070 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7071  
7072         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7073          
7074         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7075         operands to && so we call dbus_message_iter_next () for the last
7076         argument also.
7077
7078 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7079
7080         * dbus/dbus-object-tree.c
7081         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7082         children even if the requested path isn't registered.
7083         (object_tree_test_iteration): test object_tree_list_registered.
7084
7085         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7086         it to 0.
7087         
7088 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7089
7090         * doc/TODO: Remove resolved items.
7091
7092         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7093         field.
7094         
7095         * bus/connection.c (bus_connections_expect_reply): Enforce the
7096         per-connection limit on pending replies.
7097         
7098         Patch from Jon Trowbridge <trow@ximian.com>:
7099  
7100         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7101         up a watch that triggers a config reload when one end of the pipe
7102         becomes readable.
7103         (signal_handler): Instead of doing the config reload in our SIGHUP
7104         handler, just write to the reload pipe and let the associated
7105         watch handle the reload when control returns to the main loop.
7106  
7107         * bus/driver.c (bus_driver_handle_reload_config): Added.
7108         Implements a ReloadConfig method for requesting a configuration
7109         file reload via the bus driver.
7110  
7111 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7112
7113         * HACKING: Updated release instructions concerning the wiki page.
7114
7115 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7116
7117         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7118         filter against auth->allowed_mechs; we only add allowed mechs in
7119         record_mechanisms().
7120  
7121         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7122         ALLOWED_MECHS to auth-script format so we can set the list of
7123         allowed mechanisms.
7124  
7125         * data/auth/client-out-of-mechanisms.auth-script: New test to
7126         check client disconnects when it is out of mechanisms to try.
7127  
7128         * dbus/dbus-auth.c (process_command): Remove check for lines
7129         longer that 1 MB; we only buffer up maximum 16 kB.
7130  
7131         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7132         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7133         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7134         assume there might be unused bytes.
7135  
7136         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7137         client-out-of-mechs, it is handled in process_reject(). Move check
7138         for max failures to send_rejected(), as it's a server-only thing.
7139
7140         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7141         send_auth(), send_data(), send_rejected(), send_error(),
7142         send_ok(), send_begin() and send_cancel().
7143
7144 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7145
7146         Remove base64 encoding, replace with hex encoding. Original patch
7147         from trow@ximian.com, added error handling.
7148
7149         * dbus/dbus-string.c (_dbus_string_base64_encode)
7150         (_dbus_string_base64_decode): Remove.
7151         (_dbus_string_hex_decode): Add end_return argument so we can
7152         distinguish between OOM and invalid hex encoding.
7153         (_dbus_string_test): Remove base64 tests and add test case for
7154         invalid hex.
7155
7156         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7157         Replace base64 with hex.
7158
7159         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7160         for invalid hex encoded data in auth protocol.
7161
7162 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7163
7164         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7165         leak.
7166
7167 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7168
7169         * mono/dbus-sharp.dll.config.in: Added for GAC
7170         * mono/dbus-sharp.snk: Added for GAC
7171         * mono/Assembly.cs.in: Added for GAC
7172         * mono/Makefile.am: Changes for GAC installation        
7173         * configure.in: Added refs for dbus-sharp.dll.config.in and
7174         Assembly.cs.in. More fixes for mono testing
7175         * mono/example/Makefile.am: Changed var to CSC
7176         * Makefile.am: Changed flag name to DBUS_USE_CSC
7177
7178 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7179
7180         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7181         * mono/doc/*: Added documentation framework
7182         * configure.in: Added monodoc check
7183         * README: Added description of mono configure flags
7184
7185 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7186
7187         * doc/dbus-specification.xml: Added a "Required" column to the 
7188         header fields table and changed the "zero or more" verbage in
7189         the above paragraph to read "The header must contain the required 
7190         named header fields and zero or more of the optional named header 
7191         fields".
7192         * test/data/invalid-messages/*.message: Added the required PATH 
7193         named header field to the tests so that they don't fail on 
7194         'Missing path field'
7195
7196 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7197
7198         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7199         the stack by implicitly defining variable and parameter types and
7200         removing the hack of defining C pointers as python objects and later
7201         casting them.
7202
7203 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7204
7205         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7206
7207 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7208
7209         * mono/DBusType/Dict.cs: Handle empty dicts
7210         * mono/DBusType/Array.cs: Handle empty arrays
7211         * mono/Arguments.cs: Handle empty arguments
7212
7213 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7214
7215         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7216         field
7217
7218 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7219
7220         * test/data/valid-messages/standard-*.message: Update message
7221         test scripts to new header field names.
7222
7223 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7224
7225         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7226         overflow to times_we_did_each_thing array which would chop off the
7227         first character of the failure_dir string. Increased the size of
7228         the array to 7 to reflect the number of random mutation functions
7229         we have.
7230
7231 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7232
7233         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7234         unix_server->watch here, it is unreffed in disconnect.
7235         (_dbus_server_new_for_tcp_socket): convert NULL host to
7236         "localhost" here so we don't append NULL to address.
7237         
7238         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7239         various addresses, including tcp with no explicit host.
7240
7241 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7242
7243         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7244         fix incorrect setting of .name_offset in the HeaderField (it was
7245         off by two bytes, positioned right after the name and typecode)
7246
7247         * bus/bus.c (bus_context_new, bus_context_unref): test before
7248         calling dbus_server_free_data_slot and _dbus_user_database_unref
7249         in case of an error.
7250
7251         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7252         by libdbus-gtool.
7253
7254 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7255
7256         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7257         _dbus_poll() instead of select().
7258
7259 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7260
7261         * bus/main.c (signal_handler): Reload the configuration files
7262         on SIGHUP.
7263         (main): Set up our SIGHUP handler.
7264
7265         * bus/bus.c (struct BusContext): Store the config file, user and
7266         fork flag in the BusContext.
7267         (process_config_first_time_only): Added.  Contains the code
7268         (previously in bus_context_new) for setting up the BusContext from
7269         the BusConfigParser that should only be run the first time the
7270         config files are read.
7271         (process_config_every_time): Added.  Contains the code (previously
7272         in bus_context_new) for setting up the BusContext from the
7273         BusConfigParser that should be run every time the config files are
7274         read.
7275         (load_config): Added.  Builds a BusConfigParser from the config
7276         files and passes the resulting structure off to
7277         process_config_first_time_only (assuming this is the first time)
7278         and process_config_every_time.
7279         (bus_context_new): All of the config-related code has been moved
7280         to process_config_first_time_only and process_config_every_time.
7281         Now this function just does the non-config-related initializations
7282         and calls load_config.
7283         (bus_context_reload_config): Added.
7284
7285 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7286
7287         * bus/driver.c (bus_driver_handle_get_service_owner):
7288         implement a GetServiceOwner method.
7289         * doc/dbus-specification.xml: document it.
7290         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7291         
7292         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7293         implement, using the bus GetServiceOwner method.
7294
7295         * test/glib/test-dbus-glib.c:
7296         use dbus_gproxy_new_for_service_owner so that we can receive the
7297         signal. 
7298
7299 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7300
7301         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7302         dbus/dbus-message.c, dbus/dbus-protocol.h
7303         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7304
7305         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7306         dbus/dbus-message.c, dbus/dbus-protocol.h
7307         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7308
7309         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7310         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7311         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7312
7313         * doc/dbus-specification.xml (Header Fields Table):
7314         s/SERVICE/DESTINATION
7315         s/SENDER_SERVICE/SENDER
7316
7317
7318 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7319
7320         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7321         a few seconds.
7322
7323 2004-04-13  Michael Meeks  <michael@ximian.com>
7324
7325         * glib/dbus-gobject.c (handle_introspect): split out
7326         (introspect_properties): this.
7327         (handle_introspect): implement this.
7328
7329         * test/glib/Makefile.am: use the absolute path so the bus
7330         daemon's chdir ("/") doesn't kill us dead.
7331
7332         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7333
7334 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7335
7336         * bus/config-parser.c (struct BusConfigParser): Added
7337         included_files field.
7338         (seen_include): Added.  Checks whether or not a file has already
7339         been included by any parent BusConfigParser.
7340         (bus_config_parser_new): Copy the parent's included_files.
7341         (include_file): Track which files have been included, and fail on
7342         circular inclusions.
7343         (process_test_valid_subdir): Changed printf to report if we are
7344         testing valid or invalid conf files.
7345         (all_are_equiv): Changed printf to be a bit clearer about
7346         what we are actually doing.
7347         (bus_config_parser_test): Test invalid configuration files.
7348
7349 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7350
7351         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7352         argument.  If non-null, the newly-constructed BusConfigParser will
7353         be initialized with the parent's BusLimits instead of the default
7354         values.
7355         (include_file): When including a config file, pass in
7356         the current parser as the parent and then copy the BusLimits
7357         from the included BusConfigParser pack to the current parser.
7358         (process_test_valid_subdir): Renamed from process_test_subdir.
7359         (process_test_equiv_subdir): Added.  Walks through a directory,
7360         descending into each subdirectory and loading the config files
7361         it finds there.  If any subdirectory contains two config files
7362         that don't produce identical BusConfigParser structs, fail.
7363         For now, the BusConfigParser's BusPolicies are not compared.
7364         (bus_config_parser_test): Call both process_test_valid_subdir and
7365         process_test_equiv_subdir.
7366
7367         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7368         argument and pass it along to the call to bus_config_parser_new.
7369         Also made a few small changes to allow this code to compile.
7370
7371         * bus/config-loader-expat.c (bus_config_load): Take a parent
7372         argument and pass it along to the call to bus_config_parser_new.
7373
7374         * bus/bus.c (bus_context_new): Load the config file
7375         with a NULL parent argument.
7376
7377 2004-03-29  Michael Meeks  <michael@ximian.com>
7378
7379         * glib/dbus-gobject.c (introspect_properties): split
7380         out, fix mangled 'while' flow control.
7381         (introspect_signals): implement.
7382         (handle_introspect): update.
7383
7384 2004-03-29  Michael Meeks  <michael@ximian.com>
7385
7386         * glib/dbus-gobject.c (set_object_property): split out / 
7387         re-work, use the property type, and not the message type(!)
7388         (get_object_property): ditto.
7389
7390         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7391         (dbus_gvalue_marshal): make this code re-usable, needed
7392         for signals too, also on both proxy and server side.
7393         Re-write for more efficiency / readability.
7394
7395 2004-03-29  Michael Meeks  <michael@ximian.com>
7396
7397         * dbus/dbus-message.c
7398         (dbus_message_new_error_printf): impl.
7399
7400         * dbus/dbus-connection.c
7401         (dbus_connection_unregister_object_path): fix warning.
7402
7403         * configure.in: fix no-mono-installed situation.
7404
7405 2004-03-27  Havoc Pennington  <hp@redhat.com>
7406
7407         Patch from Timo Teräs:
7408         
7409         * tools/dbus-send.c (main): if --print-reply, assume type is
7410         method call; support boolean type args
7411         
7412         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7413         bunch of memleak and logic bugs
7414         
7415 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7416
7417         * mono/Arguments.cs:
7418         * mono/Introspector.cs:
7419         * mono/Handler.cs:
7420         * mono/InterfaceProxy.cs:
7421         * mono/Message.cs
7422         * mono/ProxyBuilder.cs:
7423         * mono/Service.cs:
7424         Added InterfaceProxy class to avoid building proxies for every
7425         object.
7426
7427         * dbus-message.h:
7428         * dbus-message.c (dbus_message_append_args_valist)
7429         (dbus_message_iter_get_object_path)
7430         (dbus_message_iter_get_object_path_array)
7431         (dbus_message_iter_append_object_path)
7432         (dbus_message_iter_append_object_path_array):
7433         Added object_path iter functions to handle OBJECT_PATH arguments
7434         
7435 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7436
7437         First checkin of mono bindings.
7438         * configure.in:
7439         * Makefile.am:
7440         Build stuff for the bindings
7441         * dbus-sharp.pc.in: Added for pkgconfig
7442         
7443 2004-03-21  Havoc Pennington  <hp@redhat.com>
7444
7445         * test/test-service.c (main): remove debug spew
7446
7447 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7448
7449         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7450         arrays
7451
7452         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7453         (dbus_message_iter_init_array_iterator)
7454         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7455         indicate whether the iterator is empty
7456
7457         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7458         warnings
7459
7460 2004-03-19  Havoc Pennington  <hp@redhat.com>
7461
7462         * NEWS: 0.21 updates
7463
7464         * configure.in: 0.21
7465
7466         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7467         
7468         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7469         you don't need pyrex to make dist
7470
7471         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7472         sources; run moc
7473         
7474 2004-03-18  Richard Hult  <richard@imendio.com>
7475
7476         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7477         (dbus_message_set_auto_activation): Add doxygen docs.
7478
7479 2004-03-16  Richard Hult  <richard@imendio.com>
7480
7481         * bus/activation.c: (bus_activation_service_created),
7482         (bus_activation_send_pending_auto_activation_messages),
7483         (bus_activation_activate_service):
7484         * bus/activation.h:
7485         * bus/dispatch.c: (bus_dispatch),
7486         (check_nonexistent_service_auto_activation),
7487         (check_service_auto_activated),
7488         (check_segfault_service_auto_activation),
7489         (check_existent_service_auto_activation), (bus_dispatch_test):
7490         * bus/driver.c: (bus_driver_handle_activate_service):
7491         * bus/services.c: (bus_registry_acquire_service):
7492         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7493         (dbus_message_get_auto_activation):
7494         * dbus/dbus-message.h:
7495         * dbus/dbus-protocol.h: Implement auto-activation.
7496         
7497         * doc/dbus-specification.xml: Add auto-activation to the spec.
7498
7499 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7500
7501         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7502         fix a bug with CUSTOM types.
7503
7504         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7505         a unit test for this bug (used to fail).
7506
7507 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7508
7509         * bus/activation.c:
7510         (babysitter_watch_callback): notify all pending activations waiting for
7511           the same exec that the activation failed.
7512         (bus_activation_activate_service): shortcut the activation if we 
7513           already waiting for the same executable to start up.
7514
7515 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7516
7517         * bus/activation.c: 
7518         - Added service file reloading. 
7519           Each service files directory is kept in an hash table in 
7520           BusActivation and each BusActivationEntry knows what .service-file it
7521           was read from. So when you try to activate a service the bus will 
7522           check if it's been updated, removed or if new .service-files has 
7523           been installed.
7524         - Test code at the bottom for the service file reloading.
7525         * bus/test-main.c: (main):
7526         * bus/test.h:
7527         - added service reloading test.
7528         * dbus/dbus-sysdeps.c: 
7529         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7530
7531 2004-03-08  Michael Meeks  <michael@ximian.com>
7532
7533         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7534         bail immediately if disconnected, to avoid busy loop.
7535
7536         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7537         cleanup cut/paste/inefficiency.
7538
7539 2004-03-01  David Zeuthen  <david@fubar.dk>
7540
7541         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7542         bug where args were used twice. This bug resulted in a segfault
7543         on a Debian/PPC system when starting the messagebus daemon. Include
7544         dbus-sysdeps.h for DBUS_VA_COPY
7545
7546         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7547
7548         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7549         appropriate va_copy implementation. From GLib
7550         
7551 2004-02-24  Joe Shaw  <joe@ximian.com>
7552
7553         * bus/services.c (bus_registry_acquire_service): We need to pass
7554         in the service name to dbus_set_error() to prevent a crash.
7555
7556 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7557
7558         * AUTHORS: Reveal my True identity.
7559
7560 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7561
7562         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7563         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7564
7565 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7566
7567         * doc/TODO: Added not about better error check of configuration files.
7568
7569 2003-12-02  Richard Hult  <richard@imendio.com>
7570
7571         * Update AFL version to 2.0 throughout the source files to reflect
7572         the update that was done a while ago.
7573
7574 2003-12-02  Richard Hult  <richard@imendio.com>
7575
7576         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7577         wrote_dict_key to FALSE on the iter that the dict is appended to,
7578         just like when appending other types. Fixes a bug where a dict
7579         couldn't be put inside a dict.
7580         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7581         (message_iter_test, _dbus_message_test): Add test case for dict
7582         inside dict.
7583
7584 2003-12-01  David Zeuthen  <david@fubar.dk>
7585
7586         * python/dbus.py: Add the actual message when calling the reciever
7587         of a signal such that parameters can be inspected. Add the method
7588         remove_signal_receiver
7589         
7590 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7591
7592         * bus/*.[ch]:
7593         * dbus/*.[ch]:
7594         * glib/*.[ch]: Made ref functions return the pointer
7595
7596 2003-11-25  Zack Rusin  <zack@kde.org>
7597
7598         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7599
7600         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7601         wrappers,
7602
7603         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7604         the Integrator and to better fit with the server,
7605
7606 2003-11-24  Zack Rusin  <zack@kde.org>
7607
7608         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7609         the integrator handles it now
7610
7611         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7612         since QTimer wasn't really meant to be used the way DBusTimeout is
7613
7614 2003-11-24  Zack Rusin  <zack@kde.org>
7615
7616         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7617         Integrator class which integrates D-BUS with the Qt event loop,
7618
7619         * qt/connection.h, qt/connection.cpp: Move all the code which
7620         was dealing with D-BUS integration to the Integrator class,
7621         and start using Integrator,
7622
7623 2003-11-23  Zack Rusin  <zack@kde.org>
7624
7625         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7626         wrapper
7627
7628         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7629         switching namespaces to DBusQt, reworking the class,
7630
7631         * Makefile.cvs: switching dependencies so that it matches KDE 
7632         schematics,
7633         
7634         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7635         the library
7636
7637 2003-11-19  Havoc Pennington  <hp@redhat.com>
7638
7639         * NEWS: update
7640
7641         * configure.in: bump version to 0.20
7642
7643         * configure.in (have_qt): add yet another place to look for qt
7644         (someone hand trolltech a .pc file...)
7645
7646 2003-11-01  Havoc Pennington  <hp@redhat.com>
7647
7648         * doc/dbus-specification.xml: add state machine docs on the auth
7649         protocol; just a first draft, I'm sure it's wrong.      
7650
7651 2003-10-28  David Zeuthen  <david@fubar.dk>
7652
7653         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7654         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7655         
7656 2003-10-28  Havoc Pennington  <hp@redhat.com>
7657
7658         * dbus/dbus-message.c (get_next_field): delete unused function
7659
7660 2003-10-28  Havoc Pennington  <hp@redhat.com>
7661
7662         * bus/expirelist.c (do_expiration_with_current_time): detect
7663         failure of the expire_func due to OOM
7664
7665         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7666
7667         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7668         NoReply error that's now created by the bus when the service exits
7669
7670 2003-10-28  Havoc Pennington  <hp@redhat.com>
7671
7672         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7673         tests for set_path, set_interface, set_member, etc.
7674
7675         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7676
7677         * dbus/dbus-message.c (set_string_field): always just delete and
7678         re-append the field; accept NULL for deletion
7679         (re_align_fields_recurse): reimplement
7680         
7681 2003-10-26  Havoc Pennington  <hp@redhat.com>
7682
7683         * dbus/dbus-connection.c: fix docs to properly describe the
7684         disconnected message
7685         (_dbus_connection_notify_disconnected): remove this function; 
7686         we can't synchronously add the disconnected message, we have to 
7687         do it after we've queued any remaining real messages
7688         (_dbus_connection_get_dispatch_status_unlocked): queue the
7689         disconnect message only if the transport has finished queueing all
7690         its real messages and is disconnected.
7691         (dbus_connection_disconnect): update the dispatch status here
7692
7693 2003-10-22  Havoc Pennington  <hp@redhat.com>
7694
7695         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7696
7697         * bus/connection.c (bus_transaction_send_from_driver): set the
7698         destination to the connection's base service
7699
7700 2003-10-20  Havoc Pennington  <hp@redhat.com>
7701
7702         hmm, make check is currently not passing.
7703         
7704         * doc/dbus-specification.xml: add requirement that custom type
7705         names follow the same rules as interface names.
7706
7707         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7708         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7709         'map'
7710
7711         * doc/dbus-specification.xml: update type codes to match
7712         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7713         CUSTOM. Add type OBJECT_PATH to the spec.
7714
7715 2003-10-17  Havoc Pennington  <hp@redhat.com>
7716
7717         * bus/driver.c (create_unique_client_name): use "." as separator
7718         in base service names instead of '-'
7719
7720         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7721         byte at the end of the string
7722
7723         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7724         optimization macros since string validation seems to be a slow
7725         point.
7726         
7727         * doc/dbus-specification.xml: restrict valid
7728         service/interface/member/error names. Add test suite code for the
7729         name validation.
7730
7731         * dbus/dbus-string.c: limit service/interface/member/error names 
7732         to [0-9][A-Z][a-z]_
7733
7734         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7735         format arg to verbose spew
7736
7737         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7738         memory, return instead of g_error
7739
7740         * test/test-service.c (path_message_func): support emitting a
7741         signal on request
7742
7743         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7744         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7745         assuming the activation bus was the session bus so that services
7746         started manually will still register.
7747         (init_connections_unlocked): fix so that in OOM situation we get
7748         the same semantics when retrying the function
7749         
7750         * test/test-service.c (main): change to use path registration, to
7751         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7752         than DBUS_BUS_SESSION
7753
7754 2003-10-16  Havoc Pennington  <hp@redhat.com>
7755
7756         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7757
7758         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7759         coverage of the tests
7760         (coverage-report.txt): don't move the .da and .bbg files around
7761
7762 2003-10-16  Havoc Pennington  <hp@redhat.com>
7763
7764         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7765         to put there
7766
7767 2003-10-16  Havoc Pennington  <hp@redhat.com>
7768
7769         * bus/connection.c (bus_pending_reply_expired): either cancel or
7770         execute, not both
7771         (bus_connections_check_reply): use unlink, not remove_link, as we
7772         don't want to free the link; fixes double free mess
7773
7774         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7775         where no reply was received
7776
7777         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7778         fix a refcount leak
7779
7780         * bus/signals.c (match_rule_matches): add special cases for the
7781         bus driver, so you can match on sender/destination for it.
7782
7783         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7784         DBUS_PRINT_BACKTRACE is set
7785
7786         * dbus/dbus-internals.c: add pid to assertion failure messages
7787
7788         * dbus/dbus-connection.c: add message type code to the debug spew
7789
7790         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7791         sender=foo not service=foo
7792
7793         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7794         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7795         DBUS_ACTIVATION_ADDRESS instead
7796
7797         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7798         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7799
7800         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7801         context struct
7802
7803         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7804         (dbus_message_iter_get_object_path_array): new function (half
7805         finished, disabled for the moment)
7806         
7807         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7808         DBUS_MESSAGE_TYPE_ERROR
7809
7810         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7811         avoid redirecting stderr to /dev/null
7812         (babysit): close stdin if not doing the "exit_with_session" thing
7813
7814         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7815         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7816         stdout/stdin, so things don't get confused
7817         
7818         * bus/system.conf.in: fix to allow replies, I modified .conf
7819         instead of .conf.in again.
7820
7821 2003-10-14  David Zeuthen  <david@fubar.dk>
7822
7823         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7824         argtype to arg_type when raising unknown arg type exception.
7825         Changed type list to reflect the changes in dbus-protocol.h so 
7826         the bindings actually work.
7827
7828 2003-10-14  Havoc Pennington  <hp@redhat.com>
7829
7830         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7831         to have a bug keeping it from outputting the .da files sometimes
7832         (string_get_string): don't append garbage nul bytes to the string.
7833
7834 2003-10-15  Seth Nickell  <seth@gnome.org>
7835
7836         * python/Makefile.am:
7837
7838         Include dbus_h_wrapper.h in the dist tarball.
7839
7840 2003-10-14  Havoc Pennington  <hp@redhat.com>
7841
7842         * bus/bus.c (bus_context_check_security_policy): revamp this to
7843         work more sanely with new policy-based requested reply setup
7844
7845         * bus/connection.c (bus_transaction_send_from_driver): set bus
7846         driver messages as no reply
7847
7848         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7849         requested_reply attribute on allow/deny rules
7850
7851         * bus/system.conf: add <allow requested_reply="true"/>
7852
7853         * bus/driver.c (bus_driver_handle_message): fix check for replies
7854         sent to the bus driver, which was backward. How did this ever work
7855         at all though? I think I'm missing something.
7856
7857         * dbus/dbus-message.c (decode_header_data): require error and
7858         method return messages to have a reply serial field to be valid
7859         (_dbus_message_loader_queue_messages): break up this function;
7860         validate that reply serial and plain serial are nonzero; 
7861         clean up the OOM/error handling.
7862         (get_uint_field): don't return -1 from this
7863         (dbus_message_create_header): fix signed/unsigned bug
7864
7865         * bus/connection.c (bus_connections_expect_reply): save serial of
7866         the incoming message, not reply serial
7867
7868 2003-10-14  Havoc Pennington  <hp@redhat.com>
7869
7870         * bus/connection.c: implement pending reply tracking using
7871         BusExpireList
7872
7873         * bus/bus.c (bus_context_check_security_policy): verify that a
7874         reply is pending in order to allow a reply to be sent. Deny 
7875         messages of unknown type.
7876
7877         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7878
7879         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7880         (bus_context_get_reply_timeout): new
7881
7882 2003-10-13  Seth Nickell  <seth@gnome.org>
7883
7884         * python/Makefile.am:
7885
7886         Pass "make distcheck": remove a couple files from DIST_FILES
7887         that weren't included in the final version.
7888
7889 2003-10-12  Havoc Pennington  <hp@pobox.com>
7890
7891         Added test code that 1) starts an actual bus daemon and 2) uses
7892         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7893         more testing possible, but this is the basic framework.
7894         
7895         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7896         empty proxy lists from the proxy list hash
7897
7898         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7899         couple of return_if_fail checks
7900
7901         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7902         to allocate, so everything is cleared to NULL as it should be.
7903
7904         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7905         source as data to dbus_connection_set_timeout_functions() as the 
7906         timeout functions expected
7907
7908         * test/glib/run-test.sh: add a little script to start up a message
7909         bus and run tests using it
7910
7911         * tools/dbus-launch.1: updates
7912
7913         * tools/dbus-launch.c (main): add --config-file option
7914
7915         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7916         that could never be reached.
7917
7918         * dbus/dbus-message.c (dbus_message_new_method_return) 
7919         (dbus_message_new_error, dbus_message_new_signal): set the
7920         no-reply-expected flag on all these. Redundant, but may
7921         as well be consistent.
7922
7923 2003-10-11  Havoc Pennington  <hp@pobox.com>
7924
7925         * test/decode-gcov.c (function_solve_graph): make broken block
7926         graph a nonfatal error since it seems to be broken. Need to debug
7927         this.
7928
7929         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7930         can't just check type > INVALID < LAST anymore
7931
7932         * dbus/dbus-message.c (dbus_message_get_signature): new function
7933         (dbus_message_has_signature): new function
7934         (struct DBusMessage): add signature field (right now it isn't sent
7935         over the wire, just generated on the fly)
7936         (dbus_message_copy): copy the signature, and init strings to
7937         proper length to avoid some reallocs
7938         (dbus_message_iter_init_array_iterator): return void, since it
7939         can't fail
7940         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7941         (_dbus_message_loader_queue_messages): add silly temporary hack to
7942         fill in message->signature on load
7943
7944         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7945         characters, so they are relatively human-readable.
7946
7947 2003-10-11  Havoc Pennington  <hp@pobox.com>
7948
7949         * dbus/dbus-message.c (_dbus_message_test): add more test
7950         coverage, but #if 0 for now since they uncover a bug 
7951         not fixed yet; I think in re_align_field_recurse()
7952         (re_align_field_recurse): add FIXME about broken assertion
7953
7954         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7955
7956         * bus/connection.c: share a couple code bits with expirelist.c
7957
7958         * bus/expirelist.h, bus/expirelist.c: implement a generic
7959         expire-items-after-N-seconds facility, was going to share between
7960         expiring connections and replies, decided not to use for expiring
7961         connections for now.
7962
7963         * COPYING: include AFL 2.0 (still need to change all the file headers)
7964
7965 2003-10-09  Havoc Pennington  <hp@redhat.com>
7966
7967         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7968         gcc 3.3. Not that we do anything about it yet.
7969
7970         * bus/signals.c (bus_match_rule_parse): impose max length on the
7971         match rule text
7972
7973         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7974
7975 2003-10-09  Havoc Pennington  <hp@redhat.com>
7976
7977         Make matching rules theoretically work (add parser).
7978         
7979         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7980         the case where destination is explicitly specified as bus driver
7981         and someone else is eavesdropping.
7982         
7983         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7984         definition of eavesdropping and assertion
7985
7986         * tools/dbus-send.c (main): use dbus_message_type_from_string
7987
7988         * bus/signals.c (bus_match_rule_parse): implement
7989
7990         * dbus/dbus-message.c (dbus_message_type_from_string): new
7991
7992         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7993
7994 2003-10-02  Havoc Pennington  <hp@pobox.com>
7995
7996         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7997         dbus_gproxy_oneway_call
7998
7999         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8000         (dbus_server_setup_with_g_main): fix to allow calling them more
8001         than once on the same args
8002         (dbus_bus_get_with_g_main): new function
8003
8004 2003-10-02  Havoc Pennington  <hp@redhat.com>
8005
8006         * doc/dbus-tutorial.xml: write some stuff
8007
8008 2003-09-29  Havoc Pennington  <hp@pobox.com>
8009
8010         * configure.in: split checks for Doxygen from XML docs, check for
8011         xmlto
8012
8013         * doc/Makefile.am: XML-ify all the docs, and add a blank
8014         dbus-tutorial.xml
8015
8016 2003-09-29  Havoc Pennington  <hp@pobox.com>
8017
8018         * Merge dbus-object-names branch. To see the entire patch 
8019         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8020         it's huuuuge though.
8021         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8022         
8023 2003-09-28  Havoc Pennington  <hp@pobox.com>
8024
8025         * HACKING: update to reflect new server
8026
8027 2003-09-26  Seth Nickell  <seth@gnome.org>
8028
8029         * python/dbus.py:
8030         * python/examples/example-signals.py:
8031
8032         Start implementing some notions of signals. The API
8033         is really terrible, but they sort of work (with the
8034         exception of being able to filter by service, and to
8035         transmit signals *as* a particular service). Need to
8036         figure out how to make messages come from the service
8037         we registered :-(
8038         
8039         * python/dbus_bindings.pyx.in:
8040
8041         Removed duplicate message_handler callbacks.
8042         
8043 2003-09-25  Havoc Pennington  <hp@redhat.com>
8044
8045         * bus/session.conf.in: fix my mess
8046
8047 2003-09-25  Havoc Pennington  <hp@pobox.com>
8048
8049         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8050
8051 2003-09-25  Seth Nickell  <seth@gnome.org>
8052
8053         * python/examples/example-service.py:
8054
8055         Johan notices complete wrong code in example-service, but
8056         completely wrong in a way that works exactly the same (!).
8057         Johan is confused, how could this possibly work? Example
8058         code fails to serve purpose of making things clear.
8059         Seth fixes.
8060
8061 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8062
8063         * doc/dbus-specification.sgml: don't require header fields
8064         to be 4-byte aligned and specify that fields should be
8065         distinguished from padding by the fact that zero is not
8066         a valid field name.
8067         
8068         * doc/TODO: remove re-alignment item and add item to doc
8069         the OBJECT_PATH type.
8070         
8071         * dbus/dbus-message.c:
8072         (HeaderField): rename the original member to value_offset
8073         and introduce a name_offset member to keep track of where
8074         the field actually begins.
8075         (adjust_field_offsets): remove.
8076         (append_int_field), (append_uint_field),
8077         (append_string_field): don't align the start of the header
8078         field to a 4-byte boundary.
8079         (get_next_field): impl finding the next marhsalled field
8080         after a given field.
8081         (re_align_field_recurse): impl re-aligning a number of
8082         already marshalled fields.
8083         (delete_field): impl deleting a field of any type and
8084         re-aligning any following fields.
8085         (delete_int_or_uint_field), (delete_string_field): remove.
8086         (set_int_field), (set_uint_field): no need to re-check
8087         that we have the correct type for the field.
8088         (set_string_field): ditto and impl re-aligning any
8089         following fields.
8090         (decode_header_data): update to take into account that
8091         the fields aren't 4-byte aligned any more and the new
8092         way to distinguish padding from header fields. Also,
8093         don't exit when there is too much header padding.
8094         (process_test_subdir): print the directory.
8095         (_dbus_message_test): add test to make sure a following
8096         field is re-aligned correctly after field deletion.
8097         
8098         * dbus/dbus-string.[ch]:
8099         (_dbus_string_insert_bytes): rename from insert_byte and
8100         allow the insert of multiple bytes.
8101         (_dbus_string_test): test inserting multiple bytes.
8102
8103         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8104         warning note to docs about having to re-align any
8105         marshalled values following the string.
8106         
8107         * dbus/dbus-message-builder.c:
8108         (append_string_field), (_dbus_message_data_load):
8109         don't align the header field.
8110         
8111         * dbus/dbus-auth.c: (process_test_subdir): print the
8112         directory.
8113         
8114         * test/break-loader.c: (randomly_add_one_byte): upd. for
8115         insert_byte change.
8116         
8117         * test/data/invalid-messages/bad-header-field-alignment.message:
8118         new test case.
8119         
8120         * test/data/valid-messages/unknown-header-field.message: shove
8121         a dict in the unknown field.
8122
8123 2003-09-25  Seth Nickell  <seth@gnome.org>
8124
8125         * python/dbus.py:
8126         * python/dbus_bindings.pyx.in:
8127
8128         Handle return values.
8129         
8130         * python/examples/example-client.py:
8131         * python/examples/example-service.py:
8132
8133         Pass back return values from the service to the client.
8134         
8135 2003-09-24  Seth Nickell  <seth@gnome.org>
8136
8137         * python/dbus.py:
8138
8139         Connect Object methods (when you are sharing an object) up... pass
8140         in a list of methods to be shared. Sharing all the methods just
8141         worked out too weird. You can now create nice Services over the
8142         DBus in Python. :-)
8143         
8144         * python/dbus_bindings.pyx.in:
8145
8146         Keep references to user_data tuples passed into C functions so 
8147         Python doesn't garbage collect on us.
8148
8149         Implement MethodReturn and Error subclasses of Message for creating
8150         DBusMessage's of those types.
8151         
8152         * python/examples/example-client.py:
8153         * python/examples/example-service.py:
8154
8155         Simple example code showing both how create DBus services and objects,
8156         and how to use them.
8157
8158 2003-09-23  Havoc Pennington  <hp@pobox.com>
8159
8160         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8161
8162 2003-09-23  Havoc Pennington  <hp@redhat.com>
8163
8164         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8165         (dbus_gproxy_disconnect_signal): implement
8166         (dbus_gproxy_manager_remove_signal_match): implement
8167         (dbus_gproxy_manager_add_signal_match): implement
8168         (dbus_gproxy_oneway_call): implement
8169
8170 2003-09-23  Havoc Pennington  <hp@pobox.com>
8171
8172         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8173         subclass. This means dropping the transparent thread safety of the
8174         proxy; you now need a separate proxy per-thread, or your own
8175         locking on the proxy. Probably right anyway.
8176         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8177
8178 2003-09-22  Havoc Pennington  <hp@redhat.com>
8179
8180         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8181
8182 2003-09-21  Seth Nickell  <seth@gnome.org>
8183
8184         First checkin of the Python bindings.
8185         
8186         * python/.cvsignore:
8187         * python/Makefile.am:
8188         * python/dbus_bindings.pyx.in:
8189         * python/dbus_h_wrapper.h:
8190
8191         Pieces for Pyrex to operate on, building a dbus_bindings.so
8192         python module for low-level access to the DBus APIs.
8193         
8194         * python/dbus.py:
8195
8196         High-level Python module for accessing DBus objects.
8197
8198         * configure.in:
8199         * Makefile.am:
8200
8201         Build stuff for the python bindings.
8202
8203         * acinclude.m4:
8204
8205         Extra macro needed for finding the Python C header files.
8206
8207 2003-09-21  Havoc Pennington  <hp@pobox.com>
8208
8209         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8210         implementing the proxy manager, didn't get very far.
8211
8212         * dbus/dbus-bus.c (dbus_bus_add_match): new
8213         (dbus_bus_remove_match): new
8214
8215         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8216         path_name argument; adjust the other not-yet-implemented 
8217         gproxy constructors to be what I think they should be.
8218
8219 2003-09-21  Havoc Pennington  <hp@pobox.com>
8220
8221         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8222         by default for message bus connections.
8223
8224         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8225         exit_on_disconnect flag is set and we process the disconnected
8226         signal.
8227         (dbus_connection_set_exit_on_disconnect): new function
8228
8229 2003-09-21  Havoc Pennington  <hp@pobox.com>
8230
8231         Get matching rules mostly working in the bus; only actually
8232         parsing the rule text remains. However, the client side of
8233         "signal connections" hasn't been started, this patch is only the
8234         bus side.
8235         
8236         * dbus/dispatch.c: fix for the matching rules changes
8237         
8238         * bus/driver.c (bus_driver_handle_remove_match)
8239         (bus_driver_handle_add_match): send an ack reply from these
8240         method calls
8241
8242         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8243         arguments, reported by Seth Nickell
8244
8245         * bus/config-parser.c (append_rule_from_element): support
8246         eavesdrop=true|false attribute on policies so match rules 
8247         can be prevented from snooping on the system bus.
8248
8249         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8250         and "destination" in attribute names; fix some docs bugs; 
8251         add eavesdrop=true|false attribute
8252
8253         * bus/driver.c (bus_driver_handle_add_match)
8254         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8255         messages
8256
8257         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8258         rid of broadcast service concept, signals are just always broadcast
8259
8260         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8261         mostly implement matching rules stuff (currently only exposed as signal
8262         connections)
8263
8264 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8265
8266         * doc/dbus-specification.sgml: Change the header field name
8267         to be an enum and update the rest of the spec to reference
8268         the fields using the conventinal name.
8269
8270         * dbus/dbus-protocol.h: update to reflect the spec.
8271
8272         * doc/TODO: add item to remove the 4 byte alignment requirement.
8273         
8274         * dbus/dbus-message.c: Remove the code to generalise the
8275         header/body length and serial number header fields as named
8276         header fields so we can reference field names using the 
8277         protocol values.
8278         (append_int_field), (append_uint_field), (append_string_field):
8279         Append the field name as a byte rather than four chars.
8280         (delete_int_or_uint_field), (delete_string_field): reflect the
8281         fact that the field name and typecode now occupy 4 bytes instead
8282         of 8.
8283         (decode_string_field), (decode_header_data): update to reflect
8284         protocol changes and move the field specific encoding from
8285         decode_string_field() back into decode_header_data().
8286         
8287         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8288         Add utility to aid debugging.
8289         
8290         * dbus/dbus-message-builder.c:
8291         (append_string_field), (_dbus_message_data_load): Update to
8292         reflect protocol changes; Change the FIELD_NAME directive
8293         to HEADER_FIELD and allow it to take the field's conventional
8294         name rather than the actual value.
8295         
8296         * test/data/*/*.message: Update to use HEADER_FIELD instead
8297         of FIELD_NAME; Always align the header on an 8 byte boundary
8298         *before* updating the header length.
8299
8300 2003-09-15  Havoc Pennington  <hp@pobox.com>
8301
8302         * dbus/dbus-pending-call.c: add the get/set object data
8303         boilerplate as for DBusConnection, etc. Use generic object data
8304         for the notify callback.
8305
8306         * glib/dbus-gparser.c (parse_node): parse child nodes
8307
8308         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8309         
8310         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8311         contain functions shared between the convenience lib and the
8312         installed lib
8313
8314         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8315         -export-symbols-regex to the GLib library
8316
8317         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8318         fix the locking in here, and add a default handler for
8319         Introspect() that just returns sub-nodes.
8320
8321 2003-09-14  Havoc Pennington  <hp@pobox.com>
8322
8323         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8324         rather than gfoo consistent
8325
8326         * glib/dbus-gproxy.h: delete for now, move contents to
8327         dbus-glib.h, because the include files don't work right since we
8328         aren't in the dbus/ subdir.
8329         
8330         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8331         (dbus_gproxy_end_call): finish
8332         (dbus_gproxy_begin_call): finish
8333
8334         * glib/dbus-gmain.c (dbus_set_g_error): new
8335
8336         * glib/dbus-gobject.c (handle_introspect): include information
8337         about child nodes in the introspection
8338
8339         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8340         function to help in implementation of introspection
8341
8342         * dbus/dbus-object-tree.c
8343         (_dbus_object_tree_list_registered_and_unlock): new function
8344
8345 2003-09-12  Havoc Pennington  <hp@pobox.com>
8346
8347         * glib/dbus-gidl.h: add common base class for all the foo_info
8348         types
8349
8350         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8351         similar to kdcop
8352
8353         * test/Makefile.am: try test srcdir -ef . in addition to test
8354         srcdir = ., one of them should work (yeah lame)
8355         
8356         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8357         library
8358         
8359         * glib/dbus-gparser.h: make description_load routines return
8360         NodeInfo* not Parser*
8361
8362         * Makefile.am (SUBDIRS): build test dir after all library dirs
8363
8364         * configure.in: add GTK+ detection
8365
8366 2003-09-07  Havoc Pennington  <hp@pobox.com>
8367
8368         * Make Doxygen contented.
8369
8370 2003-09-07  Havoc Pennington  <hp@pobox.com>
8371
8372         * doc/dbus-specification.sgml: more updates
8373
8374 2003-09-06  Havoc Pennington  <hp@pobox.com>
8375
8376         * doc/dbus-specification.sgml: partial updates
8377
8378         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8379         zillionth time; hopefully I edited the right file this time.
8380
8381         * bus/config-parser.c (append_rule_from_element): support
8382         send_type, send_path, receive_type, receive_path
8383
8384         * bus/policy.c: add message type and path to the list of things
8385         that can be "firewalled"
8386
8387 2003-09-06  Havoc Pennington  <hp@pobox.com>
8388
8389         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8390         (dbus_connection_register_object_path): make this not handle
8391         messages to paths below the given path
8392
8393 2003-09-03  Havoc Pennington  <hp@pobox.com>
8394
8395         * test/glib/Makefile.am: add this with random glib-linked test
8396         programs
8397
8398         * glib/Makefile.am: remove the random test programs from here,
8399         leave only the unit tests
8400
8401         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8402         uscore/javacaps conversion, and fix     
8403         (get_object_property, set_object_property): change to .NET
8404         convention for mapping props to methods, set_FooBar/get_FooBar, 
8405         since one language has such a convention we may as well copy it. 
8406         Plus real methods in either getFooBar or get_foo_bar style won't 
8407         collide with this convention.
8408
8409 2003-09-01  Havoc Pennington  <hp@pobox.com>
8410
8411         * glib/dbus-gparser.c: implement
8412
8413         * glib/dbus-gobject.c: start implementing skeletons support
8414
8415         * configure.in: when disabling checks/assert, also define
8416         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8417
8418 2003-09-01  Havoc Pennington  <hp@pobox.com>
8419
8420         * glib/Makefile.am: rearrange a bunch of files and get "make
8421         check" framework set up
8422
8423 2003-08-31  Havoc Pennington  <hp@pobox.com>
8424
8425         * fix build with --disable-tests
8426
8427 2003-08-30  Havoc Pennington  <hp@pobox.com>
8428
8429         * dbus/dbus-connection.c: purge DBusMessageHandler
8430
8431         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8432         use callbacks everywhere
8433
8434 2003-08-30  Havoc Pennington  <hp@pobox.com>
8435
8436         * test/data/valid-config-files/system.d/test.conf: change to 
8437         root for the user so warnings don't get printed
8438
8439         * dbus/dbus-message.c: add dbus_message_get_path,
8440         dbus_message_set_path
8441         
8442         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8443         dispatching to a path
8444
8445         * dbus/dbus-string.c (_dbus_string_validate_path): add
8446
8447         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8448         (_dbus_marshal_object_path): implement
8449
8450         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8451         to contain the path to the target object
8452         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8453         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8454
8455 2003-08-30  Havoc Pennington  <hp@pobox.com>
8456
8457         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8458
8459 2003-08-29  Havoc Pennington  <hp@pobox.com>
8460
8461         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8462         registered
8463         (struct DBusObjectSubtree): shrink this
8464         a lot, since we may have a lot of them
8465         (_dbus_object_tree_free_all_unlocked): implement
8466         (_dbus_object_tree_dispatch_and_unlock): implement
8467
8468 2003-08-29  Havoc Pennington  <hp@pobox.com>
8469
8470         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8471
8472 2003-08-28  Havoc Pennington  <hp@pobox.com>
8473
8474         purge DBusObjectID
8475         
8476         * dbus/dbus-connection.c: port to no ObjectID, create a
8477         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8478
8479         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8480         everything except UnregisterFunction and MessageFunction
8481         
8482         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8483         add DBUS_TYPE_OBJECT_PATH
8484         
8485         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8486         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8487         path-based object IDs
8488
8489 2003-08-25  Havoc Pennington  <hp@pobox.com>
8490
8491         Just noticed that dbus_message_test is hosed, I wonder when I
8492         broke that. I thought make check was passing earlier...
8493         
8494         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8495         container tree, will replace most of dbus-object-registry
8496
8497         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8498         screwup
8499
8500 2003-08-19  Havoc Pennington  <hp@pobox.com>
8501
8502         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8503         (dbus_message_is_error): fix this function
8504
8505         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8506         match
8507
8508         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8509         reflect clarified man page
8510         (bus_client_policy_check_can_send): ditto
8511         
8512         * bus/session.conf.in: fixup
8513
8514         * bus/system.conf.in: fixup
8515
8516 2003-08-18  Havoc Pennington  <hp@redhat.com>
8517
8518         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8519
8520         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8521         dumb bug created earlier (wrong order of args to
8522         decode_header_data())
8523         
8524         * tools/dbus-send.c: port
8525
8526         * tools/dbus-print-message.c (print_message): port
8527
8528         * test/data/*messages: port all messages over
8529         
8530         * dbus/dbus-message-builder.c: support including 
8531         message type
8532         
8533         * bus/driver.c: port over
8534         
8535         * bus/dispatch.c: port over to new stuff
8536
8537         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8538         rename disconnect signal to "Disconnected"
8539
8540 2003-08-17  Havoc Pennington  <hp@pobox.com>
8541
8542         This doesn't compile yet, but syncing up so I can hack on it from
8543         work. What are branches for if not broken code? ;-)
8544         
8545         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8546         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8547         DBUS_HEADER_FIELD_ERROR_NAME
8548         
8549         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8550         for the interface+member pairs
8551         (string_hash): change to use g_str_hash algorithm
8552         (find_direct_function, find_string_function): refactor these to
8553         share most code.
8554         
8555         * dbus/dbus-message.c: port all of this over to support 
8556         interface/member fields instead of name field
8557
8558         * dbus/dbus-object-registry.c: port over
8559         
8560         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8561         from _dbus_string_validate_name
8562
8563         * bus/dbus-daemon-1.1: change file format for the 
8564         <deny>/<allow> stuff to match new message naming scheme
8565
8566         * bus/policy.c: port over
8567
8568         * bus/config-parser.c: parse new format
8569         
8570 2003-08-16  Havoc Pennington  <hp@pobox.com>
8571
8572         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8573         broken assertion
8574
8575         * glib/dbus-gproxy.c: some hacking
8576
8577 2003-08-15  Havoc Pennington  <hp@redhat.com>
8578
8579         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8580
8581         * dbus/dbus-connection.c
8582         (dbus_connection_send_with_reply_and_block): factor out internals;
8583         change to convert any error replies to DBusError instead of 
8584         returning them as a message
8585
8586 2003-08-15  Havoc Pennington  <hp@pobox.com>
8587
8588         * dbus/dbus-connection.c, 
8589         dbus/dbus-pending-call.c: Finish the pending call stuff
8590
8591 2003-08-14  Havoc Pennington  <hp@redhat.com>
8592
8593         * dbus/dbus-pending-call.c: start on new object that will replace
8594         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8595         replies
8596
8597         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8598         with remote interfaces
8599
8600         * dbus/dbus-gidl.c: do the boring boilerplate in here
8601         
8602 2003-08-12  Havoc Pennington  <hp@pobox.com>
8603
8604         * bus/dispatch.c (bus_dispatch): make this return proper 
8605         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8606
8607         * dbus/dbus-errors.c (dbus_set_error): use
8608         _dbus_string_append_printf_valist
8609
8610         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8611         (_dbus_string_append_printf): new
8612
8613         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8614         UNKNOWN_METHOD
8615
8616         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8617         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8618         message is unhandled.
8619
8620 2003-08-11  Havoc Pennington  <hp@pobox.com>
8621
8622         * bus/test.c (client_disconnect_handler): change to return
8623         HANDLED (would have been REMOVE_MESSAGE)
8624
8625         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8626         HANDLED/NOT_YET_HANDLED instead of
8627         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8628         should be used.
8629
8630 2003-08-10  Havoc Pennington  <hp@pobox.com>
8631
8632         * tools/dbus-send.c (main): add --type argument, for now
8633         supporting only method_call and signal types.
8634
8635         * tools/dbus-print-message.c: print message type
8636
8637         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8638         init connection->objects
8639
8640         * doc/dbus-specification.sgml: fix sgml
8641
8642         * bus/*.c: port over to object-instance API changes
8643
8644         * test/test-service.c: ditto
8645         
8646         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8647         name, we will have to fix up the rest of the code to also handle
8648         this
8649         (dbus_message_new): generic message-creation call
8650         (set_string_field): allow appending name field
8651
8652 2003-08-06  Havoc Pennington  <hp@pobox.com>
8653
8654         * dbus/dbus-object-registry.c: implement signal connection 
8655         and dispatch
8656
8657         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8658
8659         * dbus/dbus-internals.c (_dbus_memdup): new function
8660
8661 2003-08-02  Havoc Pennington  <hp@pobox.com>
8662
8663         * dbus/dbus-message.c (dbus_message_get_no_reply)
8664         (dbus_message_set_no_reply): add these and remove
8665         set_is_error/get_is_error
8666
8667         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8668         remove the ERROR flag, since there's now an ERROR type
8669
8670 2003-08-01  Havoc Pennington  <hp@pobox.com>
8671
8672         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8673         implement
8674
8675         * dbus/dbus-message.c (dbus_message_get_type): new function
8676
8677         * doc/dbus-specification.sgml: add "type" byte to messages
8678
8679 2003-08-01  Havoc Pennington  <hp@pobox.com>
8680
8681         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8682         a message type enum to distinguish kinds of message
8683         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8684         that need not be replied to
8685
8686 2003-08-01  Havoc Pennington  <hp@pobox.com>
8687
8688         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8689         (unpack_8_octets): fix no-64-bit-int bug
8690
8691         * dbus/dbus-object-registry.c (validate_id): validate the 
8692         connection ID bits, not just the instance ID.
8693
8694         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8695         the connection-global 33 bits of the object ID
8696
8697         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8698         object ID in the new way
8699
8700         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8701         define server/client/instance bits.
8702
8703 2003-07-30  Havoc Pennington  <hp@pobox.com>
8704
8705         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8706         build
8707
8708 2003-07-13  Havoc Pennington  <hp@pobox.com>
8709
8710         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8711         fields to DBusObjectVTable and DBusObjectInfo
8712
8713 2003-07-12  Havoc Pennington  <hp@pobox.com>
8714
8715         * dbus/dbus-object-registry.c: implement unit test,
8716         fix bugs discovered in process
8717
8718         * dbus/dbus-connection.c: remove handler_table and
8719         register_handler(), add DBusObjectRegistry usage
8720
8721         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8722         (dbus_object_id_set_null): new functions
8723
8724 2003-07-08  Havoc Pennington  <hp@pobox.com>
8725
8726         * dbus/dbus-object.c: implement some of this
8727
8728         * dbus/dbus-object-registry.c
8729         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8730         param
8731         (_dbus_object_registry_new): handle OOM
8732
8733 2003-07-08  Havoc Pennington  <hp@pobox.com>
8734
8735         * dbus/dbus-object.h: sketch out an API for registering objects
8736         with a connection, that allows us to use as little as 24 bytes
8737         per object and lets application code represent an object in 
8738         any conceivable way.
8739
8740         * dbus/dbus-object-registry.c: implement the hard bits of the
8741         DBusConnection aspect of object API. Not yet wired up.
8742         
8743 2003-07-06  Havoc Pennington  <hp@pobox.com>
8744
8745         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8746         (_dbus_marshal_object_id): new
8747         (_dbus_demarshal_object_id): new
8748         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8749         consolidate identical switch cases. Don't conditionalize handling
8750         of DBUS_TYPE_UINT64, need to handle the type always.
8751         (_dbus_marshal_validate_arg): consolidate identical cases, and
8752         handle DBUS_TYPE_OBJECT_ID
8753
8754         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8755
8756         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8757
8758 2003-09-28  Havoc Pennington  <hp@pobox.com>
8759
8760         * real 0.13 release
8761
8762 2003-09-28  Havoc Pennington  <hp@pobox.com>
8763
8764         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8765         to work with Debian db2html
8766
8767 2003-09-28  Havoc Pennington  <hp@pobox.com>
8768
8769         * configure.in: 0.13
8770
8771         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8772         stylesheet-images for benefit of Debian
8773         
8774         Change back to using filesystem-linked sockets for the system
8775         bus, so only root can create the default system bus address.
8776         
8777         * bus/system.conf.in: change to use
8778         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8779
8780         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8781         from here.
8782
8783         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8784         here, and AC_DEFINE DBUS_SYSTEM_PATH
8785
8786 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8787
8788         * doc/TODO:
8789         * doc/busconfig.dtd:
8790         Add busconfig DTD.
8791         
8792 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8793
8794         * doc/dbus-specification.sgml:
8795         Add activation reply values.
8796         
8797 2003-08-05  Havoc Pennington  <hp@redhat.com>
8798
8799         * configure.in: 0.12
8800
8801 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8802
8803         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8804         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8805         (add_watch), (remove_watch), (create_source):
8806         Refcount fds, fixes some reentrancy issues.
8807         
8808 2003-07-30  Havoc Pennington  <hp@redhat.com>
8809
8810         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8811         bus address to be abstract if we have abstract sockets
8812
8813         * NEWS: update
8814
8815 2003-07-28  Havoc Pennington  <hp@redhat.com>
8816
8817         * bus/messagebus.in: fix to avoid processname/servicename 
8818         confusion, from Michael Kearey
8819         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8820         
8821 2003-07-23  Havoc Pennington  <hp@pobox.com>
8822
8823         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8824         fix from Andy Hanton to remove broken "+1"
8825
8826 2003-07-16  Havoc Pennington  <hp@pobox.com>
8827
8828         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8829         babysitter process, as suggested by Thomas Leonard, so 
8830         an "eval `dbus-launch --exit-with-session`" will actually 
8831         return
8832
8833 2003-07-16  Havoc Pennington  <hp@pobox.com>
8834
8835         * configure.in: print out EXPANDED_* variables in the summary at
8836         the end; clean up the code that computes EXPANDED_ variables and
8837         get the ones using exec_prefix right. Should make things work
8838         when you build without --prefix
8839
8840 2003-06-29  Havoc Pennington  <hp@pobox.com>
8841
8842         * mono/Test.cs (class Test): fire up a main loop and run it
8843
8844         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8845         done once, the app has to do it
8846
8847 2003-06-26  Havoc Pennington  <hp@pobox.com>
8848
8849         * mono/Connection.cs: set up connection with the glib main loop
8850
8851 2003-07-01  Havoc Pennington  <hp@redhat.com>
8852
8853         * doc/dbus-specification.sgml: clarify the format of a type code,
8854         change suggested by Jim Blandy
8855
8856 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8857
8858         * doc/Makefile.am:
8859         * tools/Makefile.am: Don't assume srcdir == builddir.
8860
8861         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8862         the allocated block.
8863         (_dbus_memory_test): New function.
8864         * dbus/dbus-test.h: Add _dbus_memory_test ().
8865         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8866
8867         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8868         of %c%c%c%c.
8869         (dbus_message_new): Remove obsolete @todo.
8870
8871         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8872         (_dbus_marshal_set_uint64): Fix comment.
8873
8874         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8875         hardcode FIELD_REPLY_SERIAL.
8876
8877         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8878         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8879
8880         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8881         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8882
8883 2003-06-24  Havoc Pennington  <hp@pobox.com>
8884
8885         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8886
8887 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8888
8889         * configure.in:
8890         * gcj/.cvsignore:
8891         * gcj/Hello.java:
8892         * gcj/Makefile.am:
8893         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8894         * gcj/org/.cvsignore:
8895         * gcj/org/Makefile.am:
8896         * gcj/org/freedesktop/.cvsignore:
8897         * gcj/org/freedesktop/Makefile.am:
8898         * gcj/org/freedesktop/dbus/.cvsignore:
8899         * gcj/org/freedesktop/dbus/Makefile.am:
8900         * gcj/org/freedesktop/dbus/Message.java: (Message),
8901         (Message.Message):
8902         * gcj/org/freedesktop/dbus/natMessage.cc:
8903         Fix the build system.
8904
8905 2003-06-22  Havoc Pennington  <hp@pobox.com>
8906
8907         * mono/Connection.cs: add more bindings
8908
8909         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8910         more than once.
8911
8912 2003-06-22  Havoc Pennington  <hp@pobox.com>
8913
8914         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8915         Start wrapping more stuff.
8916
8917 2003-06-22  Havoc Pennington  <hp@pobox.com>
8918
8919         * mono/Message.cs: implement Message.Wrap() that ensures we only
8920         have a single C# wrapper per DBusMessage, assuming it works which
8921         it probably doesn't.
8922
8923         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8924         (dbus_message_free_data_slot): new
8925         (dbus_message_set_data): new
8926         (dbus_message_get_data): new
8927
8928 2003-06-22  Havoc Pennington  <hp@pobox.com>
8929
8930         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8931         (_dbus_data_slot_allocator_alloc): rework these to keep a
8932         reference count on each slot and automatically manage a global
8933         slot ID variable passed in by address
8934
8935         * bus/bus.c: convert to new dataslot API
8936
8937         * dbus/dbus-bus.c: convert to new dataslot API
8938
8939         * dbus/dbus-connection.c: convert to new dataslot API
8940
8941         * dbus/dbus-server.c: convert to new dataslot API
8942
8943         * glib/dbus-gmain.c: ditto
8944
8945         * bus/test.c: ditto
8946
8947         * bus/connection.c: ditto
8948
8949 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8950
8951         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8952         after the gcj checks so that the correct configuration tags
8953         will be added to libtool.
8954
8955         * dbus-glib-1.pc.in: No need to specify any includes since
8956         dbus-1.pc.in has those.
8957
8958 2003-06-22  Havoc Pennington  <hp@pobox.com>
8959
8960         * mono/*, gcj/*, configure.in, Makefile.am:
8961         Check in makefiles and subdirs for mono and gcj bindings.
8962         Neither binding actually exists, just trying to get through
8963         all the build and other boring bits.
8964
8965 2003-06-21  Philip Blundell  <philb@gnu.org>
8966
8967         * tools/dbus-monitor.1: Updated.
8968
8969         * tools/dbus-send.1: Likewise.
8970
8971 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8972
8973         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8974         for hangup and error after checking read so we won't discard
8975         pending data if both hangup and read are set.
8976
8977 2003-06-19  Philip Blundell  <philb@gnu.org>
8978
8979         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8980
8981         * tools/dbus-send.c: Accept both --system and --session.
8982
8983         * tools/dbus-monitor.c: Same here.
8984
8985 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8986
8987         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8988         from C++ (Patch by Miloslav Trmac).
8989
8990 2003-06-15  Joe Shaw  <joe@assbarn.com>
8991
8992         * configure.in: Check for socklen_t.
8993
8994         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8995
8996         * test/test-segfault.c: Add #include <sys/time.h>
8997
8998         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8999         dbus-launch needs it.
9000
9001 2003-06-09  Havoc Pennington  <hp@redhat.com>
9002
9003         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9004         SUN_LEN, it breaks abstract socket usage
9005
9006         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9007         starts of lines.
9008
9009 2003-06-04  Havoc Pennington  <hp@pobox.com>
9010
9011         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9012         using unix:abstract=/foo, and when listening in a tmpdir
9013         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9014
9015         * dbus/dbus-transport.c (_dbus_transport_open): support
9016         unix:abstract=/foo
9017
9018         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9019         support abstract sockets
9020
9021         * dbus/dbus-transport-unix.c
9022         (_dbus_transport_new_for_domain_socket): support abstract sockets
9023
9024         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9025         toggle as an argument, implement abstract namespace support
9026         (_dbus_listen_unix_socket): ditto
9027
9028         * configure.in: add --enable-abstract-sockets and implement
9029         a configure check for autodetection of the right value.
9030
9031 2003-06-01  Havoc Pennington  <hp@pobox.com>
9032
9033         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9034         in /tmp (though on Linux this will end up being useless,
9035         when we add abstract namespace support)
9036
9037         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9038         subst'ing it
9039
9040 2003-05-28  Colin Walters  <walters@verbum.org>
9041
9042         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9043
9044 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9045
9046         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9047
9048 2003-05-17  Colin Walters  <walters@gnu.org>
9049
9050         * tools/dbus-send.c: Don't exit with an error code if --help was
9051         passed.  Default to using the session bus instead of the system
9052         one.
9053
9054         * tools/dbus-launch.c: Ditto.
9055
9056         * tools/dbus-monitor.c: Ditto.
9057
9058         * tools/dbus-send.1: Update with new arguments.
9059
9060         * tools/dbus-launch.c: Emit code to export variables.  New
9061         arguments -s and -c to specify shell syntax, and a bit of code to
9062         autodetect syntax.  Also, allow specifying a program to run.
9063
9064         * tools/dbus-launch.1: Update with new arguments.
9065
9066         * tools/dbus-send.1: Ditto.
9067
9068         * tools/dbus-monitor.1: Ditto.
9069
9070 2003-05-17  Havoc Pennington  <hp@pobox.com>
9071
9072         * bus/config-parser.c (merge_included): merge in policies from
9073         child configuration file.
9074
9075         * bus/policy.c (bus_policy_merge): function to merge two policies
9076         together
9077
9078 2003-05-16  Havoc Pennington  <hp@redhat.com>
9079
9080         * dbus/dbus-connection.c: disable verbose lock spew
9081
9082         * tools/dbus-send.c: add --print-reply command line option
9083
9084         * tools/dbus-print-message.h (print_message): new util function
9085         shared by dbus-send and dbus-monitor
9086
9087         * tools/dbus-monitor.c (handler_func): exit on disconnect
9088
9089         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9090         disconnected, don't try to use the read_watch
9091
9092         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9093         so we can find this bug more easily
9094
9095 2003-05-16  Havoc Pennington  <hp@redhat.com>
9096
9097         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9098         NULL as DBusHashTable is annoyingly likely to do.
9099
9100 2003-05-16  Colin Walters  <walters@verbum.org>
9101
9102         * tools/dbus-monitor.c: Add --session argument and usage()
9103         function.
9104
9105         * tools/dbus-monitor.1: Update with new --session arg.
9106
9107         * bus/Makefile.am (install-data-hook): Create
9108         $(libdir)/dbus-1.0/services so that the session bus is happy.
9109
9110 2003-05-15  Havoc Pennington  <hp@redhat.com>
9111
9112         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9113         on non-x86. ifdef's are evil.
9114
9115 2003-05-15  Havoc Pennington  <hp@redhat.com>
9116
9117         * configure.in: 0.11
9118
9119         * NEWS: update
9120
9121         * bus/Makefile.am (initddir): apparently we are supposed to put
9122         init scripts in /etc/rc.d/init.d not /etc/init.d
9123
9124         * bus/Makefile.am: remove the "you must --enable-tests to make
9125         check" as it broke distcheck
9126
9127         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9128
9129 2003-05-13  James Willcox  <jwillcox@gnome.org>
9130
9131         * configure.in:
9132         * bus/activation.c: (bus_activation_service_created),
9133         (bus_activation_activate_service):
9134         * bus/driver.c: (bus_driver_send_service_deleted),
9135         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9136         (bus_driver_send_service_acquired),
9137         (bus_driver_send_welcome_message),
9138         (bus_driver_handle_list_services):
9139         * bus/session.conf.in:
9140         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9141         (dbus_bus_service_exists), (dbus_bus_activate_service):
9142         * dbus/dbus-bus.h:
9143
9144         Add some convenience API which lets you activate a service, and did a
9145         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9146         and dbus_message_get_args()
9147
9148 2003-05-11  Havoc Pennington  <hp@pobox.com>
9149
9150         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9151         calling _dbus_marshal_validate_arg() for every byte in a byte
9152         array, etc.
9153
9154         * dbus/dbus-message-handler.c: use atomic reference counting to
9155         reduce number of locks slightly; the global lock in here sucks
9156
9157         * dbus/dbus-connection.c
9158         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9159         update_dispatch_status that can be called with lock held; then use
9160         in a couple places to reduce locking/unlocking
9161         (dbus_connection_send): hold the lock over the whole function
9162         instead of acquiring it twice.
9163
9164         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9165
9166         * bus/connection.c (bus_connections_setup_connection): fix access
9167         to already-freed memory.
9168
9169         * dbus/dbus-connection.c: keep a little cache of linked list
9170         nodes, to avoid using the global linked list alloc lock in the
9171         normal send-message case. Instead we just use the connection lock
9172         that we already have to take.
9173
9174         * dbus/dbus-list.c (_dbus_list_find_last): new function
9175
9176         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9177         change to use a struct for the atomic type; fix docs,
9178         they return value before increment, not after increment.
9179
9180         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9181         (_dbus_string_append_8_aligned): new functions to try to
9182         microoptimize this operation.
9183         (reallocate_for_length): break this out of set_length(), to
9184         improve profile info, and also so we can consider inlining the
9185         set_length() part.
9186
9187         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9188         strings with some preallocation, cuts down on our calls to realloc
9189         a fair bit. Though if we can get the "move entire string to empty
9190         string" optimization below to kick in here, it would be better.
9191
9192         * dbus/dbus-string.c (_dbus_string_move): just call
9193         _dbus_string_move_len
9194         (_dbus_string_move_len): add a special case for moving
9195         an entire string into an empty string; we can just
9196         swap the string data instead of doing any reallocs.
9197         (_dbus_string_init_preallocated): new function
9198
9199 2003-05-11  Havoc Pennington  <hp@pobox.com>
9200
9201         Write a "test-profile" that does echo client-server with threads;
9202         profile reveals lock contention, memcpy/realloc of buffers, and
9203         UTF-8 validation as hot spots. 20% of lock contention eliminated
9204         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9205         contention is global mempool locks for GList and DBusList.
9206
9207         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9208         x86 implementation
9209
9210         * dbus/dbus-connection.c (struct DBusConnection): use
9211         dbus_atomic_t for the reference count
9212
9213         * dbus/dbus-message.c (struct DBusMessage): declare
9214         dbus_atomic_t values as volatile
9215
9216         * configure.in: code to detect ability to use atomic integer
9217         operations in assembly, from GLib patch
9218
9219         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9220         time, tired of it being wrong in threads and forked processes
9221
9222         * glib/test-profile.c: a little program to bounce messages back
9223         and forth between threads and eat CPU
9224
9225         * dbus/dbus-connection.c: add debug spew macros for debugging
9226         thread locks; include config.h at top; fix deadlock in
9227         dbus_connection_flush()
9228
9229 2003-05-08  Havoc Pennington  <hp@pobox.com>
9230
9231         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9232         data from getting written, and there wasn't a good reason to
9233         use _exit really.
9234
9235         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9236         dbus_verbose lines in test coverage
9237         (main): add list of functions sorted by # of untested blocks
9238         to the coverage report
9239
9240         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9241
9242         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9243
9244         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9245         extend test coverage
9246
9247         * test/data/auth/cancel.auth-script: test canceling an
9248         authentication
9249
9250         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9251         aren't used. in CVS history if we end up needing them.
9252
9253 2003-05-04  Havoc Pennington  <hp@pobox.com>
9254
9255         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9256         unit test
9257
9258         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9259         function, which assumed length was in # of strings, not bytes
9260
9261         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9262         missing coverage
9263
9264         * dbus/dbus-connection.c
9265         (_dbus_connection_queue_received_message): disable function for
9266         now, we are only using it in test mode
9267
9268         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9269         remove a mistaken FIXME
9270
9271 2003-05-04  Havoc Pennington  <hp@pobox.com>
9272
9273         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9274         unlock mutex on successful return, patch from Anders Gustafsson
9275
9276 2003-05-04  Havoc Pennington  <hp@pobox.com>
9277
9278         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9279         Anders Gustafsson
9280
9281 2003-05-04  Havoc Pennington  <hp@pobox.com>
9282
9283         * tools/dbus-launch.c: implement
9284
9285         * bus/main.c (main), bus/bus.c (bus_context_new):
9286         implement --print-pid and --fork
9287
9288 2003-05-03  Havoc Pennington  <hp@redhat.com>
9289
9290         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9291         the address had no value, and add to test suite. Fix and
9292         regression test from Miloslav Trmac
9293
9294 2003-05-03  Havoc Pennington  <hp@pobox.com>
9295
9296         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9297         watch is invalid when handled
9298
9299         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9300         dbus-launch utility to launch the bus from a shell script.  Didn't
9301         actually implement dbus-launch yet, it's just a placeholder still.
9302
9303 2003-05-03  Havoc Pennington  <hp@pobox.com>
9304
9305         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9306         daemon; also documents daemon config file, so replaces
9307         doc/config-file.txt. Corrected some stuff from config-file.txt in
9308         the process of moving it.
9309
9310 2003-05-03  Havoc Pennington  <hp@pobox.com>
9311
9312         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9313         add some man pages
9314
9315 2003-05-03  Colin Walters  <walters@verbum.org>
9316
9317         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9318         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9319
9320         * Makefile.am: Update to use new .pc versioning scheme.
9321
9322 2003-05-02  Havoc Pennington  <hp@redhat.com>
9323
9324         * bus/system.conf.in: allow send/receive to/from message bus
9325         service
9326
9327 2003-04-30  Havoc Pennington  <hp@redhat.com>
9328
9329         * configure.in: print a note when building with unit tests and
9330         without assertions
9331
9332 2003-04-30  Havoc Pennington  <hp@redhat.com>
9333
9334         * Makefile.am: add a check-local that complains if you didn't
9335         configure with --enable-tests
9336
9337 2003-04-29  Havoc Pennington  <hp@redhat.com>
9338
9339         * glib/dbus-gmain.c: docs cleanups
9340
9341         * dbus/dbus-types.h: add docs on int64 types
9342
9343         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9344         public API docs section
9345
9346 2003-04-29  Havoc Pennington  <hp@redhat.com>
9347
9348         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9349         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9350         parallel install API version, not with the D-BUS package version.
9351
9352         * HACKING: move some of README over here
9353
9354         * README: updates, and document API/ABI policy
9355
9356         * configure.in: reindentation
9357
9358 2003-04-29  Havoc Pennington  <hp@redhat.com>
9359
9360         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9361         to use this library" to be sure people have the right
9362         expectations.
9363
9364 2003-04-28  Havoc Pennington  <hp@redhat.com>
9365
9366         * configure.in: add --enable-docs which by default is auto yes if
9367         doxygen and db2html found, no otherwise; but can be forced on/off
9368
9369         * doc/Makefile.am: conditionalize whether to build docs on
9370         --enable-docs
9371
9372 2003-04-28  Havoc Pennington  <hp@redhat.com>
9373
9374         * configure.in: 0.10
9375
9376         * NEWS: update
9377
9378         * bus/system.conf.in: add <includedir>system.d</includedir>
9379
9380         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9381         username was provided but not uid
9382
9383         * bus/config-parser.c (struct BusConfigParser): keep track of
9384         whether the parser is toplevel or was included; change some
9385         of the error handling if it's included.
9386
9387 2003-04-27  Havoc Pennington  <hp@pobox.com>
9388
9389         Unbreak my code...
9390
9391         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9392         report correct status if we finish processing authentication
9393         inside this function.
9394
9395         * bus/activation.c (try_send_activation_failure): use
9396         bus_transaction_send_error_reply
9397
9398         * bus/connection.c (bus_connection_get_groups): return an error
9399         explaining the problem
9400
9401         * bus/bus.c (bus_context_check_security_policy): implement
9402         restriction here that inactive connections can only send the
9403         hello message. Also, allow bus driver to send anything to
9404         any recipient.
9405
9406         * bus/connection.c (bus_connection_complete): create the
9407         BusClientPolicy here instead of on-demand.
9408         (bus_connection_get_policy): don't return an error
9409
9410         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9411         sender field in message being replied to
9412
9413         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9414         causing it to return FALSE always
9415
9416         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9417         we checked sender rather than destination
9418
9419 2003-04-25  Havoc Pennington  <hp@redhat.com>
9420
9421         test suite is slightly hosed at the moment, will fix soon
9422
9423         * bus/connection.c (bus_connections_expire_incomplete): fix to
9424         properly disable the timeout when required
9425         (bus_connection_set_name): check whether we can remove incomplete
9426         connections timeout after we complete each connection.
9427
9428         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9429         probably still broken.
9430
9431         * bus/services.c (bus_registry_acquire_service): implement max
9432         number of services owned, and honor allow/deny rules on which
9433         services a connection can own.
9434
9435         * bus/connection.c (bus_connection_get_policy): report errors here
9436
9437         * bus/activation.c: implement limit on number of pending
9438         activations
9439
9440 2003-04-25  Havoc Pennington  <hp@redhat.com>
9441
9442         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9443         where we used >= 0 instead of != DBUS_UID_UNSET.
9444
9445 2003-04-25  Havoc Pennington  <hp@redhat.com>
9446
9447         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9448         were toggled without add/remove, fix from Anders Gustafsson
9449
9450 2003-04-24  Havoc Pennington  <hp@redhat.com>
9451
9452         * test/data/valid-config-files/basic.conf: add <limit> tags to
9453         this test
9454
9455         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9456         <limit> tag in configuration file.
9457
9458 2003-04-24  Havoc Pennington  <hp@redhat.com>
9459
9460         * bus/dispatch.c: somehow missed some name_is
9461
9462         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9463         (_dbus_timeout_set_interval): new
9464
9465         * bus/connection.c (bus_connections_setup_connection): record time
9466         when each connection is first set up, and expire them after the
9467         auth timeout passes.
9468
9469 2003-04-24  Havoc Pennington  <hp@redhat.com>
9470
9471         * dbus/dbus-message.c (dbus_message_name_is): rename
9472         (dbus_message_service_is): rename
9473         (dbus_message_sender_is): rename
9474         (dbus_message_get_service): rename
9475
9476 2003-04-24  Havoc Pennington  <hp@redhat.com>
9477
9478         * configure.in: add --enable-checks
9479
9480         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9481
9482         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9483         to use thread locks.
9484         (_dbus_connection_handler_destroyed_locked): move some private
9485         functions into proper docs group
9486
9487         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9488         _dbus_return_val_if_fail
9489
9490         Throughout: use dbus_return_if_fail
9491
9492 2003-04-23  James Willcox  <jwillcox@gnome.org>
9493
9494         * glib/dbus-glib.h:
9495         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9496         (dbus_connection_setup_with_g_main),
9497         (dbus_server_setup_with_g_main):
9498         * glib/test-dbus-glib.c: (main):
9499         * glib/test-thread-client.c: (main):
9500         * glib/test-thread-server.c: (new_connection_callback), (main):
9501         * tools/dbus-monitor.c: (main):
9502
9503         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9504         and dbus_server_setup_with_g_main().
9505
9506 2003-04-20  Havoc Pennington  <hp@pobox.com>
9507
9508         * doc/dbus-specification.sgml: document the restrictions on
9509         message and service names
9510
9511 2003-04-22  Havoc Pennington  <hp@redhat.com>
9512
9513         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9514         support, and do some code cleanups to share more code and
9515         speed up array marshal/demarshal.
9516
9517         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9518
9519         * configure.in: generate dbus-arch-deps.h
9520
9521         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9522         64-bit typecodes
9523
9524 2003-04-22  Havoc Pennington  <hp@redhat.com>
9525
9526         * test/data/valid-messages/opposite-endian.message: fix test
9527         to use proper type for rply field
9528
9529         * test/data/invalid-messages: add tests for below validation
9530
9531         * dbus/dbus-message.c (decode_header_data): validate field types,
9532         and validate that named fields are valid names
9533         (decode_name_field): consider messages in the
9534         org.freedesktop.Local. namespace to be invalid.
9535
9536         * dbus/dbus-string.c (_dbus_string_validate_name): new
9537
9538 2003-04-19  Havoc Pennington  <hp@pobox.com>
9539
9540         * bus/driver.c (bus_driver_handle_hello): check limits and
9541         return an error if they are exceeded.
9542
9543         * bus/connection.c: maintain separate lists of active and inactive
9544         connections, and a count of each. Maintain count of completed
9545         connections per user. Implement code to check connection limits.
9546
9547         * dbus/dbus-list.c (_dbus_list_unlink): export
9548
9549         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9550         number of bytes in the message queue for a connection
9551
9552 2003-04-18  Havoc Pennington  <hp@pobox.com>
9553
9554         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9555
9556         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9557         memleaks
9558
9559         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9560         on realloc be sure to update the pointer in the keyring
9561
9562         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9563         offset to avoid writing to unallocated memory
9564
9565         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9566         try the next mechanism, so we properly handle OOM
9567
9568         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9569         on OOM.
9570         (_dbus_keyring_new): fix OOM bug
9571         (_dbus_keyring_new_homedir): always set error; impose a maximum
9572         number of keys we'll load from the file, mostly to speed up the
9573         test suite and make its OOM checks more useful, but also for
9574         general sanity.
9575
9576         * dbus/dbus-auth.c (process_error_server): reject authentication
9577         if we get an error from the client
9578         (process_cancel): on cancel, send REJECTED, per the spec
9579         (process_error_client): send CANCEL if we get an error from the
9580         server.
9581
9582 2003-04-18  Havoc Pennington  <hp@pobox.com>
9583
9584         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9585         debug spew
9586
9587         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9588         handling problem
9589
9590         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9591         about DBUS_TEST_HOMEDIR once
9592
9593         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9594         the environment
9595
9596         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9597         config file so we test the right thing
9598
9599         Throughout: assorted docs improvements
9600
9601 2003-04-18  Havoc Pennington  <hp@pobox.com>
9602
9603         * glib/dbus-gmain.c: adapt to watch changes
9604
9605         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9606
9607         * dbus/dbus-server.h: remove dbus_server_handle_watch
9608
9609         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9610
9611         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9612         like DBusTimeout, so we don't need dbus_connection_handle_watch
9613         etc.
9614
9615 2003-04-17  Havoc Pennington  <hp@redhat.com>
9616
9617         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9618         database usage so it all goes via the DBusUserDatabase cache.
9619
9620 2003-04-17  Havoc Pennington  <hp@redhat.com>
9621
9622         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9623         there was an OOM watch we skipped, we always return TRUE so we
9624         iterate again to have a look at it again. Fixes test suite hang.
9625         Code rearrangement also lets us lose some memset and only iterate
9626         over callbacks once.
9627
9628         * bus/driver.c (bus_driver_handle_message): sense of test for
9629         reply was backward
9630
9631 2003-04-16  Havoc Pennington  <hp@pobox.com>
9632
9633         * doc/dbus-specification.sgml: make spec say serials are unsigned
9634
9635         * dbus/dbus-message.h: change message serials to unsigned
9636
9637         * dbus/dbus-connection.c: adapt to message serials being unsigned
9638
9639 2003-04-15  Havoc Pennington  <hp@pobox.com>
9640
9641         * bus/bus.c: create and keep around a shared DBusUserDatabase
9642         object.
9643
9644         * bus/connection.c (bus_connection_get_groups): don't cache
9645         groups for user in the connection object, since user database
9646         object now does that.
9647
9648 2003-04-16  Havoc Pennington  <hp@redhat.com>
9649
9650         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9651         list of size counters
9652         (_dbus_message_loader_putback_message_link): put back a popped link
9653
9654         * dbus/dbus-connection.c
9655         (dbus_connection_set_max_live_messages_size): rename
9656         max_received_size
9657         (dbus_connection_get_outgoing_size): get size of outgoing
9658         queue
9659         (_dbus_connection_set_connection_counter): remove this cruft
9660
9661 2003-04-14  Havoc Pennington  <hp@redhat.com>
9662
9663         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9664         caching, but at some point we might want to be able to use a
9665         different database.
9666
9667         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9668         SHA1 conf file to test the sha1 auth mechanism, since the regular
9669         test always uses EXTERNAL when available.
9670
9671         * configure.in,
9672         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9673         add conf file that requires use of sha1 auth
9674
9675 2003-04-13  Havoc Pennington  <hp@pobox.com>
9676
9677         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9678         from Philip Blundell to send messages and monitor them.
9679
9680 2003-04-13  Havoc Pennington  <hp@pobox.com>
9681
9682         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9683         callbacks
9684
9685         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9686         users
9687
9688         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9689         fix to only recover unused bytes if we're already authenticated
9690         (_dbus_transport_get_is_authenticated): fix to still mark us
9691         authenticated if there are unused bytes.
9692
9693         * bus/dispatch.c: implement security policy checking
9694
9695         * bus/connection.c (bus_transaction_send_from_driver): new
9696
9697         * bus/bus.c (bus_context_check_security_policy): new
9698
9699         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9700         now we just set the DBusError and it gets converted to an error
9701         reply.
9702
9703         * bus/connection.c (allow_user_function): enable code using actual
9704         data from the config file
9705
9706         * bus/policy.c (list_allows_user): handle wildcard rules for
9707         user/group connection perms
9708
9709 2003-04-13  Havoc Pennington  <hp@pobox.com>
9710
9711         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9712
9713         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9714
9715         * bus/policy.c (bus_policy_append_mandatory_rule)
9716         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9717         (bus_policy_append_group_rule): new functions
9718
9719 2003-04-12  Havoc Pennington  <hp@pobox.com>
9720
9721         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9722
9723         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9724         the pid/gid/uid, just for paranoia.
9725
9726         * test/break-loader.c (randomly_do_n_things): find a byte
9727         containing a type code, and randomly change it to a different
9728         type code.
9729
9730 2003-04-12  Havoc Pennington  <hp@pobox.com>
9731
9732         * bus/policy.h: change BusPolicy to be the thing from the config
9733         file, and rename old BusPolicy to BusClientPolicy
9734
9735         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9736         match change in how policy works
9737
9738         * dbus/dbus-internals.h: mark assert_not_reached as
9739         __attribute((noreturn))__
9740
9741 2003-04-11  Havoc Pennington  <hp@redhat.com>
9742
9743         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9744         the broadcast service. Use boolean return for ServiceExists.
9745
9746 2003-04-11  Havoc Pennington  <hp@redhat.com>
9747
9748         * configure.in: add another directory to look for qt in.
9749
9750 2003-04-11  Havoc Pennington  <hp@redhat.com>
9751
9752         * AUTHORS: add Colin Walters
9753
9754 2003-04-11  Havoc Pennington  <hp@redhat.com>
9755
9756         * NEWS: update
9757
9758         * configure.in: 0.9
9759
9760 2003-04-11  Havoc Pennington  <hp@redhat.com>
9761
9762         * bus/messagebus.in: remove pid file when stopping the
9763         message bus, since the bus won't have privileges to remove it
9764         itself.
9765
9766 2003-04-11  Havoc Pennington  <hp@redhat.com>
9767
9768         * bus/bus.c (bus_context_new): move credentials change after
9769         creating pidfile
9770
9771 2003-04-11  Havoc Pennington  <hp@pobox.com>
9772
9773         * test/decode-gcov.c: add "below average functions" to the
9774         coverage report, and change how some of the code works.
9775
9776         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9777         not in the coverage stats.
9778
9779         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9780         couple places so running the test suite doesn't result in megaspam.
9781
9782 2003-04-11  Havoc Pennington  <hp@pobox.com>
9783
9784         * bus/dispatch.c (check_existent_service_activation): accept a no
9785         memory error in a place we didn't before
9786
9787         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9788         in case the first one failed," since the test suite is less
9789         broken now.
9790
9791 2003-04-10  Havoc Pennington  <hp@pobox.com>
9792
9793         * bus/dispatch.c (check_segfault_service_activation): add test
9794         for launching an executable that just crashes.
9795
9796         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9797         don't leave a million cores. We'll see how portable this is.
9798
9799 2003-04-10  Havoc Pennington  <hp@pobox.com>
9800
9801         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9802         the possible parent failures before we fork, so that we don't
9803         fail to create a babysitter after creating the child.
9804
9805         * bus/activation.c (bus_activation_activate_service): kill child
9806         if we don't successfully complete the activation.
9807
9808 2003-04-10  Havoc Pennington  <hp@redhat.com>
9809
9810         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9811         the connection if it's disconnected
9812
9813         * bus/activation.c (bus_activation_service_created): use new
9814         transaction features to roll back removal of pending activation if
9815         we don't successfully create the service after all. Don't remove
9816         pending activation if the function fails.
9817
9818         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9819         (_dbus_list_insert_after_link): new code to facilitate
9820         services.c fixes
9821
9822         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9823         new functionality, so we can preallocate the ability to insert
9824         into a hash table.
9825
9826         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9827         allowing us to put custom hooks in a transaction to be used for
9828         cancelling said transaction
9829
9830         * doc/dbus-specification.sgml: add some discussion of secondary
9831         service owners, and disallow zero-length service names
9832
9833         * bus/services.c (bus_registry_acquire_service): new function,
9834         splits out part of bus_driver_handle_acquire_service() and fixes
9835         a bug where we didn't remove the service doing the acquiring
9836         from the secondary queue if we failed to remove the current owner
9837         from the front of the queue.
9838
9839 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9840
9841         * doc/dbus-specification.sgml:
9842         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9843
9844 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9845
9846         * bus/.cvsignore:
9847         * glib/.cvsignore:
9848         * test/.cvsignore:
9849         Added files to cvsignore
9850
9851         * dbus/dbus-message.h:
9852         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9853         Make get_named() take two out argument and return a boolean.
9854         (dbus_message_iter_get_args_valist):
9855         Update usage of get_named().
9856         (dbus_message_iter_append_byte):
9857         Fix typo
9858         (dbus_message_iter_append_named)
9859         Fix typo
9860         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9861         More tests.
9862
9863 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9864
9865         * dbus/dbus-marshal.[ch]:
9866         Add array_type_pos argument to _dbus_marshal_validate_arg.
9867         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9868
9869         * dbus/dbus-message.[ch]:
9870         Multi-dimensional arrays have full type specification in the
9871         outermost array. Iter code re-arranged to handle this.
9872         Added some more iter tests.
9873
9874         * doc/dbus-specification.sgml:
9875         Add me to authors.
9876         Remove old FIXME.
9877         Update new array encoding description.
9878         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9879
9880         * test/data/invalid-messages/array-with-mixed-types.message:
9881         * test/data/valid-messages/array-of-array-of-uint32.message:
9882         Change to the new array format.
9883
9884         * test/data/invalid-messages/too-short-dict.message:
9885         Fix bug in test.
9886
9887         * test/data/valid-messages/recursive-types.message:
9888         Fix up and extend test.
9889
9890 2003-04-10  Havoc Pennington  <hp@pobox.com>
9891
9892         * bus/dispatch.c: lots of fixes
9893
9894         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9895         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9896         that was crack, broke the test service.
9897
9898         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9899         handling to avoid piling up errors if we get a failure on the
9900         first address.
9901
9902         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9903         pid in assertion failures.
9904
9905         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9906         to some fixed size of file descriptor array. Don't return TRUE
9907         anytime a timeout exists, that led to lots of busy loop silliness
9908         in the tests.
9909
9910 2003-04-09  Havoc Pennington  <hp@redhat.com>
9911
9912         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9913         I'd checked this in earlier but hadn't.
9914
9915 2003-04-09  Havoc Pennington  <hp@redhat.com>
9916
9917         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9918         the activation test (man this is getting old!)
9919
9920 2003-04-09  Havoc Pennington  <hp@redhat.com>
9921
9922         * test/test-utils.c: use dispatch status function to fix this up
9923
9924         * bus/connection.c (connection_watch_callback): don't dispatch
9925         from here
9926         (connection_timeout_callback): don't dispatch from here
9927         (bus_connections_setup_connection): set the dispatch status function
9928         (bus_connection_disconnected): unset it
9929
9930         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9931         used to add a connection to be dispatched
9932         (_dbus_loop_iterate): do the dispatching at the end of each
9933         iteration
9934
9935         * dbus/dbus-connection.c
9936         (dbus_connection_set_dispatch_status_function): new function
9937         allowing us to fix up main loop usage
9938         (_dbus_connection_last_unref): free all the various function
9939         user data
9940         (dbus_connection_dispatch): call the DispatchStatusFunction
9941         whenever this function returns
9942         (dbus_connection_handle_watch): call DispatchStatusFunction
9943         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9944         (reply_handler_timeout): call DispatchStatusFunction
9945         (dbus_connection_flush): call DispatchStatusFunction
9946
9947 2003-04-09  Havoc Pennington  <hp@redhat.com>
9948
9949         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9950         a memory leak
9951
9952         * bus/dispatch.c (check_service_activated): fix bug in test
9953
9954         * dbus/dbus-mainloop.c (check_timeout): fix this up
9955
9956         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9957         verbose output so we can sort out output from different processes,
9958         e.g. in the activation case.
9959
9960 2003-04-08  Colin Walters  <walters@gnu.org>
9961
9962         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9963         the pid file.
9964         (bus_context_new): Set it.
9965         (bus_context_unref): Use it to delete the pid file.
9966
9967 2003-04-08  Havoc Pennington  <hp@redhat.com>
9968
9969         * test/data/invalid-messages/array-with-mixed-types.message:
9970         regression test that fails for the moment
9971
9972         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9973         tests for convenience
9974
9975         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9976         array of nil, it broke things.
9977
9978         * test/data/invalid-messages/array-of-nil.message: regression test
9979
9980         * test/data/valid-messages/array-of-array-of-uint32.message:
9981         happened to write this so added it to suite
9982
9983 2003-04-08  Havoc Pennington  <hp@redhat.com>
9984
9985         * bus/driver.c (bus_driver_handle_acquire_service): init
9986         retval/reply before checking name
9987
9988         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9989         recursion depth argument
9990
9991         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9992         in the public struct for future extension
9993
9994         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9995         typo
9996
9997         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9998         message
9999
10000         * doc/dbus-specification.sgml: fix typo
10001
10002 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10003
10004         Implemented recursive types, named types and new-style iters
10005
10006         * bus/driver.c:
10007         * glib/test-thread-client.c: (thread_func):
10008         * glib/test-thread-server.c: (handle_test_message):
10009         * test/test-service.c: (handle_echo):
10010         Update to new api
10011
10012         * dbus/Makefile.am:
10013         * dbus/dbus-dict.c:
10014         * dbus/dbus-dict.h:
10015         * dbus/dbus.h
10016         Remove DBusDict
10017
10018         * dbus/dbus-internals.c: (_dbus_type_to_string):
10019         Update for new types.
10020
10021         * dbus/dbus-marshal.[ch]:
10022         Implement recursive types and the new marshalling format.
10023         Remove hardcoded dict marshalling.
10024         Marshal named types.
10025
10026         * dbus/dbus-message-builder.c:
10027         Add BYTE_ARRAY.
10028         Remove references to old types
10029
10030         * dbus/dbus-message.[ch]:
10031         New non-refcounted iter API that supports recursive iters.
10032         Use iters for appending, including support for recursive
10033         iters.
10034         Add byte and named type support.
10035         Update everything to new marshalling formats.
10036         Add tests for new API.
10037
10038         * dbus/dbus-protocol.h:
10039         Remove old array types.
10040         Add types: BYTE, ARRAY, DICT, NAMED
10041
10042         * dbus/dbus-string.c:
10043         * dbus/dbus-sysdeps.c:
10044         Make parse_double locale safe.
10045
10046         * dbus/dbus-test-main.c:
10047         Call setlocale.
10048
10049         * dbus/dbus-test.c:
10050         Kill dict test
10051
10052         * doc/dbus-specification.sgml:
10053         Update spec
10054
10055         * test/data/incomplete-messages/missing-body.message:
10056         * test/data/invalid-messages/bad-boolean.message:
10057         * test/data/invalid-messages/bad-boolean-array.message:
10058         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10059         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10060         * test/data/invalid-messages/too-short-dict.message:
10061         * test/data/valid-messages/dict-simple.message:
10062         * test/data/valid-messages/dict.message:
10063         * test/data/valid-messages/emptiness.message:
10064         * test/data/valid-messages/lots-of-arguments.message:
10065         * test/data/valid-messages/no-padding.message:
10066         * test/data/valid-messages/recursive-types.message:
10067         Add missing NAME fields
10068         Fix up dicts & arrays
10069
10070         * test/data/invalid-messages/dict-with-nil-value.message:
10071         Removed, this is not invalid anymore.
10072
10073         * test/data/valid-messages/recursive-types.message:
10074         Add new test for deeply recursive types.
10075
10076 2003-04-07  Havoc Pennington  <hp@pobox.com>
10077
10078         * bus/driver.c (bus_driver_handle_acquire_service): return an
10079         error if you try to acquire a service that starts with ':'
10080
10081 2003-04-07  Havoc Pennington  <hp@redhat.com>
10082
10083         * doc/dbus-specification.sgml: require that base service names
10084         start with ':' and that the base service is created/deleted
10085         as first and last things a connection does on the bus
10086
10087         * bus/dispatch.c (check_existent_service_activation): lots more
10088         work on the activation test; it doesn't fully pass yet...
10089
10090         * test/test-service.c (main): fix so we don't memleak the
10091         connection to the message bus
10092         (filter_func): accept a message asking us to exit
10093
10094 2003-04-06  Havoc Pennington  <hp@pobox.com>
10095
10096         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10097         from Colin Walters
10098
10099         * configure.in: fixes to Qt detection from Colin Walters
10100
10101         * doc/Makefile.am: Only remove generated docbook dirs if they
10102         exist, from Colin Walters
10103
10104         * dbus/dbus-bus.c: change how we set well-known connections to
10105         NULL, so that it works if a single connection is stored in
10106         two well-known array slots.
10107
10108         * test/Makefile.am: remove a lot of stuff that isn't immediately
10109         useful, it's in CVS history if we want it.
10110
10111         * test/test-service.c: use dbus-mainloop instead of that
10112         watch.[hc] crack
10113
10114 2003-04-06  Havoc Pennington  <hp@pobox.com>
10115
10116         * dbus/Makefile.am: split lists of sources into stuff that goes in
10117         the library, util functions that go in the lib and are also used
10118         elsewhere, and util functions that are used in tests/daemon but
10119         don't go in the lib.
10120
10121         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10122         here so it can be used in test binaries also
10123
10124 2003-04-06  Havoc Pennington  <hp@pobox.com>
10125
10126         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10127         here in the parent process, so we can return an error if it
10128         fails. Also, move some of the code into the child so the parent
10129         is less hosed if we fail midway through.
10130
10131         * bus/bus.c (bus_context_new): move pidfile detection further up
10132         in the function, before we start overwriting sockets and such.
10133
10134         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10135
10136         * configure.in: add --with-system-pid-file and --with-system-socket
10137
10138 2003-04-06  Colin Walters  <walters@verbum.org>
10139
10140         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10141
10142         * bus/system.conf.in: Declare a pidfile.
10143
10144         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10145         create one (if appropriate).
10146
10147         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10148         (struct BusConfigParser) [pidfile]: New.
10149         (element_type_to_name, merge_included, start_busconfig_child)
10150         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10151         (bus_config_parser_unref): Free it.
10152         (bus_config_parser_get_pidfile): New function.
10153
10154         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10155
10156         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10157
10158         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10159
10160         * dbus/dbus-sysdeps.h: Prototype it.
10161
10162 2003-04-06  Havoc Pennington  <hp@pobox.com>
10163
10164         * bus/bus.c (bus_context_new): print the address in here, rather
10165         than in main(), because we need to do it before forking the daemon
10166
10167         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10168         on the service nonexistent error
10169
10170         * bus/driver.c (bus_driver_handle_acquire_service): set the
10171         sender on the AcquireService reply
10172
10173         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10174         server also listen on a UNIX socket so services can connect to it.
10175
10176 2003-04-06  Havoc Pennington  <hp@pobox.com>
10177
10178         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10179         so it detects deadlocks and also we actually init threads when
10180         debugging.
10181
10182 2003-04-06  Havoc Pennington  <hp@pobox.com>
10183
10184         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10185         save the domain socket name, and unlink it when we disconnect the
10186         server. Means that at least when we exit normally, we won't leave
10187         a bunch of junk in /tmp
10188
10189         * dbus/dbus-transport-unix.c
10190         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10191         memory management). (I was making a real change here but then
10192         didn't)
10193
10194 2003-04-06  Havoc Pennington  <hp@pobox.com>
10195
10196         * bus/bus.c (bus_context_new): fix wrong handling of
10197         server_data_slot_unref() in the error case.
10198
10199         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10200         "(condition) != 0" to _dbus_real_assert so that
10201         "_dbus_assert (pointer)" doesn't cause a warning
10202
10203         * bus/main.c (main): accept --print-address option to print out
10204         the message bus address
10205
10206         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10207
10208         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10209         "tmpdir" option to unix: address on client side
10210
10211         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10212         to unix: address
10213
10214         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10215         we can use to create sockets in the test suite.
10216
10217         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10218         cleanly. To be used for testing.
10219
10220         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10221
10222         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10223
10224         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10225         handle trying to call this when there's no servers active
10226
10227 2003-04-05  Havoc Pennington  <hp@pobox.com>
10228
10229         * NEWS: update
10230
10231         * configure.in: 0.8
10232
10233 2003-04-05  Havoc Pennington  <hp@pobox.com>
10234
10235         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10236         crash on startup. Need to get "try starting the daemon"
10237         in the test suite I guess. ;-)
10238
10239         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10240         tracked the number of open connections; it's better done in
10241         application-specific code as you want it to span all servers etc.
10242
10243 2003-04-05  Havoc Pennington  <hp@pobox.com>
10244
10245         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10246         patch from Colin Walters
10247
10248 2003-04-05  Havoc Pennington  <hp@pobox.com>
10249
10250         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10251         reality; in fact multiple mechanisms are allowed.
10252
10253         * dbus/dbus-internals.c (_dbus_real_assert)
10254         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10255         _dbus_assert_not_reached() into functions, so that they don't show
10256         up in basic block counts for test coverage, and don't use up as
10257         much disk space. Does mean slower execution speed though, so
10258         assumes --disable-asserts is the normal production case.
10259
10260 2003-04-05  Havoc Pennington  <hp@pobox.com>
10261
10262         * test/Makefile.am (dist-hook): also dist *.in files
10263
10264         * NEWS: update
10265
10266         * configure.in: 0.7
10267
10268 2003-04-05  Havoc Pennington  <hp@pobox.com>
10269
10270         * dbus/dbus-string.c: docs warning
10271
10272         * dbus/dbus-spawn.c: missing docs
10273
10274         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10275
10276 2003-04-05  Havoc Pennington  <hp@pobox.com>
10277
10278         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10279         magic from GLib
10280
10281         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10282         to -1 once we've reaped the babysitter
10283         (_dbus_babysitter_handle_watch): do as much work as we can, not
10284         just one go of it
10285
10286         * bus/activation.c: add code using DBusBabysitter so that we
10287         handle it when a service fails to start up properly.
10288         (bus_activation_service_created): don't remove the activation
10289         entries as we go, just let them get removed when we free the pending
10290         activation. Unref reply messages after sending them.
10291
10292 2003-04-05  Havoc Pennington  <hp@pobox.com>
10293
10294         * test/decode-gcov.c (main): print per-directory stats in the report
10295
10296         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10297
10298 2003-04-05  Havoc Pennington  <hp@pobox.com>
10299
10300         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10301
10302         * test/decode-gcov.c: hack up a little program to suck data
10303         out of gcov files. Yes this is sort of silly.
10304
10305         * configure.in: define something in config.h and do an
10306         AM_CONDITIONAL when gcov is enabled
10307
10308 2003-04-04  Havoc Pennington  <hp@redhat.com>
10309
10310         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10311         return a "babysitter" object that is used to monitor the status of
10312         the spawned process and reap it when required.
10313
10314         * test/test-segfault.c, test/test-exit.c,
10315         test/test-sleep-forever.c: binaries that do various lame things,
10316         used in the test suite.
10317
10318         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10319
10320 2003-04-03  Havoc Pennington  <hp@pobox.com>
10321
10322         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10323         in preparation for modifying it, dbus-sysdeps is getting
10324         a bit unmanageable.
10325
10326 2003-04-03  Havoc Pennington  <hp@redhat.com>
10327
10328         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10329         have multiple ones
10330
10331         * bus/*.[hc]: adapt to mainloop change
10332
10333 2003-04-03  Havoc Pennington  <hp@redhat.com>
10334
10335         * bus/activation.c (load_directory): fix up memleaks
10336         (bus_activation_entry_free): free the entry
10337
10338         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10339         we get one from the message bus; fix memleaks.
10340
10341         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10342
10343 2003-04-03  Havoc Pennington  <hp@pobox.com>
10344
10345         * bus/config-parser.c (bus_config_parser_unref): free
10346         list of mechanisms, bug discovered by test suite enhancements
10347         (putting system.conf and session.conf into suite)
10348
10349         * test/Makefile.am, test/test-service.c: add placeholder for a
10350         test service that we'll activate as part of test suite. Doesn't
10351         do anything yet.
10352
10353         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10354         setting NULL value, and use system malloc not dbus_malloc()
10355         when we have unavoidable memleakage.
10356
10357         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10358         didn't work, and support DBUS_BUS_ACTIVATION.
10359
10360         * bus/activation.c (child_setup): pass our well-known bus type to
10361         the child
10362
10363         * bus/config-parser.c: support <type> to specify well-known type
10364
10365         * doc/dbus-specification.sgml: document the env variables to
10366         locate well-known buses and find service activator
10367
10368 2003-04-02  Havoc Pennington  <hp@redhat.com>
10369
10370         * test/Makefile.am (all-local): add a rule to copy tests to
10371         builddir, so we can have generated tests. Use this to remove the
10372         silly hack for testing system.conf and session.conf. Will use this
10373         shortly to generate .service files pointing to test binaries.
10374
10375 2003-04-02  Havoc Pennington  <hp@redhat.com>
10376
10377         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10378         current alloc and needed new length, not max of the doubled
10379         allocation and needed new length. Also, when building tests,
10380         don't do the double-allocation stuff, just realloc every time.
10381
10382 2003-04-02  Havoc Pennington  <hp@redhat.com>
10383
10384         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10385         in error messages
10386         (_dbus_string_get_dirname): new
10387         (_dbus_sysdeps_test): new
10388         (_dbus_directory_open): include dirnames in error messages
10389
10390         * bus/config-parser.c: interpret <include> and <includedir> and
10391         <servicedir> relative to config file location if the given
10392         filename is not absolute.
10393
10394         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10395
10396 2003-04-02  Havoc Pennington  <hp@redhat.com>
10397
10398         * bus/connection.c (bus_transaction_send_error_reply): set sender
10399         service for the error, and unref the reply on success
10400
10401         * bus/activation.c: convert to use BusTransaction so OOM can be
10402         handled correctly
10403         (bus_activation_service_created): set sender of the message
10404
10405 2003-04-01  Havoc Pennington  <hp@redhat.com>
10406
10407         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10408         <includedir> (at least mostly)
10409
10410         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10411         first, then the user ID
10412
10413 2003-04-01  Havoc Pennington  <hp@pobox.com>
10414
10415         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10416         function
10417
10418         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10419
10420         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10421
10422         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10423         socket 0777, and unlink any existing socket.
10424
10425         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10426         the configuration file so specifies; set up auth mechanism
10427         restrictions
10428
10429         * bus/config-parser.c (bus_config_parser_content): add support
10430         for <fork> option and fill in code for <auth>
10431
10432         * bus/system.conf.in: add <fork/> to default configuration,
10433         and limit auth mechanisms to EXTERNAL
10434
10435         * doc/config-file.txt (Elements): add <fork>
10436
10437         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10438         (_dbus_change_identity): new function
10439
10440 2003-03-31  Havoc Pennington  <hp@redhat.com>
10441
10442         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10443         (_dbus_listen_unix_socket): fix off-by-one error in null
10444         termination spotted by Nalin
10445
10446 2003-03-31  Havoc Pennington  <hp@redhat.com>
10447
10448         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10449         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10450         having a real home directory available.
10451
10452 2003-03-31  Havoc Pennington  <hp@redhat.com>
10453
10454         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10455
10456         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10457
10458         * configure.in: add support for specifying a style of init script
10459         to install
10460
10461 2003-03-31  Havoc Pennington  <hp@redhat.com>
10462
10463         Fix some annoying DBusString API and fix all affected code.
10464
10465         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10466         max_length argument
10467         (_dbus_string_get_data): change to return string instead of using
10468         an out param
10469         (_dbus_string_get_const_data): ditto
10470         (_dbus_string_get_data_len): ditto
10471         (_dbus_string_get_const_data_len): ditto
10472
10473 2003-03-31  Havoc Pennington  <hp@redhat.com>
10474
10475         * bus/main.c (main): fix up the command line arguments to be nicer
10476
10477 2003-03-31  Havoc Pennington  <hp@redhat.com>
10478
10479         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10480         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10481         final location that lands in the config file
10482
10483         * bus/config-loader-expat.c (bus_config_load): fix type of
10484         XML_Parser variable
10485
10486         * doc/TODO: remove TODO item for dbus_bus_get()
10487
10488         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10489
10490 2003-03-31  Havoc Pennington  <hp@pobox.com>
10491
10492         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10493         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10494         argument since they are always client side
10495
10496         * dbus/dbus-server.c (dbus_server_get_address): new function
10497
10498         * bus/main.c (main): take the configuration file as an argument.
10499
10500         * test/data/valid-config-files/debug-allow-all.conf: new file to
10501         use with dispatch.c tests for example
10502
10503         * bus/test-main.c (main): require test data dir
10504
10505         * bus/bus.c (bus_context_new): change this to take a
10506         configuration file name as argument
10507
10508         * doc/config-file.txt (Elements): add <servicedir>
10509
10510         * bus/system.conf, bus/session.conf: new files
10511
10512         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10513         well-known socket if none set
10514
10515         * configure.in: create system.conf and session.conf
10516
10517 2003-03-30  Havoc Pennington  <hp@pobox.com>
10518
10519         * bus/config-parser.c: hacking
10520
10521         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10522         to shut down, since it could cause weirdness with the DBusList
10523         lock
10524
10525         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10526         link-oriented stack routines
10527         (alloc_link): free the mempool if the first alloc from it fails
10528
10529         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10530
10531         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10532         from GLib
10533         (_dbus_string_skip_white): new
10534
10535         * doc/config-file.txt (Elements): add <includedir>
10536
10537 2003-03-28  Havoc Pennington  <hp@pobox.com>
10538
10539         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10540         (_dbus_string_copy_data): new functions
10541
10542 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10543
10544         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10545         * dbus/dbus-bus.h:
10546         Add dbus_bus_get.
10547
10548         * dbus/dbus-memory.c:
10549         Fix a doc comment.
10550
10551 2003-03-28  Havoc Pennington  <hp@pobox.com>
10552
10553         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10554         I think it may have just been superstition. Not sure.
10555
10556         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10557         failures that were not being handled.
10558
10559         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10560
10561         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10562         row that will fail on out-of-memory.
10563
10564         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10565         function for testing out-of-memory handling.
10566
10567         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10568         allocation functions, they do map exactly to the expat ones.
10569
10570 2003-03-27  Havoc Pennington  <hp@redhat.com>
10571
10572         * bus/config-loader-libxml.c (bus_config_load): add another error
10573         check
10574
10575 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10576
10577         * doc/TODO:
10578         Add note about automatic service activation.
10579
10580         * doc/dbus-specification.sgml:
10581         Rename the specification and clarify a few things.
10582
10583 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10584
10585         * Doxyfile.in:
10586         * dbus/dbus-address.c:
10587         * dbus/dbus-dict.c:
10588         * dbus/dbus-marshal.c:
10589         * dbus/dbus-server-debug-pipe.c:
10590         * dbus/dbus-transport-unix.c:
10591         Fix documentation warnings.
10592
10593 2003-03-26  Havoc Pennington  <hp@pobox.com>
10594
10595         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10596         after every test so it's quick and easy to see which leaked, and
10597         so we test multiple dbus_shutdown() calls
10598
10599         * configure.in: change configure.in XML stuff to also support
10600         expat
10601
10602         * config-loader-libxml.c: some hacking
10603
10604         * config-loader-expat.c: some hacking
10605
10606         * config-parser.c: some hacking, plus tests
10607
10608 2003-03-25  Havoc Pennington  <hp@redhat.com>
10609
10610         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10611
10612         * configure.in: add --with-xml option to specify XML library,
10613         right now only libxml is supported.
10614
10615         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10616         nonworking code between home and work, still just stubs
10617
10618 2003-03-24  Havoc Pennington  <hp@redhat.com>
10619
10620         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10621         file
10622
10623         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10624         NULL argument for "message" if the error is a well-known one,
10625         fill in a generic message in this case.
10626
10627         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10628         favor of DBusError
10629
10630         * bus/test.c (bus_test_flush_bus): add
10631
10632         * bus/policy.c (bus_policy_test): test code stub
10633
10634 2003-03-24  Havoc Pennington  <hp@pobox.com>
10635
10636         * bus/connection.c (bus_connections_setup_connection): set up
10637         the "can this user connect" function, but it always returns
10638         TRUE until we have a config file parser so we can have a config
10639         file that allows connections.
10640
10641 2003-03-23  Havoc Pennington  <hp@pobox.com>
10642
10643         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10644         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10645         the mutex, so we can check for proper memory management
10646         and OOM handling.
10647
10648         * dbus/dbus-dataslot.c: remove the mutex from
10649         DBusDataSlotAllocator and lock it manually when using it,
10650         to simplify fitting it into the global slots framework.
10651
10652         * dbus/dbus-threads.c (init_static_locks): rework how we're
10653         handling global locks so they are easily shut down.
10654
10655         * bus/policy.c (bus_policy_append_rule): fix
10656
10657         * bus/test-main.c (main): check for memleaks
10658
10659         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10660         test suite check for memleaks
10661
10662         * dbus/dbus-memory.c: add support in test mode for tracking
10663         number of outstanding blocks
10664
10665 2003-03-23  Havoc Pennington  <hp@pobox.com>
10666
10667         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10668         policies code
10669
10670         * dbus/dbus-hash.h: add ULONG hash keys
10671
10672         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10673         (_dbus_get_group_id): new function
10674
10675 2003-03-20  Havoc Pennington  <hp@redhat.com>
10676
10677         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10678         new function
10679         (dbus_connection_get_unix_user): new function
10680
10681 2003-03-20  Havoc Pennington  <hp@pobox.com>
10682
10683         * bus/connection.c (bus_connection_send_oom_error): assert that
10684         message has a sender
10685         (connection_execute_transaction): ditto
10686         (bus_connection_preallocate_oom_error): fix to set the sender, and
10687         set recipient to the destination service, not the bus driver
10688
10689         * bus/policy.c: hacking
10690
10691         * dbus/dbus-message.c (dbus_message_service_is): new function
10692         (dbus_message_sender_is): new
10693
10694 2003-03-19  Havoc Pennington  <hp@redhat.com>
10695
10696         * bus/policy.c: start sketching code for policy restrictions on
10697         what connections can do.
10698
10699 2003-03-18  Havoc Pennington  <hp@redhat.com>
10700
10701         * doc/TODO: some notes on high-level todo items. Little nitpick
10702         stuff is all in @todo, so no need to add it here.
10703
10704         * doc/config-file.txt: some notes on how config file might look
10705
10706 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10707
10708         * configure.in: 0.6
10709
10710         * NEWS: Update.
10711
10712 2003-03-17  Havoc Pennington  <hp@redhat.com>
10713
10714         * dbus/dbus-internals.h: add gcc attributes so that
10715         our printf-style functions warn on bad arguments to
10716         format
10717
10718         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10719         format bug
10720
10721         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10722         printf format bug
10723
10724 2003-03-17  Havoc Pennington  <hp@redhat.com>
10725
10726         * bus/test-main.c (main): make it print something as it runs
10727         so make check doesn't look stuck
10728
10729         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10730         from CVS, now obsolete
10731
10732 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10733
10734         * bus/dispatch.c: (bus_dispatch):
10735         Refetch the service name since it may have been reallocated
10736         when dbus_message_set_sender was called.
10737
10738         * dbus/dbus-sysdeps.c: (_dbus_accept):
10739         Add address and address length variables and use them to stop
10740         valgrind from complaining.
10741
10742 2003-03-17  Havoc Pennington  <hp@pobox.com>
10743
10744         All tests pass, no memleaks, no valgrind complaints.
10745
10746         * bus/test.c: refcount handler_slot
10747
10748         * bus/connection.c (bus_connections_new): refcount
10749         connection_data_slot
10750
10751         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10752         bytes so that auth scripts pass.
10753
10754         * bus/dispatch.c: init message_handler_slot so it gets allocated
10755         properly
10756
10757         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10758
10759         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10760         dealloc server_pipe_hash when no longer used for benefit of
10761         leak checking
10762
10763         * dbus/dbus-auth.c (process_command): memleak fix
10764
10765         * bus/dispatch.c (check_hello_message): memleak fix
10766
10767 2003-03-16  Havoc Pennington  <hp@pobox.com>
10768
10769         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10770
10771 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10772
10773         * bus/activation.c (bus_activation_activate_service): Append
10774         the pending activation entry to the list of pending activations.
10775
10776 2003-03-16  Havoc Pennington  <hp@pobox.com>
10777
10778         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10779         connections
10780
10781         * dbus/dbus-address.c (create_entry): fix OOM handling when
10782         failing to alloc entry->method
10783
10784 2003-03-16  Havoc Pennington  <hp@pobox.com>
10785
10786         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10787         the watch
10788
10789         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10790         add some missing dbus_set_result
10791
10792         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10793         alloc the DBusMessageHandler
10794
10795         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10796         the transport here, since we call this from the finalizer; it
10797         resulted in a double-finalize.
10798
10799         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10800         where we tried to use transport->connection that was NULL,
10801         happened when transport was disconnected early on due to OOM
10802
10803         * bus/*.c: adapt to handle OOM for watches/timeouts
10804
10805         * dbus/dbus-transport-unix.c: port to handle OOM during
10806         watch handling
10807
10808         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10809         reference to unused bytes instead of a copy
10810
10811         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10812         out of memory
10813
10814         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10815         FALSE on OOM
10816
10817         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10818         of memory
10819
10820 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10821
10822         * doc/dbus-specification.sgml:
10823         Document reply message for ActivateService.
10824
10825 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10826
10827         * bus/activation.c: (bus_pending_activation_entry_free),
10828         (bus_pending_activation_free), (bus_activation_new),
10829         (bus_activation_unref), (bus_activation_service_created),
10830         (bus_activation_activate_service):
10831         * bus/activation.h:
10832         * bus/bus.c: (bus_context_new):
10833         * bus/desktop-file.c: (new_section):
10834         * bus/driver.c: (bus_driver_send_service_deleted),
10835         (bus_driver_handle_activate_service):
10836         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10837         * bus/services.h:
10838         * dbus/dbus-connection.c:
10839         (dbus_connection_send_with_reply_and_block):
10840         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10841         * dbus/dbus-protocol.h:
10842         Make activation work better. Now pending activations will be queued
10843         and the daemon won't try to activate services that are already registered.
10844
10845 2003-03-16  Havoc Pennington  <hp@pobox.com>
10846
10847         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10848         connection data
10849
10850         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10851         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10852
10853 2003-03-16  Havoc Pennington  <hp@pobox.com>
10854
10855         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10856         this. always run the test suite before commit...
10857
10858         * bus/*: adapt to DBusConnection API changes
10859
10860         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10861         requires renaming stuff to avoid dbus_connection_dispatch name
10862         conflict.
10863
10864         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10865         function
10866
10867         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10868         separate from _dbus_message_loader_return_buffer()
10869
10870         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10871         this, because it's now always broken to use; the number of
10872         messages in queue vs. the number still buffered by the message
10873         loader is undefined/meaningless. Should use
10874         dbus_connection_get_dispatch_state().
10875         (dbus_connection_dispatch): rename from
10876         dbus_connection_dispatch_message
10877
10878 2003-03-16  Havoc Pennington  <hp@pobox.com>
10879
10880         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10881         implementation
10882
10883 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10884
10885         * dbus/dbus-connection.c:
10886         (dbus_connection_send_with_reply_and_block):
10887         Decrease connection->n_incoming when removing an entry
10888         from the list.
10889         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10890         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10891         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10892         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10893         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10894         (dbus_dict_get_byte_array):
10895         Handle NULL arrays and strings. Also add support for byte arrays.
10896
10897         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10898         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10899         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10900         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10901         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10902         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10903         * dbus/dbus-marshal.h:
10904         Add support for marshalling and demarshalling empty arrays and strings.
10905
10906         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10907         (dbus_message_append_string_array),
10908         (dbus_message_iter_get_boolean),
10909         (dbus_message_iter_get_boolean_array),
10910         (dbus_message_iter_get_int32_array),
10911         (dbus_message_iter_get_uint32_array),
10912         (dbus_message_iter_get_double_array),
10913         (dbus_message_iter_get_byte_array),
10914         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10915         (check_message_handling):
10916         Add support for getting empty arrays and dicts.
10917
10918         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10919         Don't do any validation at all for now, that's better than just checking
10920         for ASCII.
10921
10922         * test/data/valid-messages/emptiness.message:
10923         New test message with lots of empty arrays.
10924
10925 2003-03-16  Havoc Pennington  <hp@pobox.com>
10926
10927         * dbus/dbus-connection.c
10928         (_dbus_connection_queue_received_message_link): new function that
10929         can't fail due to OOM
10930
10931         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10932         new function pops a message together with a list link
10933         containing it.
10934
10935         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10936         message queuing functions to avoid needing to alloc memory
10937
10938 2003-03-16  Havoc Pennington  <hp@pobox.com>
10939
10940         Oops - test code was only testing failure of around 30 of the
10941         mallocs in the test path, but it turns out there are 500+
10942         mallocs. I believe this was due to misguided linking setup such
10943         that there was one copy of dbus_malloc etc. in the daemon and one
10944         in the shared lib, and only daemon mallocs were tested. In any
10945         case, the test case now tests all 500+ mallocs, and doesn't pass
10946         yet, though there are lots of fixes in this patch.
10947
10948         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10949         this so that it doesn't need to allocate memory, since it
10950         has no way of indicating failure due to OOM (and would be
10951         annoying if it did).
10952
10953         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10954
10955         * bus/Makefile.am: rearrange to create two self-contained
10956         libraries, to avoid having libraries with overlapping symbols.
10957         that was resulting in weirdness, e.g. I'm pretty sure there
10958         were two copies of global static variables.
10959
10960         * dbus/dbus-internals.c: move the malloc debug stuff to
10961         dbus-memory.c
10962
10963         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10964         empty.
10965
10966         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10967
10968         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10969         on failure.
10970
10971         * bus/dispatch.c (bus_dispatch_add_connection): free
10972         message_handler_slot when no longer using it, so
10973         memory leak checkers are happy for the test suite.
10974
10975         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10976
10977         * bus/bus.c (new_connection_callback): disconnect in here if
10978         bus_connections_setup_connection fails.
10979
10980         * bus/connection.c (bus_connections_unref): fix to free the
10981         connections
10982         (bus_connections_setup_connection): if this fails, don't
10983         disconnect the connection, just be sure there are no side
10984         effects.
10985
10986         * dbus/dbus-string.c (undo_alignment): unbreak this
10987
10988         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10989         leaking
10990         (_dbus_auth_new): fix the order in which we free strings
10991         on OOM failure
10992
10993         * bus/connection.c (bus_connection_disconnected): fix to
10994         not send ServiceDeleted multiple times in case of memory
10995         allocation failure
10996
10997         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10998         get the base service name
10999         (dbus_bus_register_client): don't return base service name,
11000         instead store it on the DBusConnection and have an accessor
11001         function for it.
11002         (dbus_bus_register_client): rename dbus_bus_register()
11003
11004         * bus/dispatch.c (check_hello_message): verify that other
11005         connections on the bus also got the correct results, not
11006         just the one sending hello
11007
11008 2003-03-15  Havoc Pennington  <hp@pobox.com>
11009
11010         Make it pass the Hello handling test including all OOM codepaths.
11011         Now to do other messages...
11012
11013         * bus/services.c (bus_service_remove_owner): fix crash when
11014         removing owner from an empty list of owners
11015         (bus_registry_ensure): don't leave service in the list of
11016         a connection's owned services if we fail to put the service
11017         in the hash table.
11018
11019         * bus/connection.c (bus_connection_preallocate_oom_error): set
11020         error flag on the OOM error.
11021
11022         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11023         handle _dbus_transport_set_connection failure
11024
11025         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11026         to create watches up front and simply enable/disable them as
11027         needed.
11028         (unix_connection_set): this can now fail on OOM
11029
11030         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11031         of enabling/disabling a watch or timeout.
11032
11033         * bus/loop.c (bus_loop_iterate): don't touch disabled
11034         watches/timeouts
11035
11036         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11037
11038 2003-03-15  Havoc Pennington  <hp@pobox.com>
11039
11040         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11041         write useful test code, after all that futzing around ;-)
11042
11043         Test does not yet pass because we can't handle OOM in
11044         _dbus_transport_messages_pending (basically,
11045         dbus_connection_preallocate_send() does not prealloc the write
11046         watch). To fix this, I think we need to add new stuff to
11047         set_watch_functions, namely a SetEnabled function so we can alloc
11048         the watch earlier, then enable it later.
11049
11050         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11051         dbus-memory.c to the convenience lib
11052
11053         * bus/test.c: rename some static functions to keep them clearly
11054         distinct from stuff in connection.c. Handle client disconnection.
11055
11056 2003-03-14  Havoc Pennington  <hp@pobox.com>
11057
11058         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11059         transport, tests more of the real codepath. Set up clients
11060         with bus_setup_debug_client.
11061
11062         * bus/test.c (bus_setup_debug_client): function to set up debug
11063         "clients" on the main loop
11064
11065         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11066         support
11067
11068         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11069         server type
11070
11071         * dbus/dbus-server-debug.c: support a debug server based on pipes
11072
11073         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11074         (_dbus_close): new function
11075
11076         * configure.in: check for socketpair
11077
11078 2003-03-14  Havoc Pennington  <hp@redhat.com>
11079
11080         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11081         cheesy hack
11082
11083         * dbus/dbus-transport-debug.c: rework this a good bit to be
11084         less complicated. hopefully still works.
11085
11086         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11087         manually
11088
11089         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11090         after running it
11091
11092         * dbus/dbus-message.c (dbus_message_copy): rename from
11093         dbus_message_new_from_message, fix it up to copy
11094         all the message fields, add test case
11095
11096         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11097         not quite passing yet
11098
11099 2003-03-14  Havoc Pennington  <hp@pobox.com>
11100
11101         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11102         until no work remains" in test code. (the large diff here
11103         is just code movement, no actual changes)
11104
11105         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11106         1, no point waiting around for test code.
11107         (_dbus_server_debug_accept_transport): unref the timeout
11108         after adding it (right?)
11109
11110         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11111
11112 2003-03-13  Havoc Pennington  <hp@redhat.com>
11113
11114         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11115         out of memory
11116
11117         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11118         of memory
11119
11120         * dbus/dbus-connection.h: Make AddWatchFunction and
11121         AddTimeoutFunction return a bool so they can fail on out-of-memory
11122
11123         * bus/bus.c (bus_context_new): set up timeout handlers
11124
11125         * bus/connection.c (bus_connections_setup_connection): set up
11126         timeout handlers
11127
11128         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11129         can fail
11130
11131         * bus/bus.c (bus_context_new): adapt to changes
11132
11133         * bus/connection.c: adapt to changes
11134
11135         * test/watch.c: adapt to DBusWatch changes
11136
11137         * bus/dispatch.c (bus_dispatch_test): started adding this but
11138         didn't finish
11139
11140 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11141
11142         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11143
11144 2003-03-13  Havoc Pennington  <hp@pobox.com>
11145
11146         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11147         set up a test framework as for the library
11148
11149 2003-03-12  Havoc Pennington  <hp@pobox.com>
11150
11151         Throughout: purge global variables, introduce BusActivation,
11152         BusConnections, BusRegistry, etc. objects instead.
11153
11154         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11155         message bus object
11156
11157         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11158         going to redo this a bit differently I think
11159
11160 2003-03-12  Havoc Pennington  <hp@redhat.com>
11161
11162         Mega-patch that gets the message bus daemon initially handling
11163         out-of-memory. Work still needed. Also lots of random
11164         moving stuff to DBusError instead of ResultCode.
11165
11166         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11167
11168         * dbus/dbus-connection.c
11169         (dbus_connection_send_with_reply_and_block): use DBusError
11170
11171         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11172         DBusResultCode
11173
11174         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11175         code here, as the only failure possible is OOM.
11176
11177         * bus/connection.c (bus_connection_disconnect):
11178         rename bus_connection_disconnected as it's a notification only
11179
11180         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11181         "name" on get_args failure, should be done by get_args;
11182         don't disconnect client for bad args, just return an error.
11183         (bus_driver_handle_service_exists): ditto
11184
11185         * bus/services.c (bus_services_list): NULL-terminate returned array
11186
11187         * bus/driver.c (bus_driver_send_service_lost)
11188         (bus_driver_send_service_acquired): send messages from driver to a
11189         specific client to the client's unique name, not to the broadcast
11190         service.
11191
11192         * dbus/dbus-message.c (decode_header_data): reject messages that
11193         contain no name field
11194         (_dbus_message_get_client_serial): rename to
11195         dbus_message_get_serial and make public
11196         (_dbus_message_set_serial): rename from set_client_serial
11197         (_dbus_message_set_reply_serial): make public
11198         (_dbus_message_get_reply_serial): make public
11199
11200         * bus/connection.c (bus_connection_foreach): allow stopping
11201         iteration by returning FALSE from foreach function.
11202
11203         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11204         (dbus_connection_free_preallocated_send)
11205         (dbus_connection_preallocate_send): new API for sending a message
11206         without possibility of malloc failure.
11207         (dbus_connection_send_message): rename to just
11208         dbus_connection_send (and same for whole function family)
11209
11210         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11211
11212         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11213
11214         * bus/activation.c: handle/return errors
11215
11216         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11217
11218         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11219         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11220         (_dbus_result_from_errno): move to this file
11221
11222 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11223
11224         * dbus/dbus-marshal.c:
11225         (_dbus_marshal_set_string):
11226         Take a length argument so we can marshal the correct string
11227         length.
11228
11229         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11230         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11231         (_dbus_marshal_test):
11232         * dbus/dbus-marshal.h:
11233         Add support for marshalling and demarshalling dicts.
11234
11235         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11236         Add support for TYPE DICT.
11237
11238         * dbus/dbus-message.c: (set_string_field):
11239         Adjust header padding.
11240
11241         (dbus_message_append_args_valist), (dbus_message_append_dict),
11242         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11243         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11244         (check_message_handling), (check_have_valid_message):
11245         * dbus/dbus-message.h:
11246         Add functions for setting and getting dicts.
11247
11248         * dbus/dbus-protocol.h:
11249         Add DBUS_TYPE_DICT.
11250
11251         * dbus/dbus.h:
11252         Add dbus-dict.h
11253
11254         * doc/dbus-specification.sgml:
11255         Add information about how dicts are marshalled.
11256
11257         * test/data/invalid-messages/dict-with-nil-value.message:
11258         * test/data/invalid-messages/too-short-dict.message:
11259         * test/data/valid-messages/dict-simple.message:
11260         * test/data/valid-messages/dict.message:
11261         Add sample messages containing dicts.
11262
11263 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11264
11265         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11266
11267 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11268
11269         * dbus/Makefile.am:
11270         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11271         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11272         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11273         (dbus_dict_set_double), (dbus_dict_set_string),
11274         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11275         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11276         (dbus_dict_set_string_array), (_dbus_dict_test):
11277         * dbus/dbus-dict.h:
11278         Fix according to comments from Havoc.
11279
11280 2003-03-06  Michael Meeks  <michael@server.home>
11281
11282         * configure.in: if we don't have kde-config, disable have_qt.
11283
11284 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11285
11286         * dbus/Makefile.am:
11287         Add dbus-dict.[ch]
11288
11289         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11290         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11291         (dbus_dict_remove), (dbus_dict_get_value_type),
11292         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11293         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11294         (dbus_dict_put_double), (dbus_dict_put_string),
11295         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11296         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11297         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11298         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11299         (dbus_dict_get_double), (dbus_dict_get_string),
11300         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11301         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11302         (dbus_dict_get_string_array), (_dbus_dict_test):
11303         * dbus/dbus-dict.h:
11304         Add DBusDict implementation
11305
11306         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11307         * dbus/dbus-test.h:
11308         Add _dbus_dict_test
11309
11310 2003-03-04  Havoc Pennington  <hp@pobox.com>
11311
11312         * test/data/auth/*: adapt to changes
11313
11314         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11315         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11316         userid
11317
11318         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11319         more stuff from being in a context name, to make the protocol
11320         simpler to deal with
11321
11322         * dbus/dbus-errors.c (dbus_error_has_name): new function
11323         (dbus_error_is_set): new function
11324
11325         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11326         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11327
11328         * dbus/dbus-connection.c (dbus_connection_flush): also read
11329         messages during a flush operation
11330
11331         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11332
11333 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11334
11335         * configure.in: Check for gethostbyname on Solaris.
11336
11337         * dbus/dbus-transport.c: (_dbus_transport_open):
11338         Remove duplicate "tcp" entry.
11339
11340         * doc/dbus-specification.sgml:
11341         Clarify some things.
11342
11343 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11344
11345         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11346         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11347         (_dbus_keyring_test):
11348         * dbus/dbus-md5.c: (_dbus_md5_compute):
11349         * dbus/dbus-sha.c: (_dbus_sha_compute):
11350         Plug memory leaks.
11351
11352 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11353
11354         * README: Add some things.
11355
11356 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11357
11358         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11359         after case DBUS_TYPE_BOOELAN.
11360
11361 2003-03-02  Havoc Pennington  <hp@pobox.com>
11362
11363         * test/break-loader.c (randomly_set_extreme_ints): add test that
11364         sets really huge and small integers
11365
11366         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11367         that length of boolean array fits in the string, and that
11368         string has room for boolean value in single-bool case.
11369
11370         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11371         optional value to "ALIGN" command which is what to fill the
11372         alignment with.
11373
11374         * test/data/valid-messages/no-padding.message: add regression
11375         test for the message padding problem
11376
11377 2003-03-02  Havoc Pennington  <hp@pobox.com>
11378
11379         * dbus/dbus-message.c (decode_header_data): fix to always init
11380         message_padding, from Benjamin Dauvergne
11381
11382 2003-03-02  Havoc Pennington  <hp@pobox.com>
11383
11384         * configure.in: 0.5
11385
11386         * NEWS: Update.
11387
11388 2003-03-01  Joe Shaw  <joe@assbarn.com>
11389
11390         * configure.in: Check for "struct cmsgcred" and try to access its
11391         members for BSD-like unices.
11392
11393         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11394         _dbus_read_credentials_unix_socket().
11395         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11396         read() for reading the credential byte off the unix socket.  Use
11397         struct cmsgcred on systems that support it.
11398
11399 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11400
11401         * glib/Makefile.am:
11402         * configure.in:
11403         Make gthreads-2.0 dependency optional. Don't build thread test if
11404         its not found.
11405
11406 2003-02-27  Havoc Pennington  <hp@pobox.com>
11407
11408         * dbus/dbus-connection.c
11409         (dbus_connection_send_message_with_reply_and_block): fix doh!
11410         doh! doh! bug that resulted in never removing a reply from the
11411         queue, no wonder we called get_reply_serial so much ;-)
11412
11413         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11414         and client serial instead of demarshaling them every time
11415
11416 2003-02-27  Havoc Pennington  <hp@pobox.com>
11417
11418         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11419         more inlined, using dbus-string-private.h, speeds things up
11420         substantially
11421
11422         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11423         when freeing the string
11424         (_dbus_string_steal_data): fix for align offset
11425         (undo_alignment): new function
11426
11427 2003-02-26  Havoc Pennington  <hp@redhat.com>
11428
11429         All kinds of audit fixes from Owen, plus initial attempt to
11430         handle unaligned memory returned from malloc.
11431
11432         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11433         leave room for align_offset and nul byte
11434         (fixup_alignment): function to track an align_offset and
11435         ensure real->str is aligned
11436         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11437         to allow a nul byte plus align offset
11438         (_dbus_string_lock): fix overflow issue
11439         (_dbus_string_init_const_len): add assertions on sanity of len,
11440         assign allocated to be ALLOCATION_PADDING larger than len
11441         (set_length): fixup the overflow handling
11442         (_dbus_string_get_data_len): fix overflow in assertion
11443         (open_gap): detect overflow in size of gap to be opened
11444         (_dbus_string_lengthen): add overflow check
11445         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11446         (_dbus_string_append): add overflow check
11447         (_dbus_string_append_unichar): overflow
11448         (_dbus_string_delete): fix overflow in assertion
11449         (_dbus_string_copy_len): overflow in assertion
11450         (_dbus_string_replace_len): overflows in assertions
11451         (_dbus_string_find): change to implement in terms of
11452         _dbus_string_find_to
11453         (_dbus_string_find_to): assorted fixage
11454         (_dbus_string_equal_c_str): assert c_str != NULL,
11455         fix logic so the function works
11456         (_dbus_string_ends_with_c_str): fix overflow thingy
11457         (_dbus_string_base64_encode): overflow fix
11458         (_dbus_string_validate_ascii): overflow
11459         (_dbus_string_validate_nul): overflow
11460
11461 2003-02-26  Havoc Pennington  <hp@redhat.com>
11462
11463         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11464
11465 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11466
11467         * configure.in:
11468         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11469
11470         * dbus/dbus-connection.c:
11471         * dbus/dbus-connection.h:
11472         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11473         Add dbus_connection_set_wakeup_main_function and use it when queueing
11474         incoming and outgoing messages.
11475
11476
11477         * dbus/dbus-dataslot.c:
11478         Threadsafe usage of DBusDataSlotAllocator
11479
11480         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11481         dbus_new can fail.
11482
11483         * dbus/dbus-server-unix.c:
11484         Add todo comment
11485
11486         * glib/dbus-gmain.c:
11487         Implement the new wakeup functions for glib.
11488
11489         * glib/Makefile.am:
11490         * glib/test-thread-client.c:
11491         * glib/test-thread-server.c:
11492         * glib/test-thread.h:
11493         Initial cut at some thread test code. Not really done yet.
11494
11495 2003-02-26  Havoc Pennington  <hp@pobox.com>
11496
11497         * dbus/dbus-connection.c
11498         (dbus_connection_send_message_with_reply_and_block): fix crash
11499         where we ref'd the outgoing message instead of the returned reply
11500
11501         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11502         at the end of this function, so if we didn't need to read for
11503         authentication, we reinstall it for receiving messages
11504
11505         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11506         a NULL sender for peer-to-peer case
11507
11508         * dbus/dbus-transport-unix.c (check_read_watch): handle
11509         !authenticated case correctly
11510
11511         * glib/dbus-gmain.c: add support for DBusServer
11512
11513         * dbus/dbus-server.c: add data slot support
11514
11515         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11516         return values and handle errors
11517
11518         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11519         DBusConnection
11520
11521         * Doxyfile.in (INPUT): add glib subdir
11522
11523         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11524         setup_with_g_main instead of hookup_with_g_main; write docs
11525
11526 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11527
11528         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11529         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11530         * dbus/dbus-message.c: (dbus_message_append_boolean),
11531         (dbus_message_append_boolean_array),
11532         (dbus_message_get_args_valist), (_dbus_message_test):
11533         * dbus/dbus-message.h:
11534         * doc/dbus-specification.sgml:
11535         Various fixes as pointed out by Havoc.
11536
11537         * test/data/invalid-messages/bad-boolean-array.message:
11538         * test/data/invalid-messages/bad-boolean.message:
11539         Add invalid boolean value test cases.
11540
11541 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11542
11543         * dbus/dbus-internals.c: (_dbus_type_to_string):
11544         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11545         (_dbus_marshal_validate_arg):
11546         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11547         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11548         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11549         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11550         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11551         (dbus_message_iter_get_double),
11552         (dbus_message_iter_get_boolean_array), (message_iter_test):
11553         * dbus/dbus-message.h:
11554         * dbus/dbus-protocol.h:
11555         * doc/dbus-specification.sgml:
11556         * test/data/valid-messages/lots-of-arguments.message:
11557         Add support for boolean and boolean array types.
11558
11559 2003-02-23  Havoc Pennington  <hp@pobox.com>
11560
11561         * dbus/dbus-keyring.c: finish most of this implementation and
11562         simple unit test
11563
11564         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11565         these barf if the error isn't cleared to NULL
11566
11567         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11568         (_dbus_create_directory): new function
11569
11570         * dbus/dbus-errors.c (dbus_set_error): fix warning
11571
11572         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11573         (_dbus_string_hex_decode): new function
11574         (test_hex_roundtrip): test code
11575
11576         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11577
11578         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11579
11580         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11581         the save-to-temp/rename trick to atomically write the new file
11582         (_dbus_string_parse_uint): new function
11583
11584 2003-02-22  Havoc Pennington  <hp@pobox.com>
11585
11586         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11587
11588 2003-02-22  Havoc Pennington  <hp@pobox.com>
11589
11590         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11591         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11592
11593         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11594
11595         * dbus/test/data/sha-1: add US government test suite for SHA-1
11596
11597 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11598
11599         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11600         Make string arrays NULL-terminated.
11601
11602         * dbus/dbus-memory.c: (dbus_free_string_array):
11603         * dbus/dbus-memory.h:
11604         New function for freeing NULL-terminated string arrays.
11605
11606         * dbus/dbus-message-builder.c: (append_quoted_string),
11607         (_dbus_message_data_load):
11608         Add support for array types.
11609
11610         * dbus/dbus-message.c: (check_message_handling):
11611         Add more types as test cases.
11612
11613         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11614         (_dbus_string_parse_double):
11615         Add the start offset to the end offset.
11616
11617         * test/data/valid-messages/lots-of-arguments.message:
11618         New test message with lots of arguments.
11619
11620 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11621
11622         * dbus/dbus-message.c: (dbus_message_append_nil),
11623         (dbus_message_append_int32), (dbus_message_append_uint32),
11624         (dbus_message_append_double), (dbus_message_append_string),
11625         (dbus_message_append_int32_array),
11626         (dbus_message_append_uint32_array),
11627         (dbus_message_append_double_array),
11628         (dbus_message_append_byte_array),
11629         (dbus_message_append_string_array):
11630         Fix all out-of-memory handling in these functions.
11631
11632 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11633
11634         * dbus/dbus-message.c: (dbus_message_append_nil):
11635         Fix a silly.
11636
11637 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11638
11639         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11640         (dbus_message_append_nil), (dbus_message_append_int32_array),
11641         (dbus_message_append_uint32_array),
11642         (dbus_message_append_double_array),
11643         (dbus_message_append_byte_array),
11644         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11645         (dbus_message_iter_get_int32_array),
11646         (dbus_message_iter_get_uint32_array),
11647         (dbus_message_iter_get_double_array),
11648         (dbus_message_iter_get_byte_array),
11649         (dbus_message_iter_get_string_array):
11650
11651         * dbus/dbus-message.h:
11652         Add functions for appending and getting arrays.
11653
11654 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11655
11656         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11657         element size at least 8 bytes, fixes mempool tests on
11658         64-bit machines.
11659
11660 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11661
11662         * dbus/dbus-transport-unix.c (unix_do_iteration):
11663         Unlock the connection mutex during a blocking select call.
11664         Add todo about how we need a way to wake up the select.
11665
11666         * dbus/dbus-connection-internal.h:
11667         * dbus/dbus-connection.c:
11668         Add _dbus_connection_lock and _dbus_connection_unlock.
11669
11670 2003-02-19  Havoc Pennington  <hp@pobox.com>
11671
11672         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11673         Doxyfile.in, not Doxyfile
11674
11675         * dbus/dbus-keyring.c: do some hacking on this
11676
11677         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11678
11679         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11680         dbus_error_init
11681         (dbus_set_error): remove dbus_error_init, check for message ==
11682         NULL *before* we sprintf into it, and add @todo about including
11683         system headers in this file
11684
11685         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11686
11687         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11688
11689         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11690         get various bits of user information based on either username
11691         or user ID
11692         (_dbus_homedir_from_username): new function
11693
11694 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11695
11696         * configure.in:
11697         Add check for nonposix getpwnam_r
11698
11699         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11700         Align the pool element size to a sizeof (void *) boundary.
11701
11702         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11703         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11704         General Solaris fixes.
11705
11706         * test/data/valid-messages/simplest-manual.message:
11707         Explicitly state that we want little-endian packing.
11708
11709 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11710
11711         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11712
11713         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11714         Added to create a transport connecting using a tcp/ip socket.
11715
11716         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11717         to a tcp socket at given host and port.
11718         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11719         hostname and port.
11720
11721         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11722
11723         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11724         Added to create a server listening on a TCP/IP socket.
11725
11726 2003-02-19  Havoc Pennington  <hp@pobox.com>
11727
11728         Throughout: mop up all the Doxygen warnings and undocumented
11729         stuff.
11730
11731         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11732         to search any paths.
11733
11734         * dbus/dbus-threads.c: move global mutex initializers to
11735         dbus-internals.h, multiple prototypes was confusing doxygen
11736         besides being kind of ugly
11737
11738         * Doxyfile (PREDEFINED): have Doxygen define
11739         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11740         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11741         (do not abuse the feature! it's for stuff like the autogenerated
11742         macros in dbus-md5.c, not just for things you don't feel like
11743         documenting...)
11744
11745 2003-02-18  Havoc Pennington  <hp@pobox.com>
11746
11747         * dbus/dbus-string.c (_dbus_string_zero): new function
11748
11749         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11750         wrap it in some dbus-friendly API
11751
11752         * dbus/dbus-types.h: add 16-bit types
11753
11754 2003-02-18  Joe Shaw  <joe@assbarn.com>
11755
11756         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11757         credentials from our currently running process.
11758         (get_word): Fix a buglet where we were copying the entire length
11759         instead of relative to our position.
11760
11761         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11762         keys on the stack... it's 640k of data.
11763
11764         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11765         read the credentials byte off the socket, even if we don't have
11766         SO_PEERCRED.
11767         (_dbus_poll): Implement poll() using select() for systems which
11768         don't have it.
11769
11770         * glib/test-dbus-glib.c (main): Print out an error if no
11771         parameters are given.
11772
11773         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11774         can fallback to a secondary auth mechanism if the first fails.
11775
11776 2003-02-18  Havoc Pennington  <hp@pobox.com>
11777
11778         * AUTHORS: add Alex
11779
11780 2003-02-17  Havoc Pennington  <hp@pobox.com>
11781
11782         * doc/dbus-specification.sgml: lots of cosmetic
11783         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11784         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11785         s/server/bus/ (except in authentication section). Add a section
11786         "Message Bus Message Routing"
11787
11788 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11789
11790         Release 0.4
11791
11792         * NEWS: Update
11793
11794 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11795
11796         * doc/dbus-specification.sgml:
11797         Specification updates.
11798
11799 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11800
11801         * bus/activation.c: (bus_activation_init), (child_setup),
11802         (bus_activation_activate_service):
11803         * bus/activation.h:
11804         * bus/main.c: (main):
11805         Set DBUS_ADDRESS environment variable.
11806
11807         * dbus/dbus-errors.c: (dbus_set_error):
11808         Don't use va_copy since that's a C99 feature.
11809
11810         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11811         (_dbus_spawn_async):
11812         * dbus/dbus-sysdeps.h:
11813         Add child_setup_func to _dbus_spawn_async.
11814
11815         * doc/dbus-specification.sgml:
11816         Update specification.
11817
11818         * test/spawn-test.c: (setup_func), (main):
11819         Fix test.
11820
11821 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11822
11823         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11824         Added todo.
11825
11826 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11827
11828         * doc/.cvsignore:
11829         * doc/Makefile.am:
11830         * doc/dbus-test-plan.sgml:
11831         Add test plan document.
11832
11833         * test/Makefile.am:
11834         Fix distcheck.
11835
11836 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11837
11838         * dbus/dbus-message.c: (decode_header_data),
11839         (_dbus_message_loader_return_buffer):
11840         Set the header padding amount when loading a message.
11841
11842 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11843
11844         * bus/dispatch.c: (send_one_message):
11845         Only send broadcast messages to registered connections.
11846
11847         * dbus/dbus-message.c: (dbus_message_name_is):
11848         * dbus/dbus-message.h:
11849         New convenience function.
11850
11851         * dbus/dbus-transport-debug.c: (do_reading):
11852         Only dispatch one message per run.
11853
11854         * test/Makefile.am:
11855         * test/bus-test.c: (new_connection_callback), (die),
11856         (test_hello_client1_handler), (test_hello_client2_handler),
11857         (test_hello_replies), (main):
11858
11859         * test/bus-test-loop.[ch]:
11860         Add these.
11861
11862 2003-02-16  Havoc Pennington  <hp@pobox.com>
11863
11864         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11865         backward conditional
11866
11867 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11868
11869         * dbus/dbus-connection.c:
11870         Implement sent_message_with_reply. (with_reply_and block is still
11871         busted).
11872         Made dispatch_message not lose message if OOM.
11873
11874         * dbus/dbus-errors.h:
11875         Add NoReply error (for reply timeouts).
11876
11877 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11878
11879         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11880         Actually free keys and values when destroying hashtable.
11881
11882 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11883
11884         * dbus/dbus-auth.c: (client_try_next_mechanism):
11885         Plug a leak.
11886
11887         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11888         Return TRUE if there's no thread implementation around.
11889
11890         * glib/dbus-gmain.c: (free_source),
11891         (dbus_connection_hookup_with_g_main):
11892         Make sure to remove the GSource when the connection is finalized.
11893
11894 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11895
11896         * bus/dispatch.c: (bus_dispatch_message_handler):
11897         * dbus/dbus-errors.h:
11898         Return an error if someone tries to send a message to a service
11899         that doesn't exist.
11900
11901 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11902
11903         * bus/activation.c: (load_directory), (bus_activation_init),
11904         (bus_activation_activate_service):
11905         * bus/activation.h:
11906         * bus/driver.c:
11907         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11908         More work on the activation handling.
11909
11910         * dbus/dbus-errors.h:
11911         Add some error messages
11912
11913         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11914         * dbus/dbus-message.h:
11915         New function that creates an error message.
11916
11917         * dbus/dbus-protocol.h:
11918         Add ACTIVATE_SERVER message.
11919
11920         * dbus/dbus-server-unix.c: (unix_handle_watch),
11921         (_dbus_server_new_for_domain_socket):
11922         Call _dbus_fd_set_close_on_exec.
11923
11924         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11925         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11926         (_dbus_fd_set_close_on_exec):
11927         * dbus/dbus-sysdeps.h:
11928         Add _dbus_fd_set_close_on exec function. Also add function that checks
11929         that all open fds are set to close-on-exec and warns otherwise.
11930
11931         * dbus/dbus-transport-unix.c:
11932         (_dbus_transport_new_for_domain_socket):
11933         Call _dbus_fd_set_close_on_exec.
11934
11935 2003-02-16  Havoc Pennington  <hp@pobox.com>
11936
11937         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11938         allow people to avoid setting SIGPIPE to SIG_IGN
11939         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11940         we've been asked not to
11941
11942 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11943
11944         * dbus/dbus-list.c: (_dbus_list_append_link),
11945         (_dbus_list_prepend_link):
11946         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11947         (dbus_realloc):
11948         Warning fixes.
11949
11950 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11951
11952         * bus/Makefile.am:
11953         * bus/activation.c: (bus_activation_entry_free),
11954         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11955         * bus/activation.h:
11956         * bus/main.c: (main):
11957         Add simple activation support, doesn't work yet though.
11958
11959 2003-02-15   Zack Rusin  <zack@kde.org>
11960
11961         * qt/dbus-qthread.cpp:  small casting fix
11962
11963 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11964
11965         * dbus/dbus-errors.c: (dbus_set_error):
11966         * dbus/dbus-errors.h:
11967         Add a few errors and make dbus_set_error void.
11968
11969         * dbus/dbus-sysdeps.c:
11970         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11971         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11972         * dbus/dbus-sysdeps.h:
11973         Add _dbus_spawn_async.
11974
11975         * test/spawn-test.c: (main):
11976         Test for _dbus_spawn_async.
11977
11978 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11979
11980         * dbus/dbus-internals.h:
11981         Fix build without tests.
11982
11983         * dbus/dbus-list.c: (alloc_link):
11984         Fix a segfault when a malloc fails.
11985
11986         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11987         (dbus_malloc0), (dbus_realloc):
11988         Add support for malloc debugging.
11989
11990 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11991
11992         * dbus/dbus-threads.c:
11993         * dbus/dbus-threads.h:
11994         Add condvars. Remove static mutext from API.
11995         Implement static mutexes by initializing them from threads_init.
11996
11997         * glib/dbus-gthread.c:
11998         * qt/dbus-qthread.cpp:
11999         Update with the thread api changes.
12000
12001
12002         * dbus/dbus-list.c:
12003         * dbus/dbus-list.h:
12004         Turn StaticMutex into normal mutex + init function.
12005         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12006         _dbus_list_append_link, _dbus_list_prepend_link
12007
12008
12009         * dbus/dbus-sysdeps.c:
12010         * dbus/dbus-sysdeps.h:
12011         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12012         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12013
12014         * dbus/dbus-protocol.h:
12015         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12016
12017         * dbus/dbus-message.c:
12018         Make ref/unref atomic.
12019         Fix some docs.
12020
12021         * dbus/dbus-connection-internal.h:
12022         * dbus/dbus-connection.c:
12023         * dbus/dbus-connection.h:
12024         Make threadsafe.
12025         Change _peek to _borrow,_return & _steal_borrowed.
12026         Change disconnect callback to event.
12027         Make dbus_connection_dispatch_messages reentrant.
12028
12029         * dbus/dbus-transport.c:
12030         Don't ref the connection on calls to the transport
12031         implementation.
12032
12033         * dbus/dbus-message-handler.c:
12034         Make threadsafe.
12035
12036         * glib/dbus-gmain.c:
12037         Don't use peek_message anymore
12038
12039         * test/Makefile.am:
12040         * test/debug-thread.c:
12041         * test/debug-thread.h:
12042         Simple thread implementation that asserts() on deadlocks in
12043         single-threaded code.
12044
12045         * test/bus-test.c:
12046         (main) Call debug_threads_init.
12047
12048         * test/watch.c:
12049         Use disconnect message instead of disconnect callback.
12050
12051         * bus/connection.c:
12052         * bus/connection.h:
12053         Don't call dbus_connection_set_disconnect_function. Instead export
12054         bus_connection_disconnect.
12055
12056         * bus/dispatch.c:
12057         Call bus_connection_disconnect when we get a disconnected message.
12058
12059 2003-02-15  Havoc Pennington  <hp@pobox.com>
12060
12061         * dbus/dbus-message.c (dbus_message_new): fool around with the
12062         docs
12063
12064 2003-02-14  Havoc Pennington  <hp@pobox.com>
12065
12066         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12067
12068         * dbus/dbus-memory.c: fail if the debug functions indicate we
12069         should
12070
12071         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12072         (_dbus_decrement_fail_alloc_counter): debug functions to
12073         simulate memory allocation failures
12074
12075 2003-02-14  Havoc Pennington  <hp@pobox.com>
12076
12077         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12078         to DBusError
12079
12080 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12081
12082         * bus/driver.c: (bus_driver_handle_hello):
12083         * bus/driver.h:
12084         * bus/services.c: (bus_service_lookup):
12085         Reorder message sending so we get a more sane order.
12086
12087         * test/bus-test.c: (message_handler):
12088         Fix tyop.
12089
12090 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12091
12092         * bus/driver.c: (bus_driver_send_service_deleted),
12093         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12094         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12095         (bus_driver_send_welcome_message),
12096         (bus_driver_handle_list_services),
12097         (bus_driver_handle_acquire_service),
12098         (bus_driver_handle_service_exists):
12099         * dbus/dbus-bus.c: (dbus_bus_register_client),
12100         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12101         * dbus/dbus-errors.c: (dbus_result_to_string):
12102         * dbus/dbus-errors.h:
12103         * dbus/dbus-message.c: (dbus_message_append_args),
12104         (dbus_message_append_args_valist), (dbus_message_get_args),
12105         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12106         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12107         (dbus_message_iter_get_byte_array),
12108         (dbus_message_iter_get_string_array), (message_iter_test),
12109         (check_message_handling), (_dbus_message_test):
12110         * dbus/dbus-message.h:
12111         * test/bus-test.c: (main):
12112         Change fields to arguments in messages, so that they won't be
12113         confused with header fields.
12114
12115         * glib/test-dbus-glib.c: (main):
12116         Remove append_fields from hello message.
12117
12118 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12119
12120         * dbus/dbus-errors.c:
12121         * dbus/dbus-message.c:
12122         * dbus/dbus-string.c:
12123         Documentation fixes.
12124
12125 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12126
12127         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12128         (remove_timeout):
12129         Implement support for timeouts in dbus-glib.
12130
12131 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12132
12133         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12134         * dbus/dbus-message.c: (process_test_subdir):
12135         * test/break-loader.c: (find_breaks_based_on):
12136         Plug some memory leaks.
12137
12138 2003-02-13  Richard Hult  <rhult@codefactory.se>
12139
12140         * bus/main.c: Fix build.
12141
12142         * dbus/dbus-errors.h:
12143         * dbus/dbus-errors.c: Fix copyright for Anders.
12144
12145 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12146
12147         * bus/Makefile.am:
12148         Add utils.[ch]
12149
12150         * bus/connection.c: (bus_connection_foreach):
12151         Fix a warning.
12152
12153         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12154         (unescape_string), (new_section), (parse_section_start),
12155         (parse_key_value), (report_error), (bus_desktop_file_load),
12156         (bus_desktop_file_get_string):
12157         * bus/desktop-file.h:
12158         Use DBusError for error reporting.
12159
12160         * bus/dispatch.c: (send_one_message),
12161         (bus_dispatch_message_handler):
12162         * bus/driver.c: (bus_driver_send_service_deleted),
12163         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12164         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12165         (bus_driver_send_welcome_message),
12166         (bus_driver_handle_list_services),
12167         (bus_driver_handle_acquire_service),
12168         (bus_driver_handle_service_exists):
12169         * bus/loop.c: (bus_loop_run):
12170         * bus/main.c:
12171         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12172
12173         * bus/utils.c: (bus_wait_for_memory):
12174         * bus/utils.h:
12175         New files with general utility functions.
12176
12177         * dbus/dbus-internals.h:
12178         Remove _DBUS_HANDLE_OOM.
12179
12180 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12181
12182         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12183         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12184         * dbus/dbus-errors.h:
12185         Add DBusError structure.
12186
12187 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12188
12189         * test/data/valid-messages/standard-acquire-service.message:
12190         * test/data/valid-messages/standard-hello.message:
12191         * test/data/valid-messages/standard-list-services.message:
12192         * test/data/valid-messages/standard-service-exists.message:
12193         Add some standard messages.
12194
12195 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12196
12197         * bus/driver.c: (bus_driver_send_welcome_message),
12198         (bus_driver_handle_list_services),
12199         (bus_driver_handle_acquire_service),
12200         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12201         Update for API changes in libdbus.
12202
12203         * dbus/dbus-message.c: (dbus_message_new_reply):
12204         * dbus/dbus-message.h:
12205         Remove the name argument. The spec states that replies shouldn't
12206         have a name.
12207
12208 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12209
12210         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12211         (report_error), (bus_desktop_file_load), (lookup_section),
12212         (lookup_line), (bus_desktop_file_get_raw),
12213         (bus_desktop_file_get_string):
12214         * bus/desktop-file.h:
12215         Some fixes, and new functions for getting a key value from a section.
12216
12217 2003-02-13  Havoc Pennington  <hp@pobox.com>
12218
12219         * test/data/auth/fail-after-n-attempts.auth-script: new test
12220
12221         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12222         reject the client.
12223
12224 2003-02-13  Havoc Pennington  <hp@pobox.com>
12225
12226         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12227         dbus_credentials_match were backward
12228
12229         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12230         NO_CREDENTIALS and ROOT_CREDENTIALS
12231
12232         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12233         into here. Never process more commands after we've reached an
12234         end state; store further data as unused bytes.
12235
12236         * test/data/auth/*: add more auth tests
12237
12238         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12239         command to match exact string and EXPECT_UNUSED to match unused
12240         bytes
12241
12242         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12243
12244 2003-02-12  Havoc Pennington  <hp@pobox.com>
12245
12246         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12247         \r off of popped lines
12248
12249         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12250         scripts
12251
12252         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12253         SEND, append \r\n
12254
12255 2003-02-12  Havoc Pennington  <hp@pobox.com>
12256
12257         * dbus/Makefile.am: remove break-loader from the build, since it
12258         moved.
12259
12260         * configure.in: add --enable-gcov to turn on coverage profiling
12261         flags and disable optimization
12262
12263 2003-02-10  Havoc Pennington  <hp@pobox.com>
12264
12265         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12266         initial cut at test framework for DBusAuth from laptop.
12267         Doesn't quite work yet but it compiles and I need to get
12268         it off the 266mhz laptop. ;-)
12269
12270         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12271         fix a memleak in error case
12272
12273 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12274
12275         * bus/Makefile.am:
12276         * bus/desktop-file.c:
12277         * bus/desktop-file.h:
12278         Add a desktop file parser.
12279
12280 2003-02-11  Zack Rusin  <zack@kde.org>
12281
12282         * qt/message.[h|cpp]: sample implementation
12283         of the KDE wrapper for DBusMessage
12284
12285 2003-02-09  Zack Rusin  <zack@kde.org>
12286
12287         * test/bus-test.c: make_it_compile
12288         * doc/dbus-specification.sgml: minimal semantic fix
12289
12290 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12291
12292         Release 0.3
12293
12294         * NEWS: Update
12295
12296 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12297
12298         * dbus/Makefile.am:
12299         * dbus/dbus-break-loader.c:
12300         * test/Makefile.am:
12301         * test/break-loader.c:
12302         Move dbus-break-loader to test/ and rename it to break-loader.
12303
12304 2003-02-02  Havoc Pennington  <hp@pobox.com>
12305
12306         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12307         for code to manage cookies in your home directory
12308
12309         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12310
12311         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12312         to authenticate, then disconnect the client.
12313
12314 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12315
12316         * dbus/dbus-message.c (dbus_message_append_fields):
12317         Correct docs.
12318
12319 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12320
12321         * doc/dbus-specification.sgml:
12322         Update address format section.
12323
12324 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12325
12326         * test/Makefile.am:
12327         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12328         (message_handler), (new_connection_callback), (loop_quit),
12329         (loop_run), (main):
12330         Add bus test.
12331
12332 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12333
12334         * bus/driver.c: (bus_driver_handle_service_exists):
12335         Simplify the code a bit.
12336
12337         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12338         Fix a silly.
12339
12340 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12341
12342         * bus/Makefile.am:
12343         Add libdbus-daemon.la and link to it.
12344
12345 2003-02-01  James Willcox  <jwillcox@gnome.org>
12346
12347         * bus/driver.c: (bus_driver_handle_own_service):
12348         Actually include the service reply code in the message.
12349
12350 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12351
12352         * bus/driver.c: (bus_driver_handle_service_exists):
12353         Don't unref the incoming message.
12354
12355 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12356
12357         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12358
12359 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12360
12361         * dbus/dbus-server.c: (dbus_server_listen):
12362         * dbus/dbus-transport.c: (_dbus_transport_open):
12363         ifdef out the calls to the debug transport and server.
12364
12365 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12366
12367         * dbus/dbus-watch.c (dbus_watch_get_flags):
12368         Add note in the docs that ERROR or HANGUP won't be returned
12369         and are assumed always on.
12370
12371         * glib/dbus-gmain.c (add_watch):
12372         Always add IO_ERR | IO_HUP
12373
12374         * dbus/dbus-message.h:
12375         Add semicolon after dbus_message_iter_get_string_array().
12376         Makes qt code build again
12377
12378 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12379
12380         * bus/driver.c: (create_unique_client_name),
12381         (bus_driver_handle_hello):
12382         Don't take a name, just use a numeric id to identify
12383         each client.
12384
12385         * dbus/Makefile.am:
12386         * dbus/dbus-bus.c: (dbus_bus_register_client),
12387         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12388         * dbus/dbus-bus.h:
12389         Add new convenience functions for communicating with the bus.
12390
12391         * dbus/dbus-message.h:
12392
12393         * dbus/dbus-protocol.h:
12394         Fix a typo.
12395
12396 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12397
12398         * dbus/dbus-message.c (dbus_message_append_fields):
12399         Add some more doc comments.
12400
12401 2003-02-01  Havoc Pennington  <hp@pobox.com>
12402
12403         * dbus/dbus-break-loader.c (randomly_modify_length): change
12404         a 4-byte value in the message as if it were a length
12405
12406         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12407         execute bit on saved files
12408
12409 2003-02-01  Havoc Pennington  <hp@pobox.com>
12410
12411         * dbus/dbus-break-loader.c (main): new program to find messages
12412         that break the loader.
12413
12414         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12415         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12416
12417         * dbus/dbus-string.c (_dbus_string_set_byte): new
12418
12419 2003-01-31  Havoc Pennington  <hp@pobox.com>
12420
12421         * dbus/dbus-message.c: refactor the test code to be more general,
12422         in preparation for writing a "randomly permute test cases to
12423         try to break the loader" program.
12424
12425 2003-01-31  Havoc Pennington  <hp@pobox.com>
12426
12427         * doc/dbus-specification.sgml: work on the specification
12428
12429         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12430         the protocol version of the message.
12431
12432         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12433         no longer specifies that.
12434         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12435         1/2/3/4)
12436
12437         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12438         "break" for DBUS_TYPE_NIL, remove @todo
12439
12440 2003-01-31  Havoc Pennington  <hp@pobox.com>
12441
12442         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12443         just set_is_error/get_is_error as this is a commonly-used
12444         function, and write docs.
12445
12446 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12447
12448         * dbus/dbus-address.c: (dbus_address_entry_free):
12449         Free key and value lists.
12450
12451         * dbus/dbus-internals.c: (_dbus_type_to_string):
12452         Add the types we didn't have.
12453
12454         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12455         (_dbus_marshal_validate_arg):
12456         Add NIL types.
12457
12458         * dbus/dbus-message.c: (dbus_message_set_sender):
12459         Remove todo about being able to set sender to NULL.
12460
12461         (dbus_message_set_is_error_reply),
12462         (dbus_message_get_is_error_reply):
12463         * dbus/dbus-message.h:
12464         New functions.
12465
12466         * dbus/dbus-protocol.h:
12467         Add error reply flag.
12468
12469         * test/data/valid-messages/opposite-endian.message:
12470         Add NIL type to test.
12471
12472 2003-01-31  Havoc Pennington  <hp@pobox.com>
12473
12474         * doc/dbus-specification.sgml: fully specify the header.  Add
12475         flags and major protocol version, and change header/body len to
12476         unsigned.
12477
12478         * dbus/dbus-message-builder.c (append_saved_length): append length
12479         as uint32
12480
12481         * dbus/dbus-message.c (dbus_message_create_header): change header
12482         length and body length to unsigned. Add the new fields from the
12483         spec
12484         (_dbus_message_loader_return_buffer): unsigned header/body len
12485
12486 2003-01-30  Havoc Pennington  <hp@pobox.com>
12487
12488         * dbus/dbus-auth.c: rework to use only REJECTED, no
12489         MECHANISMS
12490
12491         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12492         use REJECTED, suggested by Mark McLoughlin
12493
12494 2003-01-30  Havoc Pennington  <hp@pobox.com>
12495
12496         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12497         a better way to report errors here. e.g.  "unix address lacks
12498         path" or something. also "no such file" when the path doesn't
12499         exist, etc.
12500
12501         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12502         leaking list nodes
12503         (dbus_parse_address): add @todo about documenting address format,
12504         and allowing , and ; to be escaped
12505
12506 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12507
12508         * dbus/Makefile.am:
12509         Add dbus-address.[ch]
12510
12511         * dbus/dbus-address.c: (dbus_address_entry_free),
12512         (dbus_address_entries_free), (create_entry),
12513         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12514         (dbus_parse_address), (_dbus_address_test):
12515         * dbus/dbus-address.h:
12516         New files for dealing with address parsing.
12517
12518         * dbus/dbus-connection.c:
12519         Document timeout functions.
12520
12521         * dbus/dbus-message.c:
12522         Document dbus_message_new_from_message.
12523
12524         * dbus/dbus-server-debug.c:
12525         Document.
12526
12527         * dbus/dbus-server.c: (dbus_server_listen):
12528         Parse address and use correct server implementation.
12529
12530         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12531         * dbus/dbus-string.h:
12532         New function with test.
12533
12534         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12535         * dbus/dbus-test.h:
12536         Add address tests.
12537
12538         * dbus/dbus-transport-debug.c:
12539         Document.
12540
12541         * dbus/dbus-transport.c: (_dbus_transport_open):
12542         Parse address and use correct transport implementation.
12543
12544 2003-01-30  Havoc Pennington  <hp@pobox.com>
12545
12546         * dbus/dbus-message.c: use message->byte_order instead of
12547         DBUS_COMPILER_BYTE_ORDER throughout.
12548         (dbus_message_create_header): pad header to align the
12549         start of the body of the message to 8-byte boundary
12550
12551         * dbus/dbus-marshal.h: make all the demarshalers take const
12552         DBusString arguments.
12553
12554         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12555         validate message args here, so we don't have to do slow validation
12556         later, and so we catch bad messages as they are incoming. Also add
12557         better checks on header_len and body_len. Also fill in
12558         message->byte_order
12559
12560         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12561         implemented properly)
12562         (_dbus_string_validate_nul): new function to check all-nul
12563
12564         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12565         get_arg_end_pos and remove all validation
12566         (_dbus_marshal_validate_arg): actually do validation here.
12567
12568 2003-01-29  Havoc Pennington  <hp@pobox.com>
12569
12570         * dbus/dbus-message.c (check_message_handling): fix assertion
12571         failure on set_client_serial
12572
12573 2003-01-28  Havoc Pennington  <hp@pobox.com>
12574
12575         * dbus/dbus-server-debug.c: Add doc section comments
12576
12577         * dbus/dbus-transport-debug.c: add doc section comments
12578
12579 2003-01-28  Havoc Pennington  <hp@redhat.com>
12580
12581         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12582         the reverse order from how I had it
12583         (_dbus_string_base64_encode): reverse encoding order. I was
12584         basically byteswapping everything during encoding.
12585
12586 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12587
12588         * dbus/dbus-connection-internal.h:
12589         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12590         (_dbus_connection_remove_timeout):
12591         Add functions for adding and removing timeouts.
12592
12593         * dbus/dbus-message.c: (dbus_message_new_from_message):
12594         Add new function that takes a message and creates an exact
12595         copy of it, but with the refcount set to 1.
12596         (check_message_handling):
12597         Fix build error.
12598
12599         * dbus/dbus-server-protected.h:
12600         * dbus/dbus-server.c: (_dbus_server_init_base),
12601         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12602         (dbus_server_set_timeout_functions):
12603         (_dbus_server_remove_timeout):
12604         New functions so that a server can add and remove timeouts.
12605
12606         (dbus_server_listen):
12607         Add commented out call to dbus_server_debug_new.
12608
12609         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12610         Actually set the handler, doh.
12611
12612         * dbus/dbus-transport.c: (_dbus_transport_open):
12613         Add commented out call to dbus_transport_debug_client_new.
12614
12615         * dbus/Makefile.am:
12616         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12617
12618 2003-01-28  Havoc Pennington  <hp@pobox.com>
12619
12620         * dbus/dbus-message.c (check_message_handling): function to check
12621         on the loaded message, iterates over it etc.
12622
12623 2003-01-28  Havoc Pennington  <hp@pobox.com>
12624
12625         * test/Makefile.am (dist-hook): fix make distdir
12626
12627         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12628
12629 2003-01-27  Havoc Pennington  <hp@pobox.com>
12630
12631         * dbus/dbus-mempool.c (time_for_size): replace printf with
12632         _dbus_verbose
12633
12634         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12635         empty lines; fix the SAVE_LENGTH stuff to be
12636         START_LENGTH/END_LENGTH so it actually works; couple other
12637         bugfixes
12638
12639         * test/Makefile.am (dist-hook): add dist-hook for .message files
12640
12641         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12642         can be constant or locked.
12643         (_dbus_string_free): allow freeing a const string as
12644         documented/intended
12645
12646         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12647
12648         * dbus/dbus-test-main.c (main): take an argument which is the
12649         directory containing test data
12650
12651         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12652         argument to this and load all the messages in test/data/
12653         checking that they can be loaded or not loaded as appropriate.
12654
12655 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12656
12657         * bus/dispatch.c: (bus_dispatch_message_handler):
12658         Dispatch messages sent to services.
12659
12660         * bus/driver.c: (bus_driver_send_service_deleted),
12661         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12662         (bus_driver_send_service_acquired):
12663         Add helper functions for sending service related messages.
12664
12665         (bus_driver_send_welcome_message):
12666         Send HELLO_REPLY instead of WELCOME.
12667
12668         (bus_driver_handle_list_services):
12669         Send LIST_SERVICES_REPLY instead of SERVICES.
12670
12671         (bus_driver_handle_own_service),
12672         (bus_driver_handle_service_exists):
12673         New message handlers.
12674
12675         (bus_driver_handle_message):
12676         Invoke new message handlers.
12677
12678         (bus_driver_remove_connection):
12679         Don't remove any services here since that's done automatically
12680         by bus_service_remove_owner now.
12681
12682         * bus/driver.h:
12683         New function signatures.
12684
12685         * bus/services.c: (bus_service_add_owner):
12686         Send ServiceAcquired message if we're the only primary owner.
12687
12688         (bus_service_remove_owner):
12689         Send ServiceAcquired/ServiceLost messages.
12690
12691         (bus_service_set_prohibit_replacement),
12692         (bus_service_get_prohibit_replacement):
12693         Functions for setting prohibit replacement.
12694
12695         (bus_service_has_owner):
12696         New function that checks if a connection is in the owner queue of
12697         a certain service.
12698
12699         * bus/services.h:
12700         Add new function signatures.
12701
12702         * dbus/dbus-list.c: (_dbus_list_test):
12703         Add tests for _dbus_list_remove_last and traversing the list backwards.
12704
12705         * dbus/dbus-list.h:
12706         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12707         go any further, so return NULL then.
12708
12709         * dbus/dbus-protocol.h:
12710         Add new messages, service flags and service replies.
12711
12712 2003-01-26  Havoc Pennington  <hp@pobox.com>
12713
12714         * dbus/dbus-message-builder.c: implement, completely untested.
12715
12716         * test/data/*: add data to be used in testing.
12717         ".message" files are our simple loadable text format.
12718         ".message-raw" will be binary dumps of messages.
12719
12720         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12721
12722 2003-01-26  Havoc Pennington  <hp@pobox.com>
12723
12724         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12725
12726         * dbus/dbus-errors.c (dbus_result_to_string): add
12727         file errors
12728
12729         * dbus/dbus-message-builder.c: new file, will contain code to load
12730         up messages from files. Not implemented yet.
12731
12732 2003-01-26  Havoc Pennington  <hp@pobox.com>
12733
12734         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12735         the sender by setting to NULL
12736
12737 2003-01-26  Havoc Pennington  <hp@pobox.com>
12738
12739         The unit tests pass, but otherwise untested.  If it breaks, the
12740         tests should have been better. ;-)
12741
12742         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12743         the connection.
12744
12745         * dbus/dbus-message.c: redo everything so we maintain
12746         message->header as the only copy of the various fields.
12747         This avoids the possibility of out-of-memory in some cases,
12748         for example dbus_message_lock() can't run out of memory anymore,
12749         and avoids extra copying. Figured I may as well go ahead and do
12750         this since it was busted for dbus_message_lock to not return
12751         failure on OOM, and dbus_message_write_header was totally
12752         unchecked for OOM. Also fixed some random other bugs.
12753
12754         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12755         that strings are nul-terminated. Also, end_pos can be equal
12756         to string length just not greater than, I think.
12757         (_dbus_marshal_set_int32): new function
12758         (_dbus_marshal_set_uint32): new function
12759         (_dbus_marshal_set_string): new function
12760
12761         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12762         a warning, init timeout_list to NULL
12763         (dbus_connection_send_message): don't use uninitialized variable
12764         "serial"
12765
12766         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12767
12768 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12769
12770         * bus/driver.c: (bus_driver_handle_hello),
12771         (bus_driver_send_welcome_message):
12772         Plug leaks
12773
12774 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12775
12776         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12777         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12778         (dbus_connection_unref):
12779         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12780         * dbus/dbus-message.c: (dbus_message_unref),
12781         Plug memory leaks.
12782
12783         (dbus_message_get_fields):
12784         Remove debugging printout.
12785
12786         (_dbus_message_loader_return_buffer):
12787         Don't store the header string.
12788
12789         (_dbus_message_test):
12790         Plug leaks.
12791
12792 2003-01-26  Richard Hult  <rhult@codefactory.se>
12793
12794         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12795         the file descriptor list, since it can change under us.
12796
12797 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12798
12799         * glib/dbus-gmain.c: (dbus_connection_prepare),
12800         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12801         (remove_watch), (dbus_connection_hookup_with_g_main):
12802         Rewrite the glib handling to use its own GSource instead of a
12803         GIOChannel so we can catch messages put in the queue while waiting
12804         for a reply.
12805
12806 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12807
12808         * bus/Makefile.am:
12809         * bus/connection.c: (connection_disconnect_handler),
12810         (connection_watch_callback), (bus_connection_setup):
12811         * bus/dispatch.c: (send_one_message),
12812         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12813         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12814         * bus/dispatch.h:
12815         * bus/driver.c: (bus_driver_send_service_deleted),
12816         (bus_driver_send_service_created), (bus_driver_handle_hello),
12817         (bus_driver_send_welcome_message),
12818         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12819         (bus_driver_handle_message):
12820         * bus/driver.h:
12821         Refactor code, put the message dispatching in its own file. Use
12822         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12823         is disconnected.
12824
12825 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12826
12827         * dbus/dbus-internals.h:
12828         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12829
12830         * dbus/dbus-message.c: (dbus_message_get_sender):
12831         * dbus/dbus-message.h:
12832         Implement dbus_message_get_sender.
12833
12834         * dbus/dbus-protocol.h:
12835         Add message and service defines.
12836
12837 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12838
12839         * dbus/dbus-connection.c: (dbus_connection_send_message):
12840         * dbus/dbus-message-internal.h:
12841         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12842         (dbus_message_write_header):
12843         Remove _dbus_messag_unlock and don't set the client serial on a
12844         message if one already exists.
12845
12846 2003-01-24  Havoc Pennington  <hp@pobox.com>
12847
12848         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12849         list_pool
12850
12851         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12852         on OOM
12853
12854 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12855
12856         * dbus/dbus-list.c: (alloc_link), (free_link):
12857         Use a memory pool for the links.
12858
12859 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12860
12861         * bus/connection.c: (bus_connection_foreach):
12862         * bus/connection.h:
12863         Add new bus_connection_foreach function.
12864
12865         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12866         Add function that broadcasts a message to all clients.
12867
12868         (bus_driver_send_service_created), (bus_driver_handle_hello),
12869         (bus_driver_send_welcome_message),
12870         (bus_driver_handle_list_services), (bus_driver_message_handler):
12871         Implement functions that take care of listing services, and notifying
12872         clients when new services are created.
12873
12874         * bus/services.c: (bus_services_list):
12875         * bus/services.h:
12876         Add new function that returns an array of strings with the currently
12877         registered services.
12878
12879         * glib/dbus-glib.h:
12880         * glib/dbus-gmain.c:
12881         Update copyright year.
12882
12883 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12884
12885         * dbus/dbus-connection.c: (dbus_connection_send_message):
12886         Unlock the message in case it was sent earlier.
12887
12888         (dbus_connection_send_message_with_reply_and_block):
12889         Remove the reply message from the list.
12890
12891         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12892         Set array_len and new_pos correctly.
12893
12894         (_dbus_marshal_test):
12895         Remove debug output.
12896
12897         * dbus/dbus-message-internal.h:
12898         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12899         New function that returns the reply serial.
12900
12901         (_dbus_message_unlock):
12902         New function that unlocks a message and resets its header.
12903
12904         (dbus_message_append_string_array),
12905         (dbus_message_get_fields_valist),
12906         (dbus_message_iter_get_field_type),
12907         (dbus_message_iter_get_string_array),
12908         (dbus_message_get_fields),
12909         (dbus_message_append_fields_valist):
12910         Handle string arrays.
12911
12912         (dbus_message_set_sender):
12913         Make this function public since the bus daemon needs it.
12914
12915         (decode_header_data):
12916         Set the reply serial to -1 initially.
12917
12918         * dbus/dbus-message.h:
12919         Add dbus_message_set_sender.
12920
12921 2003-01-24  Havoc Pennington  <hp@pobox.com>
12922
12923         * doc/dbus-specification.sgml: add some stuff
12924
12925 2003-01-22  Havoc Pennington  <hp@pobox.com>
12926
12927         * doc/dbus-specification.sgml: Start to document the protocol.
12928
12929 2003-01-22  Havoc Pennington  <hp@pobox.com>
12930
12931         * dbus/dbus-connection.c
12932         (dbus_connection_send_message_with_reply_and_block): add some @todo
12933
12934         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12935
12936 2003-01-21  Havoc Pennington  <hp@pobox.com>
12937
12938         (patch untested because can't compile)
12939
12940         * bus/driver.c (create_unique_client_name): make this function
12941         never recycle client names. Also, caller should initialize
12942         the DBusString.
12943
12944         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12945
12946 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12947
12948         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12949         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12950         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12951         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12952         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12953         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12954         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12955         * dbus/dbus-marshal.h:
12956         * dbus/dbus-protocol.h:
12957         Add support for marshalling and demarshalling integer, double
12958         and string arrays.
12959
12960 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12961
12962         * bus/Makefile.am:
12963         Add driver.[ch]
12964
12965         * bus/connection.c: (connection_disconnect_handler):
12966         Remove the connection from the bus driver's list.
12967
12968         (connection_watch_callback): Dispatch messages.
12969
12970         (free_connection_data): Free connection name.
12971
12972         (bus_connection_setup): Add connection to the bus driver's list.
12973         (bus_connection_remove_owned_service):
12974         (bus_connection_set_name), (bus_connection_get_name):
12975         Add functions for setting and getting the connection's name.
12976
12977         * bus/connection.h:
12978         Add function headers.
12979
12980         * bus/driver.c: (create_unique_client_name),
12981         (bus_driver_handle_hello_message),
12982         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12983         (bus_driver_add_connection), (bus_driver_remove_connection):
12984         * bus/driver.h:
12985         * bus/main.c:
12986         * bus/services.c: (bus_service_free):
12987         * bus/services.h:
12988         New file that handles communication and registreation with the bus
12989         itself.
12990
12991 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12992
12993         * dbus/dbus-connection.c: (dbus_connection_send_message):
12994         Add a new client_serial parameter.
12995
12996         (dbus_connection_send_message_with_reply):
12997         Remove a @todo since we've implemented the blocking function.
12998
12999         (dbus_connection_send_message_with_reply_and_block):
13000         New function that sends a message and waits for a reply and
13001         then returns the reply.
13002
13003         * dbus/dbus-connection.h:
13004         Add new functions.
13005
13006         * dbus/dbus-errors.c: (dbus_result_to_string):
13007         * dbus/dbus-errors.h:
13008         Add new DBUS_RESULT.
13009
13010         * dbus/dbus-message-internal.h:
13011         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13012         (_dbus_message_set_sender), (dbus_message_write_header),
13013         (dbus_message_new_reply), (decode_header_data),
13014         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13015         * dbus/dbus-message.h:
13016         Add new functions that set the reply serial and sender.
13017         Also marshal and demarshal them correctly and add test.
13018
13019         * dbus/dbus-protocol.h:
13020         Add new DBUS_MESSAGE_TYPE_SENDER.
13021
13022         * glib/dbus-glib.h:
13023         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13024         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13025         (dbus_connection_hookup_with_g_main):
13026         * glib/test-dbus-glib.c: (main):
13027         Rewrite to use GIOChannel and remove the GSource crack.
13028
13029         * test/echo-client.c: (main):
13030         * test/watch.c: (check_messages):
13031         Update for changed APIs
13032
13033 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13034
13035         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13036
13037         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13038         Create a DBusTimeoutList.
13039         (dbus_connection_set_timeout_functions): Add new function to
13040         set timeout callbacks
13041
13042         * dbus/dbus-connection.h: Add public DBusTimeout API.
13043
13044         * dbus/dbus-message.c: (dbus_message_get_service):
13045         * dbus/dbus-message.h:  New function.
13046
13047         * dbus/dbus-server.c: Fix small doc typo.
13048
13049         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13050
13051 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13052
13053         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13054         of the string, just as long as specified.
13055
13056 2003-01-19  Havoc Pennington  <hp@pobox.com>
13057
13058         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13059         new function
13060
13061         * dbus/dbus-server.c (dbus_server_set_max_connections)
13062         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13063         keep track of current number of connections, and add API for
13064         setting a max (but haven't implemented enforcing the max yet)
13065
13066 2003-01-18  Havoc Pennington  <hp@pobox.com>
13067
13068         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13069         reading/writing if read_watch != NULL or write_watch != NULL.
13070
13071         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13072         the message loader code to actually load message->header and
13073         message->body into the newly-created message.
13074
13075         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13076         in OOM case
13077
13078         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13079         (dbus_connection_get_max_message_size)
13080         (dbus_connection_set_max_live_messages_size)
13081         (dbus_connection_get_max_live_messages_size): implement some
13082         resource limitation functions
13083
13084         * dbus/dbus-resources.c: new file implementing some of the
13085         resource limits stuff
13086
13087         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13088         missing docs, add @todo to handle OOM etc.
13089
13090         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13091         docs
13092
13093 2003-01-18  Havoc Pennington  <hp@pobox.com>
13094
13095         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13096         connection if it hasn't been already.
13097
13098         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13099         replace with DisconnectFunction.
13100
13101 2003-01-18  Havoc Pennington  <hp@pobox.com>
13102
13103         Building --disable-verbose-mode --disable-asserts --disable-tests
13104         cuts the library from 112K to 45K or so
13105
13106         * configure.in: check for varargs macro support,
13107         add --enable-verbose-mode, --enable-asserts.
13108
13109         * dbus/dbus-internals.h (_dbus_assert): support
13110         DBUS_DISABLE_ASSERT
13111         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13112
13113 2003-01-18  Havoc Pennington  <hp@pobox.com>
13114
13115         * dbus/dbus-test.c: include config.h so that tests actually run
13116
13117         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13118         so the failure mode when that assumption fails will be plenty
13119         obvious.
13120
13121 2003-01-18  Havoc Pennington  <hp@pobox.com>
13122
13123         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13124
13125         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13126         the distribution
13127
13128         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13129         since we don't want to use those in make check
13130
13131 2003-01-15  Havoc Pennington  <hp@redhat.com>
13132
13133         Release 0.2
13134
13135         * NEWS: update
13136
13137 2003-01-15  Havoc Pennington  <hp@redhat.com>
13138
13139         * test/Makefile.am: fix so that test source code ends up in the
13140         distribution on make distcheck
13141
13142 2003-01-15  Havoc Pennington  <hp@redhat.com>
13143
13144         Release 0.1.
13145
13146         * NEWS: update
13147
13148 2003-01-15  Havoc Pennington  <hp@redhat.com>
13149
13150         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13151         fix build when --disable-tests
13152
13153         * Makefile.am (EXTRA_DIST): put HACKING in here
13154
13155         * HACKING: document procedure for making a tarball release.
13156
13157 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13158
13159         * bus/connection.c: (connection_error_handler),
13160         (bus_connection_setup):
13161         * bus/main.c: (main):
13162         Make sure that the DBusConnectionData struct is NULLed
13163         out to prevent a segfault.
13164
13165         * dbus/dbus-errors.c: (dbus_result_to_string):
13166         * dbus/dbus-errors.h:
13167         * dbus/dbus-message.c: (dbus_message_get_fields),
13168         (dbus_message_get_fields_valist), (_dbus_message_test):
13169         * dbus/dbus-message.h:
13170         Make dbus_message_get_fields return a result code so we can
13171         track invalid fields as well as oom.
13172
13173 2003-01-11  Havoc Pennington  <hp@pobox.com>
13174
13175         * configure.in: change --enable-test/--enable-ansi action-if-given
13176         to enable_foo=$enableval instead of enable_foo=yes
13177
13178 2003-01-08  Havoc Pennington  <hp@pobox.com>
13179
13180         * dbus/dbus-string.c (_dbus_string_align_length): new function
13181
13182         * dbus/dbus-test-main.c: move main() for test app here
13183         * dbus/dbus-test.c
13184         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13185         symbol to run tests, because dbus-test isn't in the main
13186         library
13187
13188         Code review nitpicks.
13189
13190         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13191         for people with narrow emacs ;-). Assert client_serial was filled
13192         in. Assert message->name != NULL.
13193         (dbus_message_append_fields): have "first_field_type" arg separate
13194         from va list, needed for C++ binding that also uses varargs IIRC
13195         and helps with type safety
13196         (dbus_message_new): add @todo about using DBusString to store
13197         service/name internally
13198         (dbus_message_new): don't leak ->service and ->name on OOM later
13199         in the function
13200         (dbus_message_unref): free the service name
13201         (dbus_message_get_fields): same change to varargs
13202         i.e. first_field_type
13203         (_dbus_message_loader_return_buffer): assert that the message data
13204         is aligned (if not it's a bug in our code). Put in verbose griping
13205         about why we set corrupted = TRUE.
13206         (decode_header_data): add FIXME that char* is evil.  Was going to
13207         add FIXME about evil locale-specific string.h strncmp, but just
13208         switched to wacky string-as-uint32 optimization. Move check for
13209         "no room for field name" above get_const_data_len() to avoid
13210         assertion failure in get_const_data_len if we have trailing 2
13211         bytes or the like. Check for service and name fields being
13212         provided twice. Don't leak service/name on error. Require field
13213         names to be aligned to 4 bytes.
13214
13215         * dbus/dbus-marshal.c: move byte swap stuff to header
13216         (_dbus_pack_int32): uscore-prefix
13217         (_dbus_unpack_int32): uscore-prefix
13218         (_dbus_unpack_uint32): export
13219         (_dbus_demarshal_string): add @todo complaining about use of
13220         memcpy()
13221         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13222         handling allowing corrupt data to go unchecked
13223
13224 2003-01-08  Havoc Pennington  <hp@redhat.com>
13225
13226         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13227         to the select() as needed for authentication. (should be using
13228         _dbus_poll() not select, but for another day)
13229
13230         * dbus/dbus.h: include dbus/dbus-protocol.h
13231
13232 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13233
13234         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13235         dbus-connection.h
13236
13237 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13238
13239         * dbus/dbus-internals.c: (_dbus_type_to_string):
13240         New function that returns a string describing a type.
13241
13242         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13243         * dbus/dbus-marshal.h:
13244         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13245         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13246         (dbus_message_iter_get_byte_array):
13247         * dbus/dbus-message.h:
13248         Add new convenience functions for appending and getting message fields.
13249         Also add demarshalling routines for byte arrays.
13250
13251 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13252
13253         * dbus/dbus-connection-internal.h:
13254         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13255         (_dbus_connection_get_next_client_serial),
13256         (dbus_connection_send_message):
13257         * dbus/dbus-internals.h:
13258         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13259         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13260         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13261         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13262         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13263         (_dbus_verbose_bytes), (_dbus_marshal_test):
13264         * dbus/dbus-marshal.h:
13265         * dbus/dbus-message-internal.h:
13266         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13267         (dbus_message_write_header), (_dbus_message_lock),
13268         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13269         (dbus_message_get_name), (dbus_message_append_int32),
13270         (dbus_message_append_uint32), (dbus_message_append_double),
13271         (dbus_message_append_string), (dbus_message_append_byte_array),
13272         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13273         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13274         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13275         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13276         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13277         (decode_header_data), (_dbus_message_loader_return_buffer),
13278         (message_iter_test), (_dbus_message_test):
13279         * dbus/dbus-message.h:
13280         * dbus/dbus-protocol.h:
13281         * dbus/dbus-test.c: (main):
13282         * dbus/dbus-test.h:
13283         * glib/test-dbus-glib.c: (message_handler), (main):
13284         * test/echo-client.c: (main):
13285         * test/watch.c: (check_messages):
13286         Make messages sendable and receivable for real.
13287
13288 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13289
13290         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13291         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13292         * dbus/dbus-message.c: (dbus_message_append_int32),
13293         (dbus_message_append_uint32), (dbus_message_append_double),
13294         (dbus_message_append_string), (dbus_message_append_byte_array):
13295         Handle OOM restoration.
13296
13297 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13298
13299         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13300         (_dbus_demarshal_string), (_dbus_marshal_test):
13301         * dbus/dbus-marshal.h:
13302         * dbus/dbus-message.c: (dbus_message_get_name),
13303         Document these functions.
13304
13305         (dbus_message_append_int32), (dbus_message_append_uint32),
13306         (dbus_message_append_double), (dbus_message_append_string),
13307         (dbus_message_append_byte_array):
13308         * dbus/dbus-message.h:
13309         Add functions for adding message fields of different types.
13310
13311         * dbus/dbus-protocol.h:
13312         Add the different types.
13313
13314 2003-01-05  Havoc Pennington  <hp@pobox.com>
13315
13316         * bus/connection.c: implement routines for handling connections,
13317         first thing is keeping a list of owned services on each connection
13318         and setting up watches etc.
13319
13320         * bus/services.c: implement a mapping from service names to lists
13321         of connections
13322
13323         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13324
13325         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13326         to use static mutexes for global data
13327
13328         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13329         collection of functions to set/get application-specific data
13330         on the DBusConnection.
13331
13332 2003-01-04  Havoc Pennington  <hp@pobox.com>
13333
13334         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13335         (_dbus_poll): new function
13336
13337         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13338         copied from GLib
13339
13340         * bus/loop.c: initial code for the daemon main loop
13341
13342 2003-01-04  Havoc Pennington  <hp@pobox.com>
13343
13344         * test/watch.c (error_handler): make it safe if the error handler
13345         is called multiple times (if we s/error handler/disconnect
13346         handler/ we should just guarantee it's called only once)
13347
13348         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13349         error handler on disconnect (it's quite possible we should
13350         just change the error handler to a "disconnect handler," I'm
13351         not sure we have any other meaningful errors)
13352
13353         * configure.in: check for getpwnam_r
13354
13355         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13356         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13357         mechanism as in SASL spec, using socket credentials
13358
13359         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13360         (_dbus_send_credentials_unix_socket): new function
13361
13362         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13363         dbus_accept()
13364         (_dbus_write): only check errno if <0 returned
13365         (_dbus_write_two): ditto
13366
13367 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13368
13369         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13370         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13371         (_dbus_marshal_test):
13372         * dbus/dbus-marshal.h:
13373         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13374         to _dbus_marshal_utf8_string. Also fix some tests.
13375
13376 2002-12-28  Harri Porten  <porten@kde.org>
13377
13378         * configure.in: added check for C++ compiler and a very cheesy
13379         check for the Qt integration
13380
13381         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13382
13383         * qt/Makefile.am: added
13384
13385         * qt/.cvsignore: added
13386
13387         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13388         latter, added #ifdef QT_THREAD_SUPPORT guard.
13389
13390         * dbus/Makefile.am: added missing headers for make dist
13391
13392 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13393
13394         * dbus/Makefile.am: fixup export-symbols-regex.
13395
13396 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13397
13398         * acinclude.m4: Add this file and put the
13399         PKG_CHECK_MODULE macro in it.
13400
13401 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13402
13403         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13404         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13405         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13406         (_dbus_marshal_test):
13407         Make the demarshalling routines align the pos argument.
13408         Add string marshalling tests and fix the obvious bugs
13409         discovered.
13410
13411 2002-12-26  Havoc Pennington  <hp@pobox.com>
13412
13413         * dbus/dbus-auth.c: fixes fixes fixes
13414
13415         * dbus/dbus-transport-unix.c: wire up support for
13416         encoding/decoding data on the wire
13417
13418         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13419         (_dbus_auth_decode_data): append to target string
13420         instead of nuking it.
13421
13422 2002-12-26  Havoc Pennington  <hp@pobox.com>
13423
13424         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13425         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13426         doh
13427
13428         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13429         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13430         now). Main point is because I wanted unpack_uint32 to implement
13431         _dbus_verbose_bytes
13432         (_dbus_verbose_bytes): new function
13433
13434         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13435
13436         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13437         mechanism to handle a corrupt message stream
13438         (_dbus_message_loader_new): fix preallocation to only prealloc,
13439         not prelengthen
13440
13441         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13442         (_dbus_string_test): enhance tests for copy/move and fix the
13443         functions
13444
13445         * dbus/dbus-transport-unix.c: Hold references in more places to
13446         avoid reentrancy problems
13447
13448         * dbus/dbus-transport.c: ditto
13449
13450         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13451         leak reference count in no-message case
13452
13453         * test/watch.c (do_mainloop): handle adding/removing watches
13454         during iteration over the watches. Also, ref the connection/server
13455         stored on a watch, so we don't try to mangle a destroyed one.
13456
13457         * dbus/dbus-transport-unix.c (do_authentication): perform
13458         authentication
13459
13460         * dbus/dbus-auth.c (get_state): add a state
13461         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13462         (_dbus_auth_get_unused_bytes): append the unused bytes
13463         to the passed in string, rather than prepend
13464
13465         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13466         the auth conversation DBusAuth
13467
13468         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13469         (_dbus_transport_new_for_domain_socket): when creating a
13470         transport, pass in whether it's a client-side or server-side
13471         transport so we know which DBusAuth to create
13472
13473 2002-12-03  Havoc Pennington  <hp@pobox.com>
13474
13475         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13476         _after_ finalizing the derived members
13477         (unix_connection_set): unref watch if we fail to add it
13478
13479         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13480         transport first, so that the connection owned by the
13481         transport will be valid as the transport finalizes.
13482
13483         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13484         if necessary, and remove watches from the connection.
13485
13486         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13487
13488 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13489
13490         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13491         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13492         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13493         (_dbus_marshal_test):
13494         * dbus/dbus-marshal.h:
13495         Add string marshal functions and have the demarshal functions
13496         return the new position.
13497
13498 2002-12-25  Havoc Pennington  <hp@pobox.com>
13499
13500         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13501         it is a simple protocol that just maps directly to SASL.
13502
13503         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13504         initial implementation, not actually used yet.
13505
13506         * dbus/dbus-string.c (_dbus_string_find): new function
13507         (_dbus_string_equal): new function
13508         (_dbus_string_base64_encode): new function
13509         (_dbus_string_base64_decode): new function
13510
13511 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13512
13513         * dbus/Makefile.am:
13514         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13515         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13516         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13517         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13518         * dbus/dbus-marshal.h:
13519         * dbus/dbus-protocol.h:
13520         * dbus/dbus-test.c: (main):
13521         * dbus/dbus-test.h:
13522         Add un-optimized marshalling/demarshalling routines.
13523
13524 2002-12-25  Harri Porten  <porten@kde.org>
13525
13526         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13527
13528 2002-12-24  Zack Rusin  <zack@kde.org>
13529
13530         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13531         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13532         main loop stuff
13533
13534 2002-12-24  Havoc Pennington  <hp@pobox.com>
13535
13536         * glib/dbus-gthread.c: fix include
13537
13538         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13539         I think glib API needs to change, though, as you don't
13540         want to use DBusMessageFunction, you want to use the
13541         DBusMessageHandler object. Probably
13542         dbus_connection_open_with_g_main_loop()
13543         and dbus_connection_setup_g_main_loop() or something like that
13544         (but think of better names...) that just create a connection
13545         that has watch/timeout functions etc. already set up.
13546
13547         * dbus/dbus-connection.c
13548         (dbus_connection_send_message_with_reply): new function just to
13549         show how the message handler helps us deal with replies.
13550
13551         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13552
13553         * dbus/dbus-string.c (_dbus_string_test): free a string that
13554         wasn't
13555
13556         * dbus/dbus-hash.c: use memory pools for the hash entries
13557         (rebuild_table): be more paranoid about overflow, and
13558         shrink table when we can
13559         (_dbus_hash_test): reduce number of sprintfs and write
13560         valid C89. Add tests for case where we grow and then
13561         shrink the hash table.
13562
13563         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13564
13565         * dbus/dbus-connection.c (dbus_connection_register_handler)
13566         (dbus_connection_unregister_handler): new functions
13567
13568         * dbus/dbus-message.c (dbus_message_get_name): new
13569
13570         * dbus/dbus-list.c: fix docs typo
13571
13572         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13573         an object representing a handler for messages.
13574
13575 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13576
13577         * glib/dbus-glib.h:
13578         * glib/dbus-gthread.c: (dbus_gthread_init):
13579         Don't use the gdbus prefix for public functions.
13580
13581 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13582
13583         * Makefile.am:
13584         * configure.in:
13585         Add GLib checks and fixup .pc files
13586
13587         * glib/Makefile.am:
13588         * glib/dbus-glib.h:
13589         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13590         (gdbus_connection_check), (gdbus_connection_dispatch),
13591         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13592         (dbus_connection_gsource_new):
13593         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13594         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13595         * glib/test-dbus-glib.c: (message_handler), (main):
13596         Add GLib support.
13597
13598 2002-12-15  Harri Porten  <porten@kde.org>
13599
13600         * autogen.sh: check for libtoolize before attempting to use it
13601
13602         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13603         struct.
13604
13605         * .cvsignore: ignore more stamp files
13606
13607         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13608
13609         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13610         without make install.
13611
13612 2002-12-15  Havoc Pennington  <hp@pobox.com>
13613
13614         * dbus/dbus-threads.c: add thread stubs that a higher library
13615         layer can fill in. e.g. the GLib wrapper might fill them in with
13616         GThread stuff. We still need to use this thread API to
13617         thread-safe-ize the library.
13618
13619 2002-12-12  Havoc Pennington  <hp@pobox.com>
13620
13621         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13622         below new interfaces and include fewer system headers.
13623
13624         * dbus/dbus-sysdeps.c (_dbus_read): new function
13625         (_dbus_write): new function
13626         (_dbus_write_two): new function
13627         (_dbus_connect_unix_socket): new function
13628         (_dbus_listen_unix_socket): new function
13629
13630         * dbus/dbus-message-internal.h: change interfaces to use
13631         DBusString
13632
13633 2002-12-11  Havoc Pennington  <hp@pobox.com>
13634
13635         * dbus/dbus-types.h: add dbus_unichar
13636
13637         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13638
13639         * dbus/dbus-connection.c (dbus_connection_send_message): return
13640         TRUE on success
13641
13642         * dbus/dbus-transport.c: include dbus-watch.h
13643
13644         * dbus/dbus-connection.c: include dbus-message-internal.h
13645
13646         * HACKING: add file with coding guidelines stuff.
13647
13648         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13649         handling here, for security purposes (as in vsftpd). Not actually
13650         using this class yet.
13651
13652         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13653         system/libc usage here, as in vsftpd, for ease of auditing (and
13654         should also simplify portability). Haven't actually moved all the
13655         system/libc usage into here yet.
13656
13657 2002-11-25  Havoc Pennington  <hp@pobox.com>
13658
13659         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13660         always print the first verbose message.
13661
13662 2002-11-24  Havoc Pennington  <hp@pobox.com>
13663
13664         * test/echo-client.c, test/echo-server.c: cheesy test
13665         clients.
13666
13667         * configure.in (AC_CHECK_FUNCS): check for writev
13668
13669         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13670         function
13671
13672         * dbus/dbus-list.c (_dbus_list_foreach): new function
13673
13674         * dbus/dbus-internals.c (_dbus_verbose): new function
13675
13676         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13677         representing a server that listens for connections.
13678
13679         * dbus/.cvsignore: create
13680
13681         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13682         public API for reporting errors
13683
13684         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13685         public object representing a connection that
13686         sends/receives messages. (Same object used for
13687         both client and server.)
13688
13689         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13690         Basic abstraction for different kinds of stream
13691         that we might read/write messages from.
13692
13693 2002-11-23  Havoc Pennington  <hp@pobox.com>
13694
13695         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13696         _DBUS_INT_MAX
13697
13698         * dbus/dbus-test.c (main): add list test, and include
13699         dbus-test.h as intended
13700
13701         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13702         (_dbus_hash_table_remove_int): return value indicates
13703         whether the entry existed to remove
13704
13705         * dbus/dbus-list.c: add linked list utility class,
13706         with docs and tests
13707
13708         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13709         array sometimes.
13710
13711 2002-11-23  Havoc Pennington  <hp@pobox.com>
13712
13713         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13714         DBUS_END_DECLS to nothing, that should fix this once and for all
13715
13716         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13717
13718         * dbus/dbus-message.c, dbus/dbus-hash.c:
13719         add some missing @brief
13720
13721 2002-11-23  Havoc Pennington  <hp@pobox.com>
13722
13723         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13724         to avoid confusing Doxygen
13725
13726         * dbus/dbus-hash.c: @} not }@
13727
13728         * dbus/dbus-message.c (struct DBusMessage): split out
13729         internals docs
13730
13731 2002-11-23  Havoc Pennington  <hp@pobox.com>
13732
13733         * configure.in: pile on more warning flags if using gcc
13734
13735         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13736         to document static functions
13737
13738         * configure.in: add summary to end of configure so it
13739         looks nice and attractive
13740
13741         * dbus/dbus-hash.c: finish implementation and write unit
13742         tests and docs
13743
13744         * configure.in: add --enable-tests to enable unit tests
13745
13746         * dbus/dbus-test.c: test program to run unit tests
13747         for all files in dbus/*, initially runs a test for
13748         dbus-hash.c
13749
13750         * dbus/dbus-internals.h: file to hold some internal utility stuff
13751
13752 2002-11-22  Havoc Pennington  <hp@redhat.com>
13753
13754         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13755         "ported" away from Tcl
13756
13757         * dbus/dbus-types.h: header for types such as dbus_bool_t
13758
13759 2002-11-22  Havoc Pennington  <hp@redhat.com>
13760
13761         * dbus/dbus.h: fixups for doc warnings
13762
13763         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13764         macros
13765         (QUIET): make it quiet so we can see warnings
13766
13767         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13768
13769 2002-11-22  Havoc Pennington  <hp@redhat.com>
13770
13771         * Makefile.am: include "Doxyfile" target in all-local
13772
13773         * configure.in: generate the Doxyfile
13774
13775         * Doxyfile.in: move Doxyfile here, so we can use
13776         configure to generate a Doxyfile with the right
13777         version number etc.
13778
13779 2002-11-22  Havoc Pennington  <hp@redhat.com>
13780
13781         * dbus/dbus-message.c: move inline docs into .c file
13782
13783         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13784         so all docs are under doc/
13785         (MAN_EXTENSION): generate man pages. Use extension
13786         ".3dbus" which matches ".3qt" on my system,
13787         I guess this is OK, I don't know really.
13788         (FILE_PATTERNS): look for .c files not .h, makes sense
13789         for plain C I think
13790
13791 2002-11-22  Havoc Pennington  <hp@pobox.com>
13792
13793         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13794         because any app can be a server, and any app can be a client,
13795         the bus is a special kind of server.
13796
13797 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13798
13799         * Doxyfile : adding. Still needs Makefile rules to be generated
13800         automatically (just run "doxygen" in the toplevel dir for now to
13801         generate docs)
13802
13803         * dbus/dbus-message.h : Adding sample docs (javadoc since
13804         resembles gtk-doc a little more)
13805
13806         * dbus/dbus.h : Adding sample docs
13807
13808 2002-11-21  Havoc Pennington  <hp@redhat.com>
13809
13810         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13811         so we can allow ourselves to include files directly,
13812         instead of having to use dbus.h
13813
13814         * dbus/dbus.h: fill in
13815
13816         * dbus/dbus-message.h: sketch out a sample header file.
13817         Include griping if you include it directly instead of
13818         via dbus.h
13819
13820         * dbus/dbus-macros.h: new file with macros for extern "C",
13821         TRUE/FALSE, NULL, etc.
13822
13823         * doc/file-boilerplate.c: put include guards in here
13824
13825 2002-11-21  Havoc Pennington  <hp@redhat.com>
13826
13827         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13828
13829         * COPYING: include the GPL as well, and license code
13830         under both AFL and GPL.
13831
13832 2002-11-21  Havoc Pennington  <hp@redhat.com>
13833
13834         * acconfig.h: get rid of this
13835
13836         * autogen.sh (run_configure): add --no-configure option
13837
13838         * configure.in: remove AC_ARG_PROGRAM to make
13839         autoconf complain less. add AC_PREREQ.
13840         add AC_DEFINE third arg.
13841
13842 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13843
13844         * doc/Makefile.am:
13845         Fix references so we can distcheck.
13846
13847 2002-11-21  Havoc Pennington  <hp@redhat.com>
13848
13849         * Initial module creation
13850