* configure.in:
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         * configure.in:
4         * tools/Makefile.am:
5         * tools/dbus-launch.c:
6         * bus/Makefile.am:
7         allow --with-dbus-daemondir switch to be used to make the
8         daemon install to a seperate bindir like /usr/libexec
9         (patch from Brian Cameron <brian dot cameron at sun dot com)
10
11 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
12
13         * bus/Makefile.am (install-data-hook): removed the slash after 
14         $(DESTDIR) so we don't get the double slash which does not work
15         in windows (patch from Andras Porjesz 
16         <andras dot porjesz at siemens dot com>
17
18 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
19
20         * dbus/dbus-sysdeps.h:
21         * dbus/dbus-sysdeps.c: 
22           add _dbus_printf_length (patch from Peter Kümmel 
23           <syntheticpp at gmx dot net>)
24
25 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
26
27         * dbus/dbus-internals.c: unistd.h is not used 
28         (_dbus_verbose_real): only enable verbose printing 
29         if DBUS_VERBOSE environment var is set to '1'
30         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
31
32 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
33
34         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
35         so we still compile on older gcc (patch from Frederic Peters 
36         <fpeters at 0d dot be>
37
38 2006-08-04  Havoc Pennington  <hp@redhat.com>
39
40         * configure.in: add -Wdeclaration-after-statement
41
42         * dbus/dbus-connection.c: change all the pending call stuff to
43         reflect the fact that pending call operations use the connection
44         lock
45
46         * dbus/dbus-pending-call.c: add locking here
47
48         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
49         field const consistent with how message field is done
50
51 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
52
53         * s/D-BUS/D-Bus/g
54
55 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
56
57         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
58         <in7y118 at public.uni-hamburg dot de> - fix invalid
59         read/write reported by valgrind
60
61 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
62
63         * Released 0.91
64
65 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
66
67         * dbus/dbus-connection.c:
68         (_dbus_connection_attach_pending_call_unlocked):
69         (connection_timeout_and_complete_all_pending_calls_unlocked):
70         Make sure we set timeout_added on pending calls to FALSE when
71         we remove the timeout from the connection
72
73 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
74
75         * Removed some extra bindings stuff lingering around (thanks timo)
76         * dbus-pendingcall.c (_dbus_pending_call_new): 
77         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
78         when we tried to take a lock on an already locked connection
79
80 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
81
82         * Released 0.90
83
84 2006-07-17  Havoc Pennington  <hp@redhat.com>
85
86         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
87         ints, reported by Owen Taylor
88
89 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
90
91         * doc/TODO:
92         * dbus/dbus-bus.c:
93         * dbus-errors.c:
94         * dbus/dbus-marshal-validate.c:
95           Removed TODO items which were fixed or are no longer relevent
96
97 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
98
99         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
100         Remove stray files from the stripped bindings
101
102 2006-07-16  Havoc Pennington  <hp@redhat.com>
103
104         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
105         Improve the error message on reply timeout
106
107 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
108
109         * Remove all bindings
110
111 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
112
113         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
114         and set pending_reply out arg to NULL is connection is disconnected
115         (connection_timeout_and_complete_all_pending_calls_unlocked): New
116         static method for cleaning up pending calls on disconnect
117         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
118         calls queued timeouts on disconnect 
119
120          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
121         Remove 
122
123 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
124
125         * bus/activation.[ch] (bus_activation_list_services): new function to 
126         get the list of services that can be activated
127
128         * bus/dispatch.c: test coverage for the new bus method
129         ListActivatableNames
130
131         * bus/driver.c: new bus method ListActivatableNames to get the list of
132         services that can be activated
133
134         * doc/dbus-specification.xml: ListActivatableNames method documentation
135
136 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
137         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
138         source files
139
140 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
141         * dbus/dbus-message-factory.c:
142         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
143
144 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
145         * dbus/dbus-connection-internal.h:
146         * dbus/dbus-connection.c:
147         * file dbus/dbus-pending-call.c:
148         * dbus/dbus-pending-call.h:
149         Make DBusPendingCall an opaque type even to D-Bus internals
150
151 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
152
153         * dbus/dbus-connection.h: remove connection_disconnect and replace with
154         connection_close
155
156         * dbus/dbus-connection.c: include dbus-bus.h
157         (_dbus_connection_read_write_dispatch): make static
158
159 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
160
161         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
162         function
163         (dbus_connection_dispatch): On disconnect unref any shared connections
164
165         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
166         for cleaning up shared connections on disconnect
167         (internal_bus_get): get a hard refrence to shared connections when
168         they are created
169         
170         * doc/TODO: Remove items which are no longer relevent or have been fixed
171         Split 1.0 todo items with a 0.90 freeze todo list
172  
173 2006-06-14  Ross Burton  <ross@openedhand.com>
174
175         * glib/dbus-gobject.c:
176         Free a leaking GArray (surely not!) in dbus_g_method_return.
177
178 2006-06-14  Ross Burton  <ross@openedhand.com>
179
180         * tools/Makefile.am:
181         * tools/dbus-monitor.c:
182         Don't use the GLib bindings in dbus-monitor (patch from Ralf
183         Habacker).
184         
185 2006-06-14  Ross Burton  <ross@openedhand.com>
186
187         * tools/dbus-print-message.c:
188         Also print the object path when outputting signals or method calls.
189
190 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
191
192         * qt/src/Makefile.am: install the qdbus.h header.
193         This allows people to actually use the installed code.
194
195 2006-06-12  Ross Burton  <ross@openedhand.com>
196
197         * glib/dbus-gproxy.c:
198         Don't leak a GArray when firing signals (thank Rob Taylor for review).
199
200 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
201
202         * Released 0.62
203
204 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
205
206         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
207         break pedantic builds. Closes bug 6043 (patch approved by
208         Havoc back in February).
209
210 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
211
212         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
213         that took a QDBusMessage parameter.
214         * qt/src/qdbusbus.h: Add a default flag for RequestName.
215         * qt/tools/dbus.cpp: Don't use automatic call because we might
216         be calling an async method: request a reply.
217
218 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
219
220         * test/qt/*: Update the testcases, including testing the new
221         functionality of sending null QByteArray and QString over the
222         bus. Add new headertest test and restore the old
223         qdbusxmlparser test.
224
225 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
226
227         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
228         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
229
230         * qt/examples/Makefile.am:
231         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
232         form.
233
234         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
235         QByteArray() (nulls) over the bus.
236         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
237         the one that has the signature suffix stripped.
238         * qt/src/qdbusreply.h: Make some methods const.
239
240 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
241
242         Patch from Timo Hoenig <thoenig@suse.de>.
243
244         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
245         required during build to EXTRA_DIST.
246         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
247         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
248         * configure.in: Fix "make dist", take care that the Makefile for
249         qt/dbus is being generated.
250
251 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
252
253         * bus/bus.c: Fix eavesdropping on method calls
254
255 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
256
257         * configure.in:
258         * dbus/dbus-userdb-util.c:
259         Add Solaris console owner patch from Artem Kachitchkine
260
261 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
262
263         * qt/Makfile.am:
264         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
265         reorganisation. Thanks to Timo Hoenig for pointing this out.
266
267 2006-06-06  Robert McQueen  <robot101@debian.org>
268
269         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
270           call to dbus_g_type_get_struct.
271
272 2006-06-06  Robert McQueen  <robot101@debian.org>
273
274         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
275           pointers were put into a GPtrArray-based specialised collection, and
276           then freed along with the array. GValues which you add into
277           collections or maps which have the NOCOPY flag set are assumed to not
278           belong to the caller, so rather than the existing pointer-stealing
279           semantics, they are copied instead. Given that the main consumers of
280           this abstraction are the bindings themselves, I don't think this is
281           too bad, but others should watch their choice of take vs set_static.
282
283 2006-06-06  Robert McQueen  <robot101@debian.org>
284
285         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
286           of g_slist_prepend not being used. Fixed copying of slist-based
287           specialised collections, then wrote a test case and found that it was
288           all broken. Went on to fix iterating and appending too. Good thing
289           nobody uses this code yet.
290
291 2006-06-06  Robert McQueen  <robot101@debian.org>
292
293         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
294           the iterators use gvalue_take_ptrarray_value (the GValues themselves
295           are discarded without unsetting, so it makes no difference whether
296           we take or set_static). Remove cases for G_TYPE_POINTER because
297           there really is nothing useful we can do with them in our
298           specialised types - we *need* boxed copy/free functions at the very
299           least.
300
301 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
302
303         * qt/dbus: Add directory. I had forgotten to add this
304         yesterday after the move...
305
306         * qt/examples/Makefile.am:
307         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
308
309         * qt/tools/Makefile.am:
310         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
311         Added feature to get and set properties.
312         Added validation of service, object path and interface names.
313
314         * qt/tools/dbusidl2cpp.cpp: Two new features:
315         1) Allow specifying both the header and the source file names,
316         by separating them with a colon.
317         2) Don't write an interface output if the -p switch wasn't
318         given, but the -a was.
319
320         * qt/src/*: Fix usage of Iterators and ConstIterators.
321         Fix shadowing of variables by other variables (-Wshadow).
322         Fix keyword-cleanliness in headers.
323         Fix ASCII-cast (QLatin1String, QLatin1Char).
324         Fix validation of member names.
325         Add extra checking of introspection data during XML parsing.
326         Various bug fixes.
327
328 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
329
330         * dbus/Makefile.am:
331         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
332         qt/dbus/qdbus.h now.
333
334 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
335
336         * configure.in: Make --disable-qt actually do
337           something. Patch inspired by Zack Rusin.
338
339 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
340
341         * qt/: Update to Subversion r548032.
342         This includes a big reorganisation of the files inside the
343         subdir.
344
345 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
346
347         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
348         clear:  
349         "Failed to connect to socket <host>:<port> <error>" instead of
350         "Failed to connect to socket <host>: <error>:<port>"
351
352         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
353         for a tcp transport. 
354
355 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
356
357         * qt/*: Update the QtDBus bindings up to revision 546310 in
358         Subversion.
359         This adds the dbuscpp2xml tool, that parses a C++ header and
360         outputs a D-BUS Introspection XML.
361
362 2006-05-21  Havoc Pennington  <hp@redhat.com>
363
364         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
365         is not NULL when it shouldn't be. Also a couple of possible fixes
366         for #4637 though I don't understand why the bug happens, to be
367         honest... also the object constructor has an assert name != NULL
368         and the name is only currently NULL for peer-to-peer proxies that 
369         I don't think anyone uses? So it should be asserting.
370         Anyway, for now at least see if we get an earlier assertion failure.
371
372         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
373         apparently broken code to be sure the tests fail and someone 
374         will fix them...
375
376 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
377
378         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
379         and arrays when they had a single element: has_next returns
380         false, even before you read the element. So, instead, check
381         the array length.
382
383 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
384
385         * qt/qdbusmessage.cpp:
386         * qt/qdbustypehelper_p.h:
387         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
388         the list is a const-reference
389
390 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
391
392         * Adding old doc patch that never got applied
393         
394         * dbus/bus.c (dbus_bus_add_match): Add documentation
395
396         * doc/dbus-specification.xml: Add documentation for the match rules
397           and the AddMatch and RemoveMatch methods
398
399 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
400
401         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
402         call (r535506)
403
404         * qt/dbusidl2cpp.cpp:
405         * qt/qdbusabstractadaptor.cpp:
406         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
407         sibling of the QDBusAbstractAdaptor objects instead of the
408         parent. (r535848)
409
410         * qt/dbusidl2cpp.cpp:
411         * qt/qdbusabstractinterface.cpp:
412         * qt/qdbusabstractinterface.h:
413         * qt/qdbusabstractinterface_p.h:
414         * qt/qdbusinterface.cpp: Make properties in interfaces
415         actually work. The code that was generated would not compile,
416         due to moc calls to functions that did not exist. They now
417         shall. (r536571)
418
419 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
420
421         * Makefile.am:
422         * configure.in:
423         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
424         Thanks to Brad Hards for providing the patch
425
426 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
427
428         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
429         call. (r535506)
430
431 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
432
433         * qt/examples/dbus.cpp: Enhance error messages and use
434         QDBusInterfacePtr.
435
436 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
437
438         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
439         and disable the copy operators. (r533772, r534746)
440
441         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
442
443         * qt/qdbusabstractinterface.cpp:
444         * qt/qdbusabstractinterface.h: Change the default call mode to
445         not use the event loop. Add convenience call() methods that
446         take a CallMode parameter. (r534042)
447
448         * qt/qdbusconnection.h: Change the default call mode to not
449         use the event loop. (r534042)
450
451         * qt/qdbusinterface.cpp:
452         * qt/qdbusinterface.h: Add a method to tell us if the
453         interface is valid (since we don't return a null pointer
454         anymore) (r534099)
455
456         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
457         (r534101)
458
459         * qt/qdbusinternalfilters.cpp: Decouple the introspection
460         function in two so taht we get the chance to introspect
461         without having a QDBusMessage (r534102)
462
463         * qt/qdbusbus.h:
464         * qt/qdbusconnection.cpp:
465         * qt/qdbusconnection_p.h:
466         * qt/qdbusintegrator.cpp: Keep a list of our own names to
467         avoid a round-trip to the server when attempting to introspect
468         one of our own objects. Also make sure the filter functions
469         match the empty interface as well. (r534108)
470         Don't keep the connection names. Instead, trust the unique
471         connection name (r534111)
472         Remove event loop usage (r534112)
473
474 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
475
476         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
477         Brad Hards.
478
479 2006-04-28  Robert McQueen  <robot101@debian.org>
480
481         * glib/dbus-gproxy.c: Fix properties so that they can be given in
482         any order, making it easier for people who inherit from this
483         object.
484
485 2006-04-28  Robert McQueen  <robot101@debian.org>
486
487         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
488         of memory from within pointer arrays and lists. Fixes bug #6300.
489
490 2006-04-28  Robert McQueen  <robot101@debian.org>
491
492         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
493         generating struct signatures. Fixes bug #6083.
494
495 2006-04-28  Robert McQueen  <robot101@debian.org>
496
497         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
498         to qdbusconnection_p.moc.
499
500 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
501
502         * README, INSTALL: Doc fixes
503         Patch from Brad Hards <bradh at frogmouth.net>
504
505 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
506
507         * qt/examples/dbus.cpp: Use the new merged-interface mode for
508         the dynamic meta object. No need to guess which interface to
509         call.
510
511 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
512
513         * qt/qdbusconnection_p.h:
514         * qt/qdbusmetaobject.cpp:
515         * qt/qdbusmetaobject_p.h:
516         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
517         for the dynamic meta object. No need to guess which
518         interface to call.
519         * qt/qdbusabstractinterface_p.h:
520         * qt/qdbusconnection.cpp:
521         * qt/qdbusintegrator.cpp:
522         * qt/qdbusinterface.cpp:
523         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
524         Add a QDBusRef that looks and behaves like DCOPRef.
525
526 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
527
528         * dbus/dbus-connection.c: Interfaces are optional in method
529         calls, so don't give up if the interface parameter is NULL.
530         Patch reviewed by Havoc Pennington.
531
532 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
533
534         * qt/qdbusreply.h: Add default constructor and operator=
535           (r532625)
536         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
537           in public headers (r532952)
538         * qt/qdbusabstractinterface.cpp:
539         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
540           make it the default (r532951)
541
542 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
543
544         * dbus/dbus-connection.c: Fix asserts
545         Patch from Tim Moloney <t.moloney at verizon.net>
546
547 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
548
549         * mono/Connection.cs, mono/Message.cs: Check Target type
550         Patch from Aaron Bockover (abockover at novell.com)
551
552 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
553
554         * INSTALL: fine-tune the requirements for the Qt4 binding.
555
556 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
557
558         * tools/dbus-print-message.c: Added support for printing of all 
559           remaining data types. Fixed logic for indentation of compound
560           data types.
561         
562 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
563
564         * INSTALL: fill out content of file providing DBus specific
565           build installations, followed by generic Auto* INSTALL file
566           content
567         
568 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
569
570         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
571           Patch by Stefan Eilers. (r529537)
572
573 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
574
575         * qt/qdbusinternalfilters.cpp: Don't show the parent's
576           contents (r528208)
577
578 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
579
580         * qt/Makefile.am: fix the dependency for
581           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
582           not in qdbusconnection.cpp.
583           Thanks to Jakub Stachowski <stachowski@hypair.net> for
584           spotting this.
585
586 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
587
588         * qt/examples/listnames.cpp:
589         * qt/examples/Makefile.am: Three ways to list the names on the
590           bus.
591
592 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
593
594         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
595           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
596
597 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
598
599         Merge from Subversion:
600         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
601           something that exists (r526315)
602         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
603           slots/signals (r526316)
604         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
605           also return an unknown-method error if the parameters don't
606           match for org.freedesktop.DBus.Properties. (r526842)
607         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
608         * qt/qdbusintegrator.cpp: Restore the proper order of
609           delivery: don't make method returns be delivered on priority
610           (r528150)
611
612 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
613
614         * configure.in qt/Makefile.am: add qt/examples
615         * qt/examples: Add QtDBus example programs:
616           - hello: Hello, World
617           - ping: Simple method-calling program
618           - pong: Simple object-exporting program (not using adaptors)
619           - complexping: Interactive method-calling program 
620                 (also gets and sets properties).
621           - complexpong: Sample program exporting methods, signals and
622                 properties, using adaptors.
623           - dbus: Simple implementation of a generic method-calling
624                 program, similar to 'dbus-send', but with semantics
625                 similar to 'dcop'.
626           - chat: Simplistic chat program, implemented using signals
627                 and the system bus. Looks like IRC.
628
629 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
630
631         * configure.in: Detect QtGui (necessary for one of the
632           example programs). Note: this increases the minimum required
633           version of Qt to 4.1.3.
634
635 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
636
637         * test/qt/*: Sync with KDE Subversion revision 523647.
638         Update the testcases to the new API. Remove testcases for
639         classes that are no longer public or have been removed.
640
641 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
642
643         * qt/*: 
644         * dbus/qdbus.h: Sync with KDE Subversion revision
645         523647. Hopefully, this will be the last of the
646         source-incompatible changes. Documentation has been improved;
647         support for QList<basic-types> has been added; QDBusObject is
648         gone; QDBus(Abstract)Interface is now a QObject with
649         auto-generated meta-object; QDBusIntrospection is marked
650         private, since QMetaObject can be used now; lots of bugfixes.
651
652 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
653
654         Patch from Milosz Derezynski <internalerror at gmail.com>
655         
656         * configure.in:
657         Output the service directory in the configure summary
658
659         * dbus-1.pc.in:
660         Add session_bus_services_dir
661
662 2006-03-10  Ross Burton  <ross@openedhand.com>
663
664         * tools/dbus-print-message.c:
665         Add support for object paths and signatures.
666
667 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
668
669         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
670         config reload.
671         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
672         information caches
673         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
674         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
675         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
676         * dbus/dbus-userdb.h: Add function to flush all user/group information
677         caches.
678
679 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
680
681         * qt/dbusidl2cpp.cpp:
682         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
683         for dcopidl2cpp, found in the KDE installations (or the more
684         modern kalyptus): generate Qt4 C++ code for the input XML
685         introspection. Currently no IDL parsing.
686
687 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
688
689         * test/qt/*: Update the self-tests.
690
691 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
692
693         * qt/*: 
694         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
695         represents the first feature-complete version of the Qt4
696         bindings since I took ove maintainership.
697
698 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
699
700         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
701         dir. This is C++, so we can't use the DBus ones.
702
703 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
704
705         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
706         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
707
708 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
709
710         * dbus/dbus-connection.c: 
711         (_dbus_connection_block_pending_call):
712         Check to see if our data has already been read off the connection
713         by another blocking pending call before we block in poll.
714         (check_for_reply_and_update_dispatch_unlocked):
715         Code taken from _dbus_connection_block_pending_call - checks for
716         an already read reply and updates the dispatch if there is one.
717
718         * test/name-test/test-pending-call-dispatch.c:
719         New test for making sure we don't get stuck polling a 
720         dbus connection which has no data on the socket when
721         blocking out of order on two or more pending calls.
722
723 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
724
725         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
726         make/automake don't detect that we're talking about the same
727         .lo file if I specify the full path to the source files.
728
729 2006-02-26  Havoc Pennington  <hp@redhat.com>
730
731         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
732
733         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
734         session bus variable is unset, suggest "man dbus-launch" and "man
735         dbus-daemon" to figure out how to fix the problem
736
737 2006-02-25  Havoc Pennington  <hp@redhat.com>
738
739         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
740         should make this thing use the new glib options parser
741
742 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
743
744         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
745         .lo files taking moc sources.
746
747 2006-02-25  Havoc Pennington  <hp@redhat.com>
748
749         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
750         and install it as a public header
751
752 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
753
754         * Released 0.61
755
756 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
757         
758         * proxies.py: Fix the callchain
759
760 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
761         
762         * patch from Sjoerd Simons <sjoerd at debian.org>:      
763
764         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
765         dbus/dbus-sysdeps.c
766
767         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
768         call _dbus_group_info_free_allocated which causes infinite loop,
769         correctly call _dbus_group_info_free
770
771 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
772
773         * qt/qdbusinterface_p.h:
774         * qt/qdbusinterface.cpp: Use the standard
775         org.freedesktop.DBus.Method.NoReply annotation for the "async"
776         calls instead of creating one for us.
777
778         * qt/qdbusconnection_p.h:
779         * qt/qdbusintegrator.cpp: Remove debugging code.
780
781         * qt/qdbusintegrator.cpp:
782         * qt/qdbusmessage.cpp:
783         * qt/qdbusmessage_p.h:
784         * qt/qdbusmessage.h: Change the behaviour of automatic
785         reply-sending: now a reply is always sent, unless the caller
786         didn't request one or if the user slot has already sent one.
787
788 2006-02-16  Robert McQueen  <robot101@debian.org>
789
790         * configure.in: Patch from Debian packages by Sjoerd Simons
791         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
792         arguments so it's possible to build both bindings in the
793         same tree.
794
795         * qt/Makefile.am: Fix truncated value so that make dist works.
796
797 2006-02-16  Robert McQueen  <robot101@debian.org>
798
799         * acinclude.m4, configure.in: Patch from Brad Hards
800         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
801         improving quoting, re-ordering a few checks, and a few other
802         aesthetic tidy-ups.
803
804 2006-02-16  Robert McQueen  <robot101@debian.org>
805
806         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
807         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
808         assertion that the next element to read from the iter is fixed in
809         size. This is not the case when you are at the end of the iter,
810         because the next element type is INVALID.
811
812         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
813         a bogus assert which means that you may not initialise a 0-length
814         string unless you provide a non-NULL pointer. This prevented
815         you from marshalling messages containing zero-length arrays in
816         some cases.
817
818         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
819         from Rob to correct bogus asserts when trying to demarshal an
820         array and get_fixed_array got you 0 elements. Append nothing to
821         the GArray in this case.
822
823         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
824         an empty array via the glib bindings. Without all of the above
825         patches, this new test fails.
826
827 2006-02-16  Robert McQueen  <robot101@debian.org>
828
829         * glib/dbus-gmain.c: Make the previous commit compile.
830
831         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
832         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
833         specify sender_keyword="foo", path_keyword="bar" when adding
834         a signal listener, so that you can bind to signals generically
835         but still do something useful in your callback.
836
837         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
838         chars so that they're not cast to chars and made negative. Thanks
839         to Jakub Stachowski for reporting this and testing the fix.
840
841 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
842
843         * dbus/dbus-glib.h:
844         * glib/dbus-gmain.h:
845         (dbus_g_connection_open): new method for openning
846         a connection to an arbitrary address in the glib bindings
847
848         * ChangeLog: checkin last entry which doesn't seem to be commited
849
850 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
851
852         * tools/dbus-launch.c: Fixed sh syntax output
853
854 2006-02-13  Robert McQueen  <robot101@debian.org>
855
856         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
857         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
858         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
859         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
860         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
861         missing piece of the glib bindings jigsaw puzzle. This modifies
862         the existing specialised types to have N type parameters (rather
863         than the current 1 or 2 for arrays and dictionaries respectively).
864         You can then use this to get a glib type to represent any arbitrary
865         D-Bus struct type using dbus_g_type_get_struct. The only
866         implementation of these types is with GValueArrays as before,
867         but it's now possible to store these in arrays, emit them in
868         signals, etc.
869
870 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
871
872         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
873         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
874         <thiago.macieira at trolltech.com>
875
876 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
877
878         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
879         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
880
881 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
882
883         * bus/connection.c (bus_connections_expect_reply): Make
884         pending reply limit not common to all connections (Bug #5416)
885         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
886
887 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
888
889         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
890
891 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
892
893         * gcj/Makefile.am: point to correct jar command (Bug #4529)
894         patch from Doug Goldstein <cardoe at gentoo.org>
895
896 2006-02-09  Joe Shaw  <joeshaw@novell.com>
897
898         * mono/Arguments.cs: Fix a magic number in the mono bindings
899         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
900
901 2006-01-27  Robert McQueen  <robot101@debian.org>
902
903         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
904         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
905         when generating the client-side methods, instead of overloading
906         CSymbol which broke everything horribly. My apologies.
907
908 2006-01-27  Robert McQueen  <robot101@debian.org>
909
910         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
911         by me and Rob Taylor to add a simple_free function to D-Bus map
912         and collection types, which allows those types which can be freed
913         with a GDestroyNotify (such as GHashTables and GArrays, but not
914         GPtrArrays) to be stored as the values in hashtables.
915
916         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
917         Patch by Rob Taylor to add nested dicts to the glib tests to check
918         the above code works, and appears not to leak when called repeatedly.
919
920 2006-01-27  Robert McQueen  <robot101@debian.org>
921
922         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
923         to free a D-Bus allocated string with dbus_free () instead of
924         g_free ().
925
926 2006-01-27  Iain Holmes  <iain@openedhand.com>
927
928         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
929         method from being called multiple times.
930
931 2006-01-19  Robert McQueen  <robot101@debian.org>
932
933         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
934         <rob.taylor@collabora.co.uk> to add support for generating bindings
935         to arrays that are represented as GPtrArrays rather than GArrays (ie
936         size-variable things, such as strings, objects, structs, etc).
937
938 2006-01-05  Robert McQueen  <robot101@debian.org>
939
940         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
941         <ricardo.kekki@movial.fi> to make it possible to inherit from
942         DBusGProxy, by splitting the DBusGProxy struct into a public part and
943         a private part, and moving the setting of the DBusGProxyManager into a
944         connection property, allowing proper GObject construction.
945
946 2006-01-05  Robert McQueen  <robot101@debian.org>
947
948         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
949         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
950         annotations when generating glib client bindings.
951
952 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
953
954         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
955
956         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
957
958 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
959
960         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
961
962 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
963
964         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
965
966 2005-12-19  Ross Burton  <ross@openedhand.com>
967
968         * doc/dbus-tutorial.xml:
969         Document the Glib client-side bindings, and list all possible annotations.
970
971 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
972
973         * dbus/bus.c (dbus_bus_release_name): Add documentation
974
975 2005-12-06  Robert McQueen  <robot101@debian.org>
976
977         * python/service.py: s/sucessful/successful/ so we're allocating to
978         and reading from the same variable. Oops.
979
980 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
981
982         * Released 0.60
983
984 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
985
986         * test/qt/Makefile.am: build from srcdir
987
988         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
989         Note - this code is wrong and needs to be fixed by the Qt binding
990         developers.  The flags should be treated as bitfields and not enums.
991
992         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
993
994 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
995
996         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
997           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
998           in production code
999
1000 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1001
1002         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1003         method for getting messages off the bus in the absence of a
1004         mainloop.  This method is much like 
1005         dbus_connection_read_write_dispatch except it does not dispatch
1006         the messages to a registered filter function.  Instead it
1007         allows a developer to process messages by directly popping
1008         them off the bus.
1009
1010 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1011
1012         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1013         the parser to continue instead of returning error
1014         (bus_desktop_file_load): Do not free parser data when
1015         parse_section_start or parse_key_value fails because it was 
1016         already freed by parser_free (patch from Carlos Garcia Campos  
1017         <carlosgc at gnome.org>)
1018
1019 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1020
1021         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1022         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1023         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1024         test/test-segfault.c, test/test-utils.c,
1025         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1026         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1027         Various cleanup of dead code and compiler warnings (patch from
1028         Kjartan Maraas <kmaraas at gnome.org>) 
1029
1030 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1031
1032         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1033         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1034
1035 2005-11-27  Robert McQueen  <robot101@debian.org>
1036
1037         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1038         part of the preceding one. Oops. Merge patch by Johan Hedberg
1039         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1040         on big-endian platforms.
1041
1042         * test/python/test-client.py: Add some 16-bit integers to the test
1043         values.
1044
1045 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1046
1047         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1048         method return message for property getters
1049
1050 2005-11-27  Robert McQueen  <robot101@debian.org>
1051
1052         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1053         with type v of an instance of dbus.Variant(foo, type='x') caused
1054         it to be boxed twice before sending over the bus.
1055
1056         * python/dbus_bindings.pyx, python/service.py,
1057         test/python/test-client.py: Update the constants for the new
1058         request_name flags, and update comments/test cases now that queueing
1059         is the default action.
1060
1061 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1062
1063         * configure.in:
1064         - Change version to 0.60 for impending release
1065         - upped the sonames because of ABI and API breakage
1066
1067 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1068
1069         * configure.in: Add test/name-test/Makefile to the generated
1070         Makefile list
1071
1072         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1073         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1074         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1075         not to queue an ower if it can't be the primary owner
1076
1077         * bus/bus.h: Add new internal BusOwner struct
1078
1079         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1080         to bus_registry_ensure and don't set the prohibit_replacement flag
1081         since they are now set per BusOwner and not per name.
1082         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1083         that returns the list of connections in a name's connection queue
1084         
1085         * bus/services.c (struct BusService): remove prohibit_replacement field
1086         (struct BusOwner): new struct for keeping track of queued connections
1087         and their associated flags for the queue
1088         (struct BusRegistry): add a BusOwner memory pool
1089         (bus_registry_new): initialize the BusOwner memory pool
1090         (bus_registry_unref): free the BusOwner memory pool
1091         (_bus_service_find_owner_link): new internal method for
1092         searching the queue for a specific connection
1093         (bus_owner_set_flags): new method for adding setting the flags on a
1094         bus owner
1095         (bus_owner_new): new method that creates a BusOwner object from the
1096         pool and sets its flags
1097         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1098         (bus_registry_ensure): Add the flags parameter
1099         (bus_registry_acquire_service): Switch from using raw connections to
1100         using the BusOwner struct
1101         Add new state machine for dealing with the new set of flags
1102         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1103         cancel_ownership, free_ownership_cancel_data, 
1104         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1105         restore_ownership, free_ownership_restore_data, 
1106         add_restore_ownership_to_transaction): Switch to using BusOwner 
1107         instead of raw connections
1108         (bus_service_add_owner): Add flags parameter
1109         Switch to using BusOwner instead of raw connections
1110         Add state machine for dealing with the new set of flags
1111         (bus_service_swap_owner): Swaps the first and second owners in the
1112         queue.  Used to make sure proper signals are sent when a service looses 
1113         or gains primary ownership.  We never insert an owner at the top of the
1114         queue.  Instead we insert it in the second position and then swap.
1115         (bus_service_remove_owner): Remove the owner from the queue sending
1116         out the NameLost and NameOwnerChanged signals if the we were the 
1117         primary owner
1118         (bus_service_get_primary_owners_connection): New method that extracts
1119         the connection from the primary owner
1120         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1121         connection
1122         (bus_service_get_allow_replacement): Changed from the old 
1123         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1124         primary owner and returns if it can be replaced or not
1125         (bus_service_set_prohibit_replacement): removed
1126         (bus_service_has_owner): returns TRUE if and owner with
1127         the specified connection exists in the queue
1128         
1129         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1130         method that only compiles if tests are enabled.  Allows us to get the 
1131         unique name of a connection so we can check it against the queue when
1132         doing regression tests
1133
1134         * bus/activation.c (bus_activation_send_pending_auto_activate),
1135         bus/dispatch.c (bus_dispatch),  
1136         bus/driver.c (bus_driver_handle_get_service_owner, 
1137         bus_driver_handle_get_connection_unix_user, 
1138         bus_driver_handle_get_connection_unix_process_id,
1139         bus_driver_handle_get_connection_selinux_security_context),
1140         bus/signals.c (connection_is_primary_owner): 
1141         use bus_service_get_primary_owners_connection instead of
1142         bus_service_get_primary_owner
1143
1144         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1145         _dbus_listen_unix_socket): Calculate the length of the socket
1146         path and use that instead of using a fixed length which was
1147         causing socket names to contain many trailing Nul bytes.
1148
1149         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1150         (dbus_g_method_get_sender): New method for extracting the sender 
1151         from a DBusGMethodInvocation
1152         (dbus_g_method_return_get_reply): changed name to 
1153         dbus_g_method_get_reply
1154         (dbus_g_method_return_send_reply): changed name to
1155         dbus_g_method_send reply
1156
1157         * doc/dbus-specification.xml: New docs that describe how the new
1158         queueing system works and talks about the changes to the how
1159         we specify socket names
1160
1161         * glib/examples/example-service.c, 
1162         glib/examples/example-signal-emitter.c,
1163         glib/examples/statemachine/statemachine-server.c:
1164         Changed the RequestName flags to the new system
1165
1166         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1167         regression test suite for testing various states of the new
1168         queueing system
1169         
1170 2005-11-15  Robert McQueen  <robot101@debian.org>
1171
1172         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1173         Taylor to add two methods, dbus_g_method_return_get_reply and
1174         dbus_g_method_return_send_reply, to allow you to get the reply
1175         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1176         and send it. The GLib bindings can't marshal a return value of
1177         something like a(s) if the array is empty - ultimately they should be
1178         made to heed the signature of the out arguments as the Python bindings
1179         now can, but this is a workable interim solution which might have
1180         other applications.
1181
1182 2005-11-15  Robert McQueen  <robot101@debian.org>
1183
1184         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1185         method to org.freedesktop.DBus to release a bus name or give up
1186         waiting in the queue for it.
1187
1188         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1189         dbus_bus_release_name method to send the ReleaseName method calls.
1190         Add constants for the return values to dbus/dbus-shared.h.
1191
1192         * doc/dbus-specification.xml: Document the new ReleaseName method
1193         in the specification.
1194
1195         * python/dbus_bindings.pyx: Add a low-level python binding for the
1196         release name method.
1197
1198         * python/exceptions.py, python/service.py: Make freeing BusName
1199         objects release the name. Add a NameExistsException, and fix a
1200         bug with creating UnknownMethodException.
1201
1202         * test/python/test-client.py: Add tests for freeing BusName
1203         objects causing names to be released.
1204
1205 2005-11-14  Robert McQueen  <robot101@debian.org>
1206
1207         * python/service.py: Include the traceback in the error reply when we
1208         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1209
1210 2005-11-14  David Zeuthen  <davidz@redhat.com>
1211
1212         Patch from Timo Hoenig <thoenig@suse.de>.
1213
1214         * bus/bus.c: I've recently investigated why the automatic reload
1215         of configuration files does not work as expected.
1216
1217         Currently, reloading configuration files does only work when
1218         running dbus-daemon with --nodaemon.  If we are running as daemon
1219         we're hitting a dnotify bug once we fork the process.
1220
1221         We're initializing the dnotify fds before calling fork().  Once
1222         the child process forked it does still have the fds (and they
1223         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1224         getting SIGIO as changes are made to the configuration files.
1225
1226         The attached patch moves the initialization of the dnotify fds to
1227         process_config_postinit().  This is safe for all current code
1228         paths and solves the dnotify disfunction.  If we're running
1229         dbus-daemon as daemon the fds for dnotify are now being
1230         initialized after fork() for the child process.
1231
1232         * configure.in: The current configure.in check for dnotify probes
1233         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1234         match for 'xlinux', too. Additionally I have adapted the configure
1235         option's style to match with the others.
1236
1237 2005-11-14  Robert McQueen  <robot101@debian.org>
1238
1239         * python/decorators.py, python/service.py: Add a new argument to the
1240         dbus.service.method decorator called sender_keyword, which if set,
1241         specifies the name of an argument which will be provided the bus
1242         name of the method caller.
1243
1244         * test/python/test-client.py, test/python/test-service.py: Add a
1245         method and test to check the sender_keyword functionality.
1246
1247 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1248
1249         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1250         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1251         Simons <sjoerd at luon.net>)
1252
1253         * AUTHORS: Add Robert McQueen for his work on the Python
1254         Bindings and other parts of D-Bus
1255
1256 2005-11-07  Robert McQueen  <robot101@debian.org>
1257
1258         * python/decorators.py: Change emit_signal function to use the
1259         signature annotation of the signal when marhsalling the arguments from
1260         the service. Fix a bug where the code checking signature length
1261         against argument length referenced the wrong variable.
1262
1263         * python/introspect_parser.py: Avoid adding the type signature of
1264         signal arguments to any methods which occur after them in the
1265         introspection data (!) by making the parser a little more careful
1266         about its current state.
1267
1268         * python/service.py: Remove debug prints from last commit (again :D).
1269
1270         * test/python/test-client.py, test/python/test-service.py: Add test
1271         signals with signature decorators to test the strict marshalling code
1272         gives errors at the right time. Could do with checking the signals
1273         actually get emitted too, given that the test does nothing with
1274         signals at the moment...
1275
1276 2005-11-07  Robert McQueen  <robot101@debian.org>
1277
1278         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1279         instances to stop madness of creating new instances representing
1280         the same bus connection all the time, rendering any tracking of
1281         match rules and bus names quite meaningless. Caught a bug where
1282         the private argument to SessionBus() and friends was being passed
1283         in as use_default_mainloop by mistake. Still some problems with
1284         multiple dbus_binding.Connection instances representing the same
1285         low-level connection (eg when you use both SessionBus() and
1286         StarterBus() in same process), but it's a lot better now than it
1287         was.
1288
1289         * python/dbus_bindings.pyx: Add constants with the return values
1290         for bus_request_name().
1291
1292         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1293         and retrieve the same instances for the same name, so deletion can be
1294         done with refcounting. Also now throws some kind of error if you
1295         don't actually get the name you requested, unlike previously...
1296
1297         * test/python/test-client.py: Add tests for instance caching of buses
1298         and bus name objects.
1299
1300 2005-11-04  Robert McQueen  <robot101@debian.org>
1301
1302         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1303         marshalling of boolean values. Add some booleans to the values in
1304         the test client.
1305
1306         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1307         argument to the dbus.service.method decorator, which allows you to
1308         name arguments to take two callback functions for replying with
1309         return values or an exception.
1310
1311         * test/python/test-client.py, test/python/test-service.py: Add test
1312         case using asynchronous method reply functions, both return values and
1313         errors, and from within both the function itself and from a mainloop
1314         callback.
1315
1316         * python/decorators.py, python/service.py: Perform checking that the
1317         number of method/signal arguments matches the number of types in the
1318         signature at class loading time, not when you first introspect the
1319         class.
1320
1321         * python/service.py: Remove debug print left by the last commit.
1322
1323 2005-11-03  Robert McQueen  <robot101@debian.org>
1324
1325         * python/service.py: Heavy refactoring of method invocation, with
1326         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1327         in favour of a new _message_cb that uses seperate functions for
1328         looking up the method to call, marshalling the return values, and
1329         sending exceptions as errors, and is easier to follow as a
1330         consequence.  Fixes some corner cases about returning things that
1331         don't match your declared out_signature, allows exceptions to define
1332         _dbus_error_name and have it be sent over the bus as the error name,
1333         and paves the way for cool stuff like heeding the message no reply
1334         flag, asynchronous method implementations, informing the method of the
1335         sender, and including backtraces in the error messages.
1336
1337         * test/python/test-client.py: Catch and print exceptions thrown in the
1338         async callback tests, rather than passing them to the low-level
1339         bindings to be ignored in a noisy and frustrating manner.
1340
1341 2005-11-03  Robert McQueen  <robot101@debian.org>
1342
1343         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1344         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1345         tweak others to be consistent.
1346
1347         * test/python/test-client.py: Tweak output of testInheritance.
1348
1349 2005-10-29  Robert McQueen  <robot101@debian.org>
1350
1351         * python/service.py: Major changes to allow multiple inheritance
1352         from classes that define D-Bus interfaces:
1353         
1354          1. Create a new Interface class which is the parent class of
1355             Object, and make the ObjectType metaclass into InterfaceType.
1356         
1357          2. Patch written with Rob Taylor to replace use of method_vtable
1358             with code that walks the class's __MRO__ (method resolution order)
1359             to behave like Python does when invoking methods and allow
1360             overriding as you'd expect. Code is quite tricky because
1361             we have to find two methods, the one to invoke which has the
1362             right name and isn't decorated with the /wrong/ interface,
1363             and the one to pick up the signatures from which is decorated
1364             with the right interface.
1365         
1366             The same caveats apply as to normal multiple inheritance -
1367             this has undefined behaviour if you try and inherit from two
1368             classes that define a method with the same name but are
1369             decorated with different interfaces. You should decorate
1370             your overriding method with the interface you want.
1371         
1372          3. Replace grungy introspection XML generation code in the metaclass
1373             with dictionaries that cope correctly with multiple inheritance
1374             and the overriding of methods. This also uses the signature
1375             decorations to provide correct introspection data, including
1376             the debut appearance of the types of your return values. :D
1377
1378         * test/python/test-client.py, test/python/test-service.py: Add a test
1379         case to try invoking an method that overrides one inherited from a
1380         D-Bus interface class.
1381
1382 2005-10-29  Robert McQueen  <robot101@debian.org>
1383
1384         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1385         Add checking for the end of struct character when marshalling a
1386         struct in MessageIter.append_strict.
1387
1388         * python/examples/example-service.py,
1389         python/examples/gconf-proxy-service.py,
1390         python/examples/gconf-proxy-service2.py: Update to use gobject
1391         mainloop directly rather than appearing to depend on gtk.
1392
1393         * python/test/test-client.py, python/test/test-server.py: Remove
1394         obsolete and broken test scripts for old bindings. We have up to date
1395         and working tests in test/python/.
1396
1397 2005-10-29  Robert McQueen  <robot101@debian.org>
1398
1399         * python/decorators.py: Add optional arguments to the method and
1400         signal decorators to allow you to specify the signature of arguments
1401         and return values. Preserve the doc strings of signal functions in the
1402         decorated version, for pydoc and friends.
1403
1404         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1405         parse_signature_block function with an iterable dbus.Signature()
1406         type. Fix a bug in MessageIter.append_strict where you could append
1407         anything by claiming it was a string.
1408
1409         * python/service.py: Use the out_signature decoration on methods to
1410         marshal return values, meaning you no longer require dbus.Array()
1411         or dbus.Dictionary() to indicate the type when returning empty
1412         arrays or dictionaries. Fix a bug where exceptions which are defined
1413         in __main__ are not turned into error replies.
1414
1415         * test/python/test-client.py, test/python/test-service.py: Add test
1416         for correct marshalling of return values according to out_signature.
1417         Fix a bug in the async call test where the error_handler is missing a
1418         self argument.
1419
1420 2005-10-29  Robert McQueen  <robot101@debian.org>
1421
1422         * glib/Makefile.am, glib/examples/Makefile.am,
1423         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1424         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1425
1426         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1427
1428         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1429         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1430         the command line.
1431
1432 2005-10-27  Ross Burton  <ross@openedhand.com>
1433
1434         * dbus/dbus-marshal-header.c:
1435         Remove dead code.
1436
1437         * glib/dbus-gobject.c:
1438         Stop compiler warning.
1439
1440 2005-10-25  Ross Burton  <ross@openedhand.com>
1441
1442         * dbus/dbus-auth.c:
1443         * dbus/dbus-server-unix.c:
1444         * dbus/dbus-transport-unix.c:
1445         * glib/dbus-gmain.c:
1446         * glib/dbus-gobject.c:
1447         Add some const keywords.
1448
1449 2005-10-25  Ross Burton  <ross@openedhand.com>
1450
1451         * doc/dbus-specification.xml:
1452         Document the NoReply annotation.
1453
1454         * glib/dbus-binding-tool-glib.h:
1455         * glib/dbus-binding-tool-glib.c:
1456         Respect the NoReply annotation.
1457
1458 2005-10-24  Robert McQueen <robot101@debian.org>
1459
1460         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1461         derive from unicode instead of str, and encode/decode UTF-8 when
1462         marshalling/unmarshalling bus messages
1463
1464         * python/introspect_parser.py: encode introspection data as UTF-8
1465         before passing the buffer into libxml2
1466
1467         * test/python/test-client.py: add unicode test strings
1468
1469         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1470         ignore generated python test files
1471
1472 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1473
1474         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1475         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1476         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1477
1478         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1479         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1480         when constructing struct signatures
1481
1482         * python/_dbus.py (Bus): handle private connections using the
1483         private keyword in the constructor. defaults to private=False
1484         (Bus::close): new method to close a connection to the bus
1485
1486         * python/dbus_bindings.pyx (Connection::close): renamed method
1487         was previously called disconnect
1488         (bus_get): now supports getting a private connection
1489
1490         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1491         keyword is set to True.  if it is, execute the method without waiting
1492         for a reply
1493         (ProxyObject::_introspect_execute_queue): new method for executing
1494         all the pending methods that were waiting for the introspect to
1495         finish.  this is called when introspect either succeeds or fails
1496         (ProxyObject::_introspect_error_handler): call queued methods
1497
1498 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1499
1500         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1501         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1502
1503         * python/service.py (Object::_message_cb): handle exceptions correctly
1504         by sending them over the wire to the calling app.  This makes sure
1505         the client returns immediately instead of waiting the 15 seconds to
1506         timeout.
1507
1508         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1509         Add a test to benchmark how long it takes to introspect a service and 
1510         call a method which returns a large element (pretty fast)
1511
1512         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1513         method which pushes a lot of data
1514
1515 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1516
1517         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1518         reclaim memory outside of the loop and use del istead of just setting
1519         the key to None
1520
1521 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1522
1523         * python/service.py (ObjectType::_reflect_on_signal): Always close
1524         signal tag even when there are no arguments
1525
1526 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1527
1528         * configure.in: Set mono, mono-docs and Qt3 to default
1529         to no instead of auto when building.  These bindings do not
1530         have full time maintainers and will not be supported for the
1531         1.0 release.
1532
1533 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1534
1535         patches from Michael Krivoruchko <misha at sun.com>: 
1536         
1537         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1538         _dbus_connection_message_sent, 
1539         _dbus_connection_send_preallocated_unlocked_no_update, 
1540         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1541         is NULL when calling _dbus_verbose
1542
1543         * configure.in: check for functions getpeerucred and getpeereid
1544
1545         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1546         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1547         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1548         Patch was only tested on Solaris 10 x86 so it might be issues
1549         with other platforms (i.e. BSDs and MacOSX)
1550         
1551
1552 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1553
1554         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1555         instead of marshal basic so we can handle recursive types in a variant
1556
1557         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1558         in variants
1559
1560         * test/glib/test-service-glib.c, test-service-glib.xml
1561         (my_object_echo_variant [EchoVariant], 
1562         my_object_process_variant_of_array_of_ints123
1563         [ProcessVariantOfArrayOfInts123]): 
1564         Add two test methods
1565
1566         * python/introspect_parser.py: New module for parsing introspect
1567         data.
1568
1569         * python/dbus_bindings.pyx:
1570         (various places): when throwing errors fix to use errormsg instead 
1571         of message local variable because Pyrex can get confused with other 
1572         message variables (initial patch by Robert McQueen 
1573         <robert.mcqueen at collabora.co.uk>)
1574         (MessageIter::parse_signature_block): new method for getting the next
1575         block in a signiture.
1576         (MessageIter::append_strict): new method for appending values strictly
1577         using the passed in signature instead of guessing at the type
1578         (MessageItter:: append_dict, append_struct, append_array): use 
1579         signatures to marshal children if the signature is available
1580         
1581         * python/exceptions.py (IntrospectionParserException): new exception
1582
1583         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1584         introspected signatures if available, else we fall back to the
1585         old way of doing things.
1586         (ProxyObject::_introspect_reply_handler ): parse introspection data
1587         
1588         * python/service.py (ObjectType::_reflect_on_method): Properly
1589         terminate <method> if there are no args in the reflection data
1590
1591         * test/python/test-client.py: add tests for talking with the GLib
1592         test server.  This gives us better coverage for introspection since
1593         python to python will always generate arguments as variants.  It also
1594         allows us to test the robustness of the GLib bindings and interlanguage
1595         communications.
1596
1597         
1598 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1599
1600         * bus/driver.c (bus_driver_handle_introspect): Add signals
1601         to the introspect data. (patch from Daniel P. Berrange 
1602         <dan at berrange.com>)
1603
1604         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1605         
1606         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1607         _dbus_connection_run_builtin_filters): Changed these to
1608         be unlock_no_update functions and call 
1609         _dbus_connection_send_unlocked_no_update instead of
1610         dbus_connection_send to avoid locking errors.
1611         
1612         * doc/TODO: Removed the make Ping test TODO
1613         
1614 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1615
1616         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1617         We now copy the message from a DBusError and then free 
1618         the error object befor throwing the error
1619
1620         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1621         DBusBindingOutputMode enum which was causing a warning.
1622         #include <time.h> so using time_t is explicitly defined
1623
1624 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1625
1626         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1627         - dbus/dbus-bus.c
1628         (internal_bus_get): new method that take over the heavy lifting
1629         of dbus_bus_get and adds the ability to get a private connection
1630         to the bus
1631         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1632         interface as in previous versions
1633         (dbus_bus_get_private): new method that is a wrapper to 
1634         internal_bus_get to get a private connection to the bus
1635
1636         - dbus/dbus-bus.h
1637         (dbus_bus_get_private): add as a public libdbus interface
1638
1639         - dbus-1.pc.in: output system_bus_default_address and 
1640         sysconfdir variables so apps can use them when compiling
1641
1642 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1643         * dbus/qt: New Qt bindings
1644
1645 2005-09-12  Waldo Bastian  <bastian@kde.org>
1646
1647         * dbus/dbus-marshal-validate.c,
1648         doc/dbus-specification.xml, test/Makefile.am,
1649         test/test-names.c: allow hyphens in bus names.
1650
1651 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1652
1653         * test/data/auth/fallback.auth-script: we don't
1654         retry the EXTERNAL method when we know its going
1655         to fail anymore.
1656
1657 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1658
1659         * dbus/dbus-connection-internal.h: rename
1660         (add|remove|toggle)_(watch|timeout) to unlocked()
1661         
1662         * dbus/dbus-connection.c: ditto.
1663         
1664         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1665         Update some callers for the renaming.
1666
1667 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1668
1669         * dbus/dbus-auth.c: (record_mechanisms): don't
1670         retry the first auth mechanism because we know
1671         we're just going to get rejected again.
1672         
1673         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1674         Fix thinko ... and what a nasty little bugger to
1675         track down you were ...
1676
1677         * dbus/dbus-connection.c:
1678         (_dbus_connection_add_watch),
1679         (_dbus_connection_remove_watch): add note about
1680         these needing the connection to be locked.
1681         (_dbus_connection_get_dispatch_status_unlocked):
1682         set status to DATA_REMAINS when we queue the
1683         disconnected message.
1684         
1685         * bus/dispatch.c:
1686         (bus_dispatch): fix warning.
1687         (check_existent_service_no_auto_start):
1688         Expect ChildSignaled error too.
1689         (check_existent_hello_from_self): fix another
1690         couple of warnings.
1691         
1692 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1693
1694         Patches from James Willcox <snorp@snorp.net>
1695
1696         * mono/Makefile.am: Add Int16.cs and UInt16.cs
1697
1698         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1699         support array "out" parameters.
1700
1701         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1702         for 16-bit int support.
1703
1704 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
1705
1706         * Released 0.50
1707
1708         * Patch from Steve Grubb:
1709         - bus/activation.c (bus_activation_service_reload_test): clean up
1710         some indentation
1711         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
1712         - dbus/dbus-message-factory.c (generate_special): fix a couple of
1713         buffer overflows in the test suite.  This is non critical because
1714         it can not be exploited and this code is only run when doing a 
1715         make check.
1716
1717         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1718         - configure.in: Don't check and link against kdecore, only qt headers
1719         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1720         - gcj/org/freedesktop/dbus/Makefile.am:
1721         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1722         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1723         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1724         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1725         - tools/Makefile.am: Add platform extentions to binaries 
1726         (i.e. .exe on windows)
1727
1728         * configure.in: 
1729         - Make it so if no suitable version of python is found we only 
1730         disable building python instead of exiting the configure script
1731         - Require version 2.4 of glib for glib bindings
1732         - Up version to 0.50
1733
1734         * python/__init__.py: Sync version with libdbus to (0,50,0)
1735         
1736 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
1737
1738         * dbus/dbus-object-tree.c (find_subtree_recurse):
1739         a couple of optimizations (bug #710):
1740         - do a binary search in the tree
1741         - insert a new child at the right place directly, no need for
1742           qsort anymore
1743         - do the "double alloc" thing when allocating children
1744
1745 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
1746
1747         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1748
1749         * python/dbus_bindings.pyx: Memory management foo
1750         (global): remove hacky _user_data_references global list
1751         (GIL_safe_cunregister_function_handler): userdata now stuffed into
1752         tuples. Unref user_data
1753         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1754         (Connection::__del__): Remove and replace with __dealloc__ method
1755         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
1756         to keep tuple from being deallocated instead of the global var hack
1757         (Connection::register_object_path): Stuff user_data into a tuple.
1758         Use Py_INCREF to keep tuple from being deallocated instead of the 
1759         global var hack
1760         (Connection::register_fallback): Stuff user_data into a tuple.
1761         Use Py_INCREF to keep tuple from being deallocated instead of the 
1762         global var hack
1763         (GIL_safe_pending_call_notification): Don't unref the message
1764         because it gets unreffed when going out of scope.  Py_XDECREF
1765         the user_data
1766         (PendingCall::__del__): Remove and replace with __dealloc__ method
1767         (PendingCall::set_notify): ref the pending call because we will
1768         need it to stick around for when the notify callback gets called
1769         (Message::__del__): Remove and replace with __dealloc__ method
1770
1771         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
1772         gthreads_init to match up with the dbus call
1773
1774         * python/glib.py (init_threads): Changed to threads_init to match
1775         up with gobject.threads_init().  init_threads is kept for backwards
1776         compat but will most likely be deprecated in the future
1777
1778         * test/python/test-client.py: 
1779         - revamp to use Python's unittest functionality
1780         - add async call tests
1781         - setup threads in glib and dbus so we make sure locks are working
1782         
1783 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1784
1785         * python/dbus_bindings.pyx 
1786         (_pending_call_notification, cunregister_function_handler, 
1787         cmessage_function_handler): All callback functions have been rearranged 
1788         to workaround a bug in Pyrex when working with the GIL which is Python's 
1789         global lock when dealing with threads.  They have been split into
1790         a wrapper function (which assumes the name of the old function) and
1791         a _GIL_safe_<function name> function which contains the functionality
1792         of the old function.  This ensures that Pyrex does not write code
1793         the lock is released.
1794         
1795
1796 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
1797
1798         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1799         GIL global lock when calling back into Python
1800
1801 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
1802
1803         * Release 0.36.2
1804
1805         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1806
1807         * bus/policy.c (bus_policy_allow_user): change default "user is
1808         allowed" to be "user has same uid as the bus itself"; any
1809         allow/deny rules will override.
1810
1811         * bus/session.conf.in: don't allow all users, since now by default
1812         the user that ran the bus can connect.
1813
1814 2005-08-26  Colin Walters  <walters@verbum.org>
1815
1816         * tools/dbus-print-message.c (print_message): Flush stdout
1817         after printing a message, so that redirecting to a file, then
1818         hitting Ctrl-C works.
1819
1820 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
1821
1822         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1823         (EmptyMessage): new class that subclasses Message.  This is a workaround
1824         to a Pyrex bug that fails to call __del__ when the Message object goes out
1825         of scope.  For some reason subclassing Message fixes this bug
1826         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1827         - s/Message(_create=0)/EmptyMessage everywhere else
1828         
1829         * test/python/test-{server|client}.py: add the python/.libs directory
1830         to the lookup path so dbus_bindings and dbus_glib_bindings don't
1831         get picked up from the system
1832
1833 2005-08-25  Colin Walters  <walters@verbum.org>
1834
1835         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1836         to Ryan Lortie for the suggestion.
1837
1838 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1839
1840         * test/python: Add python regression test
1841
1842         * configure.in: Add test/python/Makefile
1843
1844         * test/Makefile.am: Add the python directory to SUBDIRS
1845
1846 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
1847
1848         * Release 0.36.1
1849
1850         * python/_dbus.py: 
1851         (Interface::connect_to_signal): propigate keywords for match on args
1852         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1853
1854         * python/proxies.py (ProxyObject::connect_to_signal):
1855         propigate keywords for match on args
1856
1857         * Makefile.am: point everything to pyexecdir since python borks
1858         on multilib
1859
1860 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1861
1862         * Release 0.36
1863
1864 2005-08-23  Colin Walters  <walters@verbum.org>
1865
1866         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1867
1868 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
1869
1870         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1871         to fix some wranings. We now use dbus_bindings.DBusConnection instead
1872         of defining DBusConnection ourselves.
1873
1874 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
1875
1876         * python/dbus.pth: New path file to fix up problems when installing
1877         c libraries to lib64 and python files to lib.
1878
1879         * python/Makefile.am: install dbus.pth in the correct spot
1880
1881 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
1882         * ChangeLog: clean up my last entry a bit
1883
1884         * doc/introspect.xsl: New stylesheet for converting introspection data
1885         into browser renderable xhtml. Contributed by Lennart Poettering.
1886
1887         * doc/introspect.dtd: Fixups in the introspect format from Lennart
1888         Poettering.
1889
1890         * doc/dbus-tutorial.xml: 
1891         - Add Colin Walter to the Authors section for authoring the GLib
1892         section
1893         - Add descriptions of the new signature and type functionality
1894         in the Python complex type mapping section
1895         - Add a sidenote on the new args matching functionality in 
1896         the Python bindings
1897         - Fixed up some of the examples to use the gobject.MainLoop
1898         instead of gtk.main
1899         
1900         * python/_dbus.py:
1901         (Bus::_create_args_dict): New. Converts a hash of arg matches
1902         to a more useable format
1903         (Bus::add_signal_receiver): add a **keywords parameter for catching
1904         arg match parameters
1905         (Bus::remove_signal_receiver): add a **keywords parameter for catching
1906         arg match parameters
1907         
1908         * python/matchrules.py:
1909         (MatchTree::exec_matches): Check for arg matches
1910         (SignalMatchRule::add_args_match): New method
1911         (SignalMatchRule::execute): Added args_list parameter as an optimization
1912         so we don't have to marshal the args more than once
1913         (SignalMatchRule::match_args_from_list): New method that checks to see
1914         if the rule's arg matches match an argument list.  Only arguments
1915         set in the rule are checked.
1916         (SignalMatchRule::match_args_from_rule): New method that checks to see
1917         if the rule's arg matches match another rule's.  All args have to match
1918         in order for this method to return true.  If either rule has more args
1919         then it is not a match.
1920         (SignalMatchRule::is_match): Add args match
1921         (SignalMatchRule::repr): Add args to the final output if they exist
1922
1923 2005-08-17  Ross Burton  <ross@burtonini.com>
1924
1925         * glib/dbus-gproxy.c:
1926         (dbus_g_proxy_call_no_reply): unref the message once sent.
1927         (dbus_g_proxy_call): protect against NULL proxy.
1928
1929 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
1930
1931         * python/__init__.py: Version updated (0, 43, 0)
1932         
1933         * python/dbus_bindings.pyx: 
1934         - Fixed type objects to have self passed into __init__
1935         - Added the Variant type
1936         - Add the ability to specify types or signatures for Array, Variant 
1937         and Dictionary
1938         (Connection::send_with_reply_handlers): return a PendingCall object
1939         (_pending_call_notification): handle the case when an error is returned 
1940         without an error message in the body
1941         (MessageIter::get_boolean): return True or False instead of an integer
1942         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
1943         and add checks for objects with embeded signatures or types (Array, 
1944         Variant and Dictionary)
1945         (MessageIter::append_byte): handle case when the value is a dbus.Byte
1946         (MessageIter::append_dict): handle embeded types or signatures
1947         (MessageIter::append_array): handle embeded types or signatures
1948         (MessageIter::append_variant): new method
1949         
1950         * python/proxies.py:
1951         (DeferedMethod): New. Dummy executable object used when queuing calls 
1952         blocking on introspection data
1953         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
1954         or shorter timeouts for method calls
1955         (ProxyObject): Add first pass at an introspection state machine
1956         (ProxyObject::__init__): Add introspect keyword for turing off an on 
1957         introspection. 
1958         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
1959         the usual mechanisms for sending messages.  This is to avoid a deadlock
1960         where the Intospect call would be queued waiting for the Introspect 
1961         call to finish ;-)
1962         (ProxyObject::_introspect_reply_handler): New.  This method is called 
1963         when introspection returns with no error
1964         (ProxyObject::_introspect_error_handler): New.  This method is called 
1965         when introspection encounters an error
1966         (ProxyObject::__getattr__): Code to handle different introspection 
1967         states.  Queue async calls or block blocking calls if we are 
1968         introspecting.  Pass through as normal if we are not or are done with 
1969         introspecting.
1970         
1971         * python/service.py: Import signal and method from decorators.py
1972
1973         * python/types.py: Add Variant type
1974
1975 2005-08-16  Colin Walters  <walters@verbum.org>
1976
1977         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1978         DBusError message is NULL.
1979
1980 2005-08-09  Havoc Pennington  <hp@redhat.com>
1981
1982         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1983         malloc'd copy of the name parameter
1984
1985 2005-08-09  Havoc Pennington  <hp@redhat.com>
1986
1987         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1988         warning if the reply serial is set to 0
1989
1990 2005-08-04  Colin Walters  <walters@verbum.org>
1991
1992         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1993         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1994         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1995         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1996         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1997         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1998         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1999         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2000         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2001         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2002         
2003         Prefix name with _ to ensure they're not exported.  All callers
2004         updated.
2005
2006         * glib/dbus-gvalue.c (typecode_to_gtype)
2007         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2008         (signature_iter_to_g_type_dict)
2009         (signature_iter_to_g_type_array)
2010         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2011         (dbus_gtypes_from_arg_signature):
2012         Move to dbus-gsignature.c.
2013
2014         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2015         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2016         (dbus_binding_tool_output_glib_client): Ditto.
2017
2018         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2019         and dbus-gsignature.h
2020
2021         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2022         unused variable.
2023
2024 2005-08-03  Colin Walters  <walters@verbum.org>
2025
2026         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2027         catch any incompatible changes accidentally made.
2028
2029 2005-08-03  Havoc Pennington  <hp@redhat.com>
2030
2031         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2032         typo, from Julien Puydt
2033
2034         * bus/connection.c (bus_connection_disconnected): we were always
2035         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2036
2037 2005-08-01  Colin Walters  <walters@verbum.org>
2038
2039         Patch from Joe Markus Clarke:   
2040         
2041         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2042         use-after-free.
2043
2044 2005-08-01  Colin Walters  <walters@verbum.org>
2045         
2046         Patch from Joe Markus Clarke:   
2047         
2048         * tools/dbus-send.c (main): 
2049         
2050         Don't use C99 style initializers (bug #3933).
2051         
2052 2005-08-01  Colin Walters  <walters@verbum.org>
2053
2054         Patch from Joe Markus Clarke:   
2055
2056         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2057         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2058         * glib/dbus-gobject.c (write_interface):
2059
2060         Don't use C99 style initializers (bug #3933).
2061
2062 2005-07-31  Havoc Pennington  <hp@redhat.com>
2063
2064         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2065         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2066
2067 2005-07-30  Havoc Pennington  <hp@redhat.com>
2068
2069         * fix a bunch of Doxygen warnings and mistakes
2070
2071 2005-07-30  Havoc Pennington  <hp@redhat.com>
2072
2073         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2074         DBUS_BUILD_TESTS since it's now used in production code
2075
2076 2005-07-29  Havoc Pennington  <hp@redhat.com>
2077
2078         * test/glib/test-profile.c (write_junk): initialize the junk
2079         buffer so valgrind doesn't have a breakdown
2080
2081 2005-07-29  Havoc Pennington  <hp@redhat.com>
2082
2083         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2084         (match_rule_matches): remove unused arg
2085         (test_matching): add tests for match_rule_matches()
2086
2087         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2088         do arg0='foo' arg5='bar' in the match rules
2089         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2090
2091         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2092
2093 2005-07-29  Ross Burton  <ross@openedhand.com>
2094
2095         * dbus/dbus-connection.c:
2096         Don't create a DBusCondVar which is never used.
2097
2098 2005-07-27  Ross Burton  <ross@openedhand.com>
2099
2100         * dbus/dbus-message.c:
2101         Reduce the size of the maximum cached message to 10K.
2102
2103 2005-07-25  Ross Burton  <ross@openedhand.com>
2104
2105         * glib/dbus-gproxy.c:
2106         Remove matches when all proxies are unregistered.
2107
2108 2005-07-24  Colin Walters  <walters@verbum.org>
2109
2110         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2111         typedata; recursive arrays won't have it.
2112
2113         * test/glib/test-dbus-glib.c:
2114         * test/glib/test-service-glib.c:
2115         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2116         
2117 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2118
2119         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2120         proxies.py, service.py: Cleanup of code after running it through the
2121         pyflakes code checker mostly dealing with undefined names.  
2122         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2123
2124 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2125
2126         * NEWS: Update to 0.35.2
2127
2128 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2129
2130         * python/_dbus.py: Remove import of the dbus.services
2131         module as it no longer exists (patch from Dimitur Kirov)
2132
2133         * python/service.py (Object::__init__): Fixed typo
2134         s/name/bus_name (patch from Dimitur Kirov)
2135
2136         * python/examples/example-signal-emitter.py: import dbus.glib
2137         to get the main loop and use glib mainloop instead of gtk so
2138         X doesn't have to be running.
2139
2140         * python/examples/example-signal-recipient.py: import dbus.glib
2141         to get the main loop and use glib mainloop instead of gtk so
2142         X doesn't have to be running. Import the decorators module
2143         directly.
2144
2145         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2146         didn't pick up on but are needed to build
2147
2148         * configure.in: upped version to 0.35.2
2149
2150         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2151         added Colin Walters' SELinux API rename patch from head 
2152         s/unix sercurity context/selinux security context/
2153
2154 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2155
2156         * python/Makefile.am: dbus_binding.pxd.in should be included 
2157         in EXTRA_DIST not dbus_binding.pxd
2158         fix up $(srcdir) hopefully for the last time
2159
2160         * NEWS: Update to 0.35.1
2161
2162 2005-07-16  Colin Walters  <walters@verbum.org>
2163
2164         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2165         from bus_driver_handle_get_connection_unix_security_context.  Update for
2166         error usage.
2167         (message_handlers): Update for renames.
2168
2169         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2170         _dbus_string_init failure correctly.
2171         (bus_selinux_append_context): Convert SID to context.  Append it
2172         as a byte array.
2173         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2174         hasn't been called.
2175
2176         * bus/selinux.h: Update prototype.
2177
2178         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2179         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2180
2181 2005-07-15  Colin Walters  <walters@verbum.org>
2182
2183         * doc/TODO: Add note about convenience wrappers.
2184
2185 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2186
2187         * NEWS: Update to 0.35
2188
2189 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2190
2191         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2192         so distcheck doesn't fail
2193
2194         * glib/examples/Makefile.am: Add example-service.xml and 
2195         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2196
2197         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2198         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2199
2200         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2201         compiler looks in the right places during distcheck
2202
2203 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2204
2205         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2206         to fail
2207
2208 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2209
2210         * python/examples/example-service.py,
2211         python/examples/example-signal-emitter.py: Fixed up examples
2212         for API changes
2213
2214 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2215
2216         * python/__init__.py: Upped to version (0,42,0) because of
2217         the API change
2218
2219 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2220
2221         * ChangeLog: fix date in last entry
2222
2223         * configure.in, bus/system.conf.in: add the ability to configure 
2224         the system bus user at compiletime with the --with-dbus-user flag
2225         (patch from Kristof Vansant)
2226
2227 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2228
2229         * bus/dispatch.c, test/test-service.c: Add testcase
2230         for sending messages to oneself (TODO item).
2231
2232         * python/service.py (class Object): Swap ordering of bus_name 
2233         and object_path parameters to better support inheritance.
2234
2235         * doc/dbus-tutorial.xml: change Python docs to reflect change
2236         in parameter ordering and fix the inheritance section.
2237
2238         * doc/TODO: remove sending message to oneself TODO item
2239
2240 2005-07-15  Ross Burton  <ross@openedhand.com>
2241
2242         * glib/dbus-gproxy.c:
2243         Fix a leak when calling methods via the proxy.
2244
2245 2005-07-15  Colin Walters  <walters@verbum.org>
2246
2247         * bus/selinux.c (bus_selinux_append_context): Wrap in
2248         HAVE_SELINUX.
2249
2250 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2251
2252         * python/_dbus.py (Bus::remove_signal_receiver):
2253         don't add a callback to the match if none has been passed in
2254         
2255         * python/matchrules.py (SignalMatchTree::remove): if the rule
2256         being matched does not have a callback treat it as a wildcard
2257         fix matching logic
2258
2259         * doc/dbus-tutorial.xml: Add Python tutorial
2260
2261 2005-07-14  Colin Walters  <walters@verbum.org>
2262
2263         * bus/driver.c
2264         (bus_driver_handle_get_connection_unix_security_context): New function.
2265         (message_handlers): Add.
2266
2267         * bus/selinux.c (bus_selinux_append_context): New function; appends
2268         security context to message.
2269
2270         * bus/selinux.h: Prototype.
2271
2272         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2273
2274 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2275
2276         * bus/activation.c: clean up all tabs to be 8 spaces 
2277         (bus_activation_activate_service): make sure we clean up
2278         if activation fails
2279
2280         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2281         (check_shell_fail_service_auto_start): New function
2282         tests to make sure we get fail properly when trying to auto start a service
2283         with a faulty command line
2284         (check_shell_service_success_auto_start): New function tests to make sure
2285         auto started services get the arguments on the command line
2286
2287         * test/test-shell-service.c: Added service for testing auto-starting with 
2288         command line arguments
2289
2290         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2291         test/data/valid-service-files/debug-shell-echo-success.service.in:
2292         Added service files for testing auto-starting with command line arguments
2293
2294         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2295
2296 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2297
2298         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2299         
2300         * dbus/Makefile.am: added new files to build.
2301
2302         * bus/activation.c (bus_activation_activate_service): support
2303         activation commands with parameters.
2304
2305         * test/shell-test.c: added test program for the shell parsing
2306         code.
2307
2308 2005-07-13  David Zeuthen  <davidz@redhat.com>
2309
2310         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2311         64 bit signed and unsigned parameters
2312
2313 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2314
2315         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2316
2317         * python/service.py (class Name): renamed BusName to make it clearer
2318         what the object is for (a name on the bus)
2319
2320         * python/examples/example-service.py,
2321         python/examples/example-signal-emitter.py: change the Name object to
2322         BusName
2323
2324 2005-07-12  Colin Walters  <walters@verbum.org>
2325
2326         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2327
2328         * tools/dbus-launch.c: Include sys/select.h.
2329
2330 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2331         * python/dbus_bindings.pyx.in: removed
2332
2333         * python/dbus_bindings.pyx: Added.
2334         - Fixed some memleaks (patch from 
2335         Sean Meiners <sean.meiners@linspireinc.com>)
2336         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2337         own pxd file (Pyrex definition)
2338         - Broke out glib dependancies into its own pyx module
2339         
2340         * python/dbus_bindings.pdx: Added.
2341         - Defines C class Connection for exporting to other modules
2342
2343         * python/dbus_glib_bindings.pyx: Added.
2344         - New module to handle lowlevel dbus-glib mainloop integration
2345
2346         * python/glib.py: Added.
2347         - Registers the glib mainloop when you import this module
2348
2349         * python/services.py: Removed (renamed to service.py)
2350         
2351         * python/service.py: Added.
2352         - (class Server): renamed Name
2353
2354         * python/__init__.py: Bump ro version (0,41,0)
2355         -don't import the decorators or service module
2356         by default.  These now reside in the dbus.service namespace
2357
2358         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2359         setup function on creation 
2360
2361         * python/examples/example-service.py,
2362         python/examples/example-signal-emitter.py: update examples
2363
2364         * python/examples/gconf-proxy-service.py,
2365         python/examples/gconf-proxy-service2.py: TODO fix these up
2366
2367         * doc/TODO: Addition
2368         - Added a Python Bindings 1.0 section
2369         - added "Add match on args or match on details to match rules"
2370
2371
2372 2005-07-12  Colin Walters  <walters@verbum.org>
2373
2374         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2375         (statemachine-glue.h): 
2376         * glib/examples/Makefile.am (example-service-glue.h) 
2377         (example-signal-emitter-glue.h): 
2378         * glib/Makefile.am (dbus-glib-error-switch.h): 
2379         Add libtool --mode=execute so we use the built library instead
2380         of any installed one.
2381
2382 2005-07-11  Colin Walters  <walters@verbum.org>
2383
2384         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2385         (dbus_g_value_types_init): Remove assertion.
2386         (dbus_g_value_get_g_type, dbus_g_value_open)
2387         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2388         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2389         functions related to DBusGValue.  Now we marshal/demarshal
2390         structures as GValueArray.
2391         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2392         structures.
2393         (signature_iter_to_g_type_array): Don't call
2394         signature_iter_to_g_type_struct.
2395         (signature_iter_to_g_type_struct): Delete.
2396         (dbus_gvalue_to_signature): Delete.
2397         (dbus_gvalue_to_signature): New function with same name as other
2398         one; we can convert structures to signatures.
2399         (demarshal_valuearray): New function.
2400         (get_type_demarshaller): Use it.
2401         (demarshal_recurse): Delete.
2402         (marshal_proxy): New function.
2403         (marshal_map): Warn if we can't determine signature from type.
2404         (marshal_collection_ptrarray): Ditto.
2405         (marshal_collection_array): Ditto.
2406         (get_type_marshaller): Use marshal_valuearray.
2407         (marshal_recurse): Delete.
2408         (_dbus_gvalue_test): Add some tests.
2409
2410         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2411         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2412         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2413         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2414         (dbus_g_value_free): Remove prototypes.
2415
2416         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2417         G_TYPE_VALUE_ARRAY.
2418
2419         * glib/examples/example-service.c:
2420         * glib/examples/example-client.c: Implement GetTuple.
2421
2422         * test/glib/test-dbus-glib.c:
2423         * test/glib/test-service-glib.c:
2424         * test/glib/test-service-glib.xml: Add structure tests.
2425
2426 2005-07-10  Colin Walters  <walters@verbum.org>
2427
2428         * doc/TODO: Knock off some GLib items with this patch.
2429
2430         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2431         (_dbus_gvalue_signals_error): New functions.
2432
2433         * glib/dbus-gvalue-utils.h: Prototype them.
2434
2435         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2436         and change to not output const/retval flags for input args.  All
2437         callers updated.
2438         (invoke_object_method): Refactor to handle return values.  Add
2439         some more comments in various places.  Remove debug g_print.
2440
2441         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2442
2443         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2444         Handle G_TYPE_NONE.
2445         (compute_gsignature): New function; refactored from code from
2446         compute_marshaller and compute_marshaller_name.  Enhance to
2447         handle return values and async ops more cleanly.  Update for
2448         async ops returning NONE instead of BOOLEAN.
2449         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2450         and output appropriate string.
2451         (generate_glue): Handle return value annotation.  Also don't dump
2452         constness flag for input arguments.
2453
2454         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2455         files shared between installed library and utilities.
2456         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2457         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2458         binding tool can access gtype utility functions.
2459
2460         * test/glib/test-service-glib.c: 
2461         * test/glib/test-service-glib.xml: 
2462         * test/glib/test-dbus-glib.c: Add some tests for return values.
2463
2464 2005-07-09  Colin Walters  <walters@verbum.org>
2465
2466         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2467         argument if available, not method.
2468
2469         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2470         (invoke_object_method): First, remove some redundant
2471         GValues (object_value, error_value) in favor of working on
2472         array directly.  Second, rework constness to be less buggy.
2473         Now we iterate directly over the argument metadata instead
2474         of parallel iterating over output signature and metadata.
2475
2476         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2477
2478         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2479         annotation on input args.
2480         
2481 2005-07-09  Colin Walters  <walters@verbum.org>
2482
2483         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2484         Define.
2485
2486         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2487         annotation.
2488
2489         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2490         (method_dir_signature_from_object_info): Handle arg_iterate change.
2491         (write_interface): Ditto.
2492         (lookup_object_info): Don't barf if format_version is > 0.
2493         (invoke_object_method): Handle arg constness.
2494
2495         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2496         (arg_info_new): Create.
2497         (arg_info_unref): Destroy.
2498         (arg_info_get_annotations, arg_info_get_annotation) 
2499         (arg_info_add_annotation): New functions.
2500
2501         * glib/dbus-gidl.h: Prototype them.
2502
2503         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2504         args, disallow them in properties.
2505         (parse_annotation): Handle arg annotations.
2506
2507         * test/glib/test-service-glib.xml: 
2508         * test/glib/test-service-glib.c: Update to make some methods
2509         const.
2510
2511 2005-07-08  Colin Walters  <walters@verbum.org>
2512
2513         * test/glib/test-service-glib.xml: 
2514         * test/glib/test-service-glib.c:
2515         * test/glib/test-dbus-glib.c: Test a{sv}.
2516
2517         * glib/examples/statemachine/statemachine.c:
2518         * glib/examples/statemachine/statemachine-server.c:
2519         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2520         add progress bar, etc.
2521
2522         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2523         needed anymore due to generic array/map marshalling.
2524         (dbus_g_value_types_init): Don't register basic arrays or the
2525         string/string hash.
2526         (dbus_gtype_from_signature_iter): Don't try to recurse into
2527         variants.
2528         (dbus_gtype_to_signature): Check collection/map before type
2529         metadata.
2530         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2531         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2532         generic map creation/append functions instead of hash table
2533         specifically.
2534         (get_type_demarshaller): Handle maps.
2535         (demarshal_collection): Dispatch on collection type to either
2536         demarshal_collection_ptrarray or demarshal_collection_array.
2537         (get_type_marshaller): Handle maps.
2538         (marshal_collection): Dispatch collection type to either
2539         marshal_collection_ptrarray or marshal_collection_array.
2540         (_dbus_gvalue_test): New test.
2541
2542         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2543         (hash_free_from_gtype): Use it to free GValues.
2544         (hashtable_append): New function.
2545         (ptrarray_append): Fix prototype.
2546         (slist_append): Ditto.
2547         (_dbus_gvalue_utils_test): Extend tests.
2548
2549         * glib/dbus-gtype-specialized.c
2550         (dbus_g_type_specialized_init_append): Renamed from
2551         dbus_g_type_specialized_collection_init_append.  Remove const from
2552         value, since we steal it.
2553         (dbus_g_type_specialized_map_append): New function.
2554
2555         * glib/dbus-gtype-specialized.h: Update prototypes.
2556         Add DBusGTypeSpecializedMapAppendFunc.
2557
2558         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2559         _dbus_gvalue_test.
2560         
2561         * glib/dbus-gtest.h: Prototype it.
2562
2563 2005-07-08  Ross Burton  <ross@openedhand.com>
2564
2565         * dbus/dbus-glib.h:
2566         Add DBysGAsyncData for the async bindings.
2567
2568         * glib/dbus-binding-tool-glib.c:
2569         Re-enable the async bindings.
2570
2571         * test/glib/test-dbus-glib.c:
2572         Add a test for the generated async bindings.
2573
2574 2005-07-08  Colin Walters  <walters@verbum.org>
2575
2576         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2577         connection concept.
2578         
2579 2005-07-08  Colin Walters  <walters@verbum.org>
2580         
2581         * tools/Makefile.am: Kill of print-introspect in favor of using
2582         dbus-send --print-reply=literal.
2583
2584         * test/glib/test-service-glib.xml: 
2585         * test/glib/test-service-glib.c (my_object_get_objs): New test
2586         for "ao".
2587
2588         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2589         (main): Test GetObjs.
2590
2591         * glib/examples/statemachine/Makefile.am:
2592         * glib/examples/statemachine/sm-marshal.list:
2593         * glib/examples/statemachine/statemachine-client.c:
2594         * glib/examples/statemachine/statemachine-server.c:
2595         * glib/examples/statemachine/statemachine-server.xml:
2596         * glib/examples/statemachine/statemachine.c:
2597         * glib/examples/statemachine/statemachine.h:
2598         * glib/examples/statemachine/statemachine.xml:
2599
2600         New example.
2601
2602         * glib/examples/example-service.c (main): Move invocation
2603         of dbus_g_object_type_install_info earlier, to emphasize it
2604         should only be done once.
2605
2606         * glib/examples/example-signal-emitter.c (main): Ditto.
2607
2608         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2609
2610         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2611         (dbus_gvalue_marshal): Update prototypes.
2612
2613         * glib/dbus-gvalue.c: Update all marshalling functions to take
2614         const GValue instead of GValue.
2615         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2616         types.
2617         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2618         change.
2619         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2620         Return a newly-allocated string.
2621         (demarshal_proxy, demarshal_object_path, demarshal_object)
2622         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2623         we get the wrong types from message.
2624         (get_type_demarshaller): New function, extracted from
2625         dbus_gvalue_demarshal.
2626         (demarshal_collection): New function, demarshals generic
2627         collection.
2628         (dbus_gvalue_demarshal): Just invoke result of
2629         get_type_demarshaller.  Throw error if we don't have one.
2630         (marshal_garray_basic): Abort on OOM.
2631         (get_type_marshaller): New function, extracted from
2632         dbus_gvalue_marshal.
2633         (collection_marshal_iterator, marshal_collection): New functions;
2634         implements generic marshalling for an iteratable specialized
2635         collection.
2636         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2637
2638         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2639         G_TYPE_STRING.
2640         (ptrarray_value_from_gvalue): Ditto.
2641         (ptrarray_append, ptrarray_free): New functions.
2642         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2643         (slist_append, slist_end_append, slist_free): New functions.
2644         (dbus_g_type_specialized_builtins_init): Add append fuctions
2645         for GPtrArray and GSList.  Register GSList.
2646         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2647
2648         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2649         New.
2650         (dbus_g_type_specialized_collection_init_append)
2651         (dbus_g_type_specialized_collection_append)
2652         (dbus_g_type_specialized_collection_end_append): Prototype.
2653         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2654         end_append_func.
2655
2656         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2657         (dbus_g_type_specialized_collection_append) 
2658         (dbus_g_type_specialized_collection_end_append): New functions.
2659         (dbus_g_type_map_value_iterate): Take const GValue.
2660         (dbus_g_type_collection_value_iterate): Ditto.
2661
2662         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2663         _dbus_gvalue_utils_test.
2664         
2665         * glib/dbus-gtest.h: Prototype it.
2666
2667         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2668         using uninitialized owner_list.
2669         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2670         public API.
2671         (dbus_g_proxy_end_call_internal): Update to use error set
2672         from dbus_gvalue_demarshal instead of setting it here.
2673         (dbus_g_proxy_begin_call): Move return_if_fail here.
2674
2675         * glib/dbus-gobject.c (write_interface): Update for
2676         dbus_gtype_to_signature returning new string.
2677
2678         * configure.in: Add glib/examples/statemachine.
2679
2680 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2681
2682         * configure.in: Add a configure option, --with-console-auth-dir
2683         
2684         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2685         new setting.  Patch from Kay Sievers.
2686
2687 2005-07-06  Colin Walters  <walters@verbum.org>
2688
2689         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2690         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2691         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2692         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2693         Delete in favor of dbus_g_proxy_begin_call and
2694         dbus_g_proxy_cancel_call.
2695         (DBusGProxyCall, DBusGProxyCallNotify): New.
2696         (dbus_g_proxy_begin_call): Change prototype to take callback, user
2697         data, and destroy function.  This replaces
2698         dbus_g_pending_call_set_notify.
2699         (dbus_g_proxy_cancel_call): Prototype.
2700         (DBusGAsyncData): Delete, shouldn't be needed anymore.
2701
2702         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2703         pending_calls map.
2704         (struct _DBusGProxyManager): Add bus_proxy member, which is an
2705         internal proxy for calls to the bus. Remove
2706         pending_nameowner_calls, now the internal proxy keeps track.
2707         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2708         pending_nameowner_calls.
2709         (got_name_owner_cb): Update prototype, and use
2710         dbus_g_proxy_end_call.
2711         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2712         (dbus_g_proxy_manager_register): Delete directly libdbus code in
2713         favor of using internal proxy.
2714         (dbus_g_proxy_manager_unregister): Update to use
2715         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2716         (dbus_g_proxy_init): Initialize pending calls map.
2717         (dbus_g_proxy_constructor): New.
2718         (dbus_g_proxy_class_init): Add get/set property functions,
2719         constructor, and add NAME, PATH, and INTERFACE properties.
2720         (cancel_pending_call): New function.
2721         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2722         cancel them.
2723         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2724         (GPendingNotifyClosure): New structure.
2725         (d_pending_call_notify, d_pending_call_free): Moved here from
2726         dbus-glib.c.
2727         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2728         ordering.
2729         (manager_begin_bus_call): New internal function for talking to
2730         internal bus proxy.
2731         (dbus_g_proxy_new): Construct object using GObjet properties.
2732         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2733         Create closure of same, and insert call into map of pending calls.
2734         (dbus_g_proxy_end_call_internal): Take call id instead of pending
2735         call.  Look up pending call in current set.  Remove it when we've
2736         completed.
2737         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2738         (dbus_g_proxy_begin_call): Change API to take callback, user data,
2739         and destroy function directly.
2740         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2741         (dbus_g_proxy_call): Invoke with NULL callback.
2742         (dbus_g_proxy_cancel_call): New function, replaces
2743         dbus_g_pending_call_cancel.
2744
2745         * glib/dbus-gparser.c (validate_signature): Fix call to
2746         dbus_set_g_error.
2747
2748         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2749         New quark for attaching metadata to GType.
2750         (info_hash): Delete.
2751         (lookup_object_info): Look up using quark.
2752         (dbus_g_object_type_install_info): Check that a type is classed,
2753         not that it's an object.  Also just install type data using quark
2754         instead of using global hash.
2755
2756         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
2757         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2758         (GPendingNotifyClosure): Delete.
2759         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2760         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2761
2762         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2763         client method generation until we can fix it...
2764         
2765         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2766         (load_from_service_thread_func): Ditto.
2767
2768         * tools/dbus-names-model.c (struct NamesModel): Hold
2769         DBusGProxyCall.
2770         (have_names_notify): Update prototype, use
2771         dbus_g_proxy_cancel_call.
2772         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2773
2774         * tools/dbus-monitor.c (filter_func): Update for print_message
2775         API change.
2776
2777         * test/glib/test-dbus-glib.c: Add more tests for async
2778         invocations.  Update many begin_call/end_call pairs to just use
2779         dbus_g_proxy_call.
2780
2781         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
2782         allows us to dump print-introspect.c.
2783
2784         * tools/dbus-print-message.h (print_message): Add literal argument
2785         to print_message which is intended to allow printing arguments without
2786         metadata like "string=".
2787
2788         * tools/dbus-print-message.c (print_iter): Add literal argument.
2789         (print_message): Allow printing string messages literally.
2790
2791 2005-07-05  Colin Walters  <walters@verbum.org>
2792
2793         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2794         Remove value refcount leak, original patch from Jorn Baayen
2795         <jorn@openedhand.com>.  Also remove useless extra value in favor
2796         of prepending to value array directly.
2797
2798 2005-07-02  Colin Walters  <walters@verbum.org>
2799
2800         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2801
2802 2005-07-01  Colin Walters  <walters@verbum.org>
2803
2804         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2805         
2806         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2807         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2808         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2809         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2810
2811 2005-06-30  Colin Walters  <walters@verbum.org>
2812
2813         * test/glib/test-dbus-glib.c:
2814         * test/glib/test-service-glib.c:
2815         * test/glib/test-service-glib.xml: Update tests for new error
2816         setting bits, also add async tests (patch from Ross Burton).
2817
2818         * test/glib/Makefile.am (test_service_glib_LDADD): Add
2819         DBUS_GLIB_THREADS_LIBS.
2820
2821         * glib/dbus-gproxy.c (get_name_owner)
2822         (dbus_g_pending_call_end_valist): Ditto.
2823
2824         * glib/dbus-gobject.c (error_metadata): New mapping from GError
2825         domain (GQuark) to DBusGErrorInfo.  
2826         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2827         quark in error_metadata.  Take message interface as default
2828         error message interface.
2829         (gerror_to_dbus_error_message): Pass message interface.
2830         (dbus_set_g_error): Resurrected.
2831         (dbus_g_error_info_free): New function.
2832         (dbus_g_object_type_install_info): Use g_type_class_ref instead
2833         of _peek to actually create the object class if it hasn't been
2834         created yet.
2835         (dbus_g_error_domain_register): New function.
2836
2837         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2838
2839         * glib/dbus-gparser.c (validate_signature): Ditto.
2840
2841         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2842         (dbus_g_error_domain_register): Prototype.
2843
2844         * glib/dbus-glib.c (dbus_g_error_set): Delete.
2845         Update tests.
2846
2847 2005-06-29  Colin Walters  <walters@verbum.org>
2848
2849         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
2850         DBUS_TYPE_G_OBJECT_PATH.
2851
2852         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2853         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2854         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
2855         (dbus_g_object_path_get_g_type): New function.
2856         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2857         to DBUS_TYPE_G_OBJECT_PATH by default.
2858         (demarshal_proxy): Remove unused name variable.
2859         (demarshal_object_path, marshal_object_path): New functions.
2860         (demarshal_proxy_array, marshal_proxy_array): Delete.
2861         
2862         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2863         DBUS_TYPE_G_OBJECT_PATH to char *.
2864         (dbus_g_type_get_lookup_function): Map builtin
2865         DBUS_TYPE_G_OBJECT_PATH.
2866
2867         * test/glib/test-dbus-glib.c
2868         * test/glib/test-service-glib.c (my_object_objpath): 
2869         Adapt tests to new object path marshalling.
2870
2871 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
2872
2873         * configure.in: force check for Python >= 2.4
2874
2875 2005-06-29  Colin Walters  <walters@verbum.org>
2876         
2877         Patch from Ross Burton <ross@openedhand.com>
2878         
2879         * glib/dbus-gobject.c (invoke_object_method): Unset object
2880         value in all cases, not only in async case.
2881
2882 2005-06-29  Colin Walters  <walters@verbum.org>
2883
2884         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2885         name_call for keeping track of any outgoing GetNameOwner call.
2886         Also add for_owner and associated.
2887         (struct _DBusGProxyManager): Add owner_names, which is hash table
2888         that maps a base name to a list of names it owns (that we're
2889         interested in).  Add pending_nameowner_calls which is a list of
2890         all outstanding GetNameOwner; avoids us having to iterate over
2891         every proxy.  Add unassociated_proxies which keeps track of name
2892         proxies with no associated name owner.
2893         (dbus_g_proxy_manager_unref): Destroy owner_names.
2894         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2895         name refcounts.
2896         (find_name_in_info, name_owner_foreach)
2897         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2898         (dbus_g_proxy_manager_monitor_name_owner)
2899         (dbus_g_proxy_manager_unmonitor_name_owner)
2900         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2901         New functions; they manipulate the owner_names mapping.
2902         (got_name_owner_cb): New function.
2903         (get_name_owner): New function, extracted from
2904         dbus_g_proxy_new_for_name_owner.
2905         (dbus_g_proxy_manager_register): For now we need to keep track of
2906         all NameOwnerChanged.  Also if the proxy is for a name, if we
2907         don't already know the name owner, queue a new GetNameOwner
2908         request and add it to our list of unassociated proxies.  Otherwise
2909         inc the refcount.
2910         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2911         cancel any pending GetNameOwner call, etc.
2912         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
2913         the owner_names mapping to look up the current names for the
2914         signal source, and dispatch to any proxies for that name.
2915         (dbus_g_proxy_new): Initialize new members.
2916         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2917         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2918         (dbus_g_pending_call_end_valist): New function, extracted from
2919         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
2920         but want to use the GLib infrastructure.  Also note how many
2921         arguments in reply were over.
2922         (dbus_g_pending_call_end): New function, just call
2923         dbus_g_pending_call_end_valist.
2924         (dbus_g_proxy_end_call_internal): Just call
2925         dbus_g_pending_call_end_valist.
2926
2927         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2928         of builtin marshaller for STRING_STRING_STRING.
2929
2930         * test/glib/test-dbus-glib.c: 
2931         * test/glib/test-service-glib.c:
2932         * test/glib/test-service-glib.xml:
2933         Extend tests to cover name proxies, destruction of owner proxies,
2934         etc.
2935         
2936         * glib/examples/example-signal-recipient.c
2937         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2938         
2939         * tools/dbus-send.c (main): Print D-BUS error name in addition
2940         to message.
2941
2942 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
2943
2944         * python/dbus_bindings.pyx.in (cunregister_function_handler,
2945         cmessage_function_handler): Patch from 
2946         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2947         by using the Py_GILState_Ensure/Release to synchronize with the
2948         python runtime.
2949         
2950 2005-06-28  Ray Strode  <rstrode@redhat.com>
2951
2952         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2953         babysitter helper process on last unref, bug #2813.
2954
2955 2005-06-27  Colin Walters  <walters@verbum.org>
2956
2957         * test/glib/test-dbus-glib.c: 
2958         * test/glib/test-service-glib.c:
2959         * test/glib/test-service-glib.xml:
2960         Test hash table signal emitting.
2961
2962         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2963         types to their fundamental basis types, since this is what
2964         marshallers operate on.  Also add an entry for VOID__BOXED.
2965         (dbus_g_object_register_marshaller_array): Convert to fundamental.
2966
2967 2005-06-26  Havoc Pennington  <hp@redhat.com>
2968
2969         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2970         from Don Park
2971
2972 2005-06-26  Colin Walters  <walters@verbum.org>
2973
2974         * glib/dbus-glib.c (dbus_set_g_error): Delete.
2975         (dbus_g_error_set): New public function from its ashes; used by
2976         both service-side method implementation and GLib bindings
2977         internals.
2978         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2979         (_dbus_glib_test): Add some tests.
2980
2981         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2982
2983         * test/glib/test-service-glib.c (my_object_throw_error): Use
2984         dbus_g_error_set.
2985
2986         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2987         errors thrown by dbus_g_error_set.
2988
2989         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2990
2991         * glib/dbus-gparser.c (validate_signature): Ditto.
2992
2993         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
2994         (dbus_g_proxy_end_call_internal): Ditto.
2995
2996         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2997         converts DBUS_ERROR_x to DBUS_GERROR_x.
2998         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2999
3000         * doc/TODO: Remove error TODO.
3001
3002         * doc/dbus-tutorial.xml: Update with documentation about error
3003         handling.
3004
3005         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3006         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3007         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3008
3009 2005-06-22  Colin Walters  <walters@verbum.org>
3010         
3011         Patch from Ross Burton <ross@openedhand.com>
3012
3013         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3014
3015 2005-06-20  Colin Walters  <walters@verbum.org>
3016
3017         * configure.in: Add glib/examples.
3018
3019         * glib/Makefile.am: Add examples/
3020
3021         * glib/examples/.cvsignore
3022         * glib/examples/Makefile.am
3023         * glib/examples/example-client.c
3024         * glib/examples/example-service.c
3025         * glib/examples/example-service.xml
3026         * glib/examples/example-signal-emitter.c
3027         * glib/examples/example-signal-emitter.xml
3028         * glib/examples/example-signal-recipient.c:
3029         New files; GLib binding examples, ported from
3030         python/examples.
3031
3032 2005-06-20  Colin Walters  <walters@verbum.org>
3033
3034         * dbus/dbus-glib.h: 
3035         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3036         dbus_g_proxy_call.
3037
3038         * glib/dbus-binding-tool-glib.c: 
3039         * doc/dbus-tutorial.xml: 
3040         * test/glib/test-dbus-glib.c: Update for rename.
3041         
3042 2005-06-20  Colin Walters  <walters@verbum.org>
3043
3044         Patch suggested by Ross Burton <ross@openedhand.com>
3045
3046         * glib/dbus-gobject.c (export_signals): Free signal name.
3047         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3048         memory leak.  Add a bit of documentation.
3049         (dbus_g_method_return_error): Free context, and note we do
3050         so.
3051
3052 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3053
3054         * dbus/dbus-glib.h:
3055         * glib/dbus-gobject.c:
3056         * glib/dbus-gproxy.c:
3057         * glib/dbus-gvalue.c: Predeclare structs as 
3058         typedef struct _Something Something instead of 
3059         typedef struct Something Something, so we can 
3060         redeclare the prototypes. Other GNOME libraries 
3061         do this already.
3062
3063 2005-06-17  Colin Walters  <walters@verbum.org>
3064
3065         * tools/dbus-names-model.c (have_names_notify): Fix call
3066         to dbus_g_proxy_end_call.
3067         
3068 2005-06-17  Colin Walters  <walters@verbum.org>
3069
3070         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3071         spew warnings if we get malformed remote signals.
3072
3073         * glib/dbus-gobject.c (propsig_iterate): New function.
3074         (lookup_object_info): New function, extracted from
3075         lookup_object_and_method.
3076         (introspect_properties, introspect_signals): Delete; these
3077         are merged into write_interface.
3078         (write_interface): Write out signals and properties here;
3079         dump the org.gtk.object stuff and use the interface given
3080         in the introspection data blob.  Also fix up property XML.
3081         (lookup_values): New function.
3082         (introspect_interfaces): Gather a mapping from interface to a
3083         list of its methods, signals, and properties, then write out
3084         each interface.
3085         (lookup_object_and_method): Use lookup_object_info.
3086         (struct DBusGSignalClosure): Add interface.
3087         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3088         we can just use the constant data.
3089         (dbus_g_signal_closure_finalize): Don't free signal name.
3090         (signal_emitter_marshaller): Use interface from signal closure.
3091         (export_signals): Only export signals mentioned in introspection
3092         blob.
3093         (dbus_g_connection_register_g_object): Warn if we have no
3094         introspection data for an object.
3095         (funcsig_equal): Remove unused variable.
3096         (dbus_g_object_register_marshaller): Take varargs instead of
3097         list.
3098         (dbus_g_object_register_marshaller_array): New function,
3099         extracted from old dbus_g_object_register_marshaller.
3100
3101         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3102         signals and property data.
3103         (write_quoted_string): New function, extracted from generate_glue.
3104         (generate_glue): Write signals and properties to introspection
3105         blob.
3106
3107         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3108         exported_signals and exported_properties.
3109         (dbus_g_object_register_marshaller): Update prototype.
3110         (dbus_g_object_register_marshaller_array): Prototype.
3111         
3112         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3113
3114         * test/glib/test-service-glib.c: Add new test signals and method
3115         to emit them.
3116
3117         * test/glib/test-service-glib.xml: Add some test signals.
3118
3119         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3120         and my-object-marshal.h
3121         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3122         my-object-marshal.c.
3123         (my-object-marshal.c, my-object-marshal.h): Implement.
3124
3125         * test/glib/.cvsignore: Update.
3126
3127         * doc/TODO: Remove two GLib TODO items fixed by this
3128         patch.
3129
3130 2005-06-16  Colin Walters  <walters@verbum.org>
3131
3132         * doc/TODO: Update for GLib bindings.
3133         
3134 2005-06-16  Colin Walters  <walters@verbum.org>
3135
3136         * glib/dbus-binding-tool-glib.c:
3137         * glib/dbus-gobject.c:
3138         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3139         from Ross Burton, for his GLib bindings work.
3140
3141 2005-06-16  Colin Walters  <walters@verbum.org>
3142
3143         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3144         to iterate instead of walking to G_TYPE_INVALID.
3145
3146         Patch based on a patch from Ryan Gammon.
3147
3148 2005-06-16  Colin Walters  <walters@verbum.org>
3149
3150         * bus/bus.c (bus_context_new): Set parser to NULL
3151         after we unref it (Patch from Chris Boscolo, #2174).
3152         
3153 2005-06-16  Colin Walters  <walters@verbum.org>
3154
3155         * python/dbus_bindings.pyx.in: Import size_t,
3156         __int64_t, __uint64_t, and __signed.
3157
3158         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3159         Define cmsg struct, output it.
3160         (_dbus_read_credentials_unix_socket):
3161         Use cmsg struct.
3162         
3163         Patch from Joe Markus Clarke for FreeBSD support.
3164         
3165 2005-06-16  Colin Walters  <walters@verbum.org>
3166
3167         * tools/dbus-send.c (append_array): Use strtok.
3168         (append_dict): New function.
3169         (type_from_name): New function, extracted from main.
3170         (main): Handle sending dicts.
3171
3172         * tools/dbus-print-message.c (print_iter): Print dict
3173         entries.
3174         
3175 2005-06-16  Colin Walters  <walters@verbum.org>
3176
3177         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3178         values as the empty string (#2948).
3179         
3180 2005-06-16  Colin Walters  <walters@verbum.org>
3181
3182         * dbus/Makefile.am:
3183         * mono/doc/Makefile.am:
3184         * test/glib/Makefile.am:
3185
3186         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3187
3188 2005-06-16  Colin Walters  <walters@verbum.org>
3189
3190         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3191         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3192
3193         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3194         Increment pointer after swapping fixed array.  Add assertion
3195         for array length.
3196                 
3197 2005-06-15  Colin Walters  <walters@verbum.org>
3198
3199         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3200         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3201         
3202 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3203
3204         * NEWS: Update to 0.34
3205
3206 2005-06-15  David Zeuthen  <davidz@redhat.com>
3207
3208         * configure.in (LT_CURRENT): Revert back to 1 as the library
3209         hasn't changed and we've certainly not committed to protocol
3210         stability yet.  All this does is to break ABI. See commit note
3211         from hp@redhat.com 2005-05-05 for details.
3212         
3213 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3214
3215         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3216         (_dbus_connection_run_builtin_filters): New method
3217         (dbus_connection_dispatch): Run the builtin filters which in turn
3218         runs the peer filter which handles Ping messages.
3219
3220         * doc/TODO: 
3221          - Ping isn't handled: This patch fixes it
3222          
3223          - Add a test case for the Ping message: added TODO item
3224
3225 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3226
3227         * dbus/dbus-message.c:
3228         (dbus_message_has_path): New method
3229         (dbus_message_has_interface): New method
3230         (dbus_message_has_member): New method
3231
3232         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3233         New method
3234
3235         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3236         the keyring directory is private to the user
3237
3238         * doc/TODO:
3239          - The convenience functions in dbus-bus.h should perhaps have
3240          the signatures that they would have if they were autogenerated
3241          stubs. e.g. the acquire service function. We should also evaluate
3242          which of these functions to include, in light of the fact that
3243          GLib/Qt native stubs will probably also exist.: Punted
3244
3245          - add dbus_message_has_path(), maybe has_member/interface:
3246          fixed in this patch
3247
3248          - in dbus-keyring.c, enforce that the keyring dir is not
3249          world readable/writable: Fixed in this patch
3250
3251 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3252
3253         * dbus/dbus-marshal-validate.h: Added a new validation
3254         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3255         out of memory errors when validating signitures
3256
3257         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3258         in places where we previously used DBUS_VALID and a FALSE return 
3259         value to indicate OOM
3260         
3261         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3262         Use a stack to track the number of elements inside containers.  The 
3263         stack values are then used to validate that dict entries have only two
3264         elements within them.
3265         (validate_body_helper): check the reason for failure when validating
3266         varients
3267         
3268         * dbus/dbus-message.c (load_message): use 
3269         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3270         DBUS_VALID and a FALSE return value to indicate OOM
3271
3272         * doc/TODO: remove "- validate dict entry number of fields" as this
3273         patch fixes it
3274
3275 2005-06-14  David Zeuthen  <davidz@redhat.com>
3276
3277         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3278         watches (if applicable) and add new watches
3279
3280         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3281         (main): Setup SIGIO signal handler if using D_NOTIFY
3282
3283         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3284
3285         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3286         (merge_included): Also merge conf_dirs list
3287         (bus_config_parser_unref): Clear conf_dirs list
3288         (include_dir): Add directory to conf_dirs list
3289         (bus_config_parser_get_conf_dirs): New function
3290
3291         * bus/dir-watch.[ch]: New files
3292
3293         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3294
3295         * configure.in: Add checks for D_NOTIFY on Linux
3296
3297 2005-06-14  Colin Walters  <walters@verbum.org>
3298
3299         * glib/dbus-binding-tool-glib.c:
3300         * glib/dbus-gobject.c:
3301         * glib/dbus-gvalue.c: Fix indentation and brace style.
3302         
3303 2005-06-14  Ross Burton <ross@openedhand.com>.
3304
3305         * glib/dbus-glib.h: Make DBusGMethodInvocation
3306         a private structure.  Rearrange prototypes a bit.
3307         
3308         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3309         documentation for first_arg_type.
3310         
3311         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3312         here, add documentation.  Move dbus_g_method_return
3313         and dbus_g_method_return_error into public API
3314         section.
3315
3316 2005-06-14  Colin Walters  <walters@verbum.org>
3317
3318         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3319         Add missing return statements, noticed by Ross Burton.
3320         
3321 2005-06-13  Ross Burton <ross@openedhand.com>.
3322
3323         * glib/dbus-gobject.c: Handle errors on message
3324         demarshalling by sending error message back.
3325         * glib/dbus-gvalue.c: Initialize return variables.
3326
3327 2005-06-13  Colin Walters  <walters@verbum.org>
3328
3329         * glib/Makefile.am: Fix thinko in last patch.
3330
3331 2005-06-13  Colin Walters  <walters@verbum.org>
3332
3333         * glib/Makefile.am: Move dbus-gtype-specialized.c
3334         and dbus-gtype-specialized.h into a _HEADERS variable,
3335         install them.
3336
3337 2005-06-12  Colin Walters  <walters@verbum.org>
3338
3339         Async signals and various bugfixes and testing by
3340         Ross Burton <ross@openedhand.com>.
3341
3342         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3343         (dbus_gvalue_genmarshal_name_from_type)
3344         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3345         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3346         (dbus_g_value_types_init, dbus_gtype_from_signature)
3347         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3348         (dbus_gtypes_from_arg_signature): New function prototypes.
3349         (dbus_gvalue_demarshal): Take context and error arguments.
3350         (dbus_gvalue_demarshal_variant): New function.
3351         (dbus_gvalue_demarshal_message): New function.
3352         (dbus_gvalue_store): Delete.
3353
3354         * glib/dbus-gvalue.c:
3355
3356         File has been almost entirely rewritten; now we special-case
3357         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3358         hash tables correctly, etc.  Full support for recursive values
3359         is not yet complete.
3360
3361         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3362         argument of signal to G_TYPE_POINTER since we now pass a
3363         structure.
3364         (lookup_g_marshaller): Delete in favor of
3365         _dbus_gobject_lookup_marshaller.
3366         (marshal_dbus_message_to_g_marshaller): Use
3367         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3368         to handle remote signal callbacks.
3369         (dbus_g_proxy_new_from_proxy): New function; creates a new
3370         DBusGProxy by copying an existing one.
3371         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3372         (dbus_g_proxy_get_path): New functions.
3373         (dbus_g_proxy_marshal_args_to_message): New function;
3374         factored out of existing code.
3375         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3376         from a varargs array.
3377         (dbus_g_proxy_begin_call_internal): New function.
3378         (dbus_g_proxy_end_call_internal): New function.
3379         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3380         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3381         after collecting args into value array.
3382         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3383         invoke dbus_g_proxy_end_call_internal.
3384         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3385         end_call_internal.
3386         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3387         types.
3388         (array_free_all): New function.
3389         (dbus_g_proxy_add_signal): Take GTypes.
3390
3391         * glib/dbus-gobject.h:
3392         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3393         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3394         Prototype.
3395
3396         * glib/dbus-gobject.c: Add a global marshal_table hash which
3397         stores mappings from type signatures to marshallers.  Change lots
3398         of invocations of dbus_gtype_to_dbus_type to
3399         dbus_gtype_to_signature.
3400         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3401         (introspect_signals): Fix test for query.return_type.
3402         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3403         (invoke_object_method): Many changes.  Handle asynchronous
3404         invocations.  Convert arguments with
3405         dbus_gvalue_demarshal_message.  Handle errors.  Use
3406         DBusSignatureIter instead of strlen on args. Handle all arguments
3407         generically.  Special-case variants.
3408         (dbus_g_method_return, dbus_g_method_return_error): New function.
3409         (DBusGSignalClosure): New structure, closes over signal
3410         information.
3411         (dbus_g_signal_closure_new): New function.
3412         (dbus_g_signal_closure_finalize): New function.
3413         (signal_emitter_marshaller): New function; is special marshaller
3414         which emits signals on bus.
3415         (export_signals): New function; introspects object signals and
3416         connects to them.
3417         (dbus_g_object_type_install_info): Take GType instead of
3418         GObjectClass.
3419         (dbus_g_connection_register_g_object): Invoke export_signals.
3420         (dbus_g_connection_lookup_g_object): New function.
3421         (DBusGFuncSignature) New structure; used for mapping type
3422         signatures to marshallers.
3423         (funcsig_hash): New function; hashes DBusGFuncSignature.
3424         (funcsig_equal): New function; compares DBusGFuncSignature.
3425         (_dbus_gobject_lookup_marshaller): New function.
3426         (dbus_g_object_register_marshaller): New function; used to
3427         register a marshaller at runtime for a particular signature.
3428
3429         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3430
3431         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3432         which notes a server method implementation should be
3433         asynchronous.
3434
3435         * glib/dbus-binding-tool-glib.c
3436         (dbus_binding_tool_output_glib_server): Call
3437         dbus_g_value_types_init.
3438         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3439         variants specially.
3440         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3441         of a lookup function.
3442         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3443         (write_untyped_out_args): New method; write output arguments.
3444         (write_formal_declarations_for_direction): Function for
3445         writing prototypes.
3446         (write_formal_parameters_for_direction): Function for
3447         writing implementations.
3448         (write_typed_args_for_direction): Function for writing
3449         arguments prefixed with GTypes.
3450         (write_async_method_client): Write out async version
3451         of method.
3452
3453         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3454         (dbus_g_type_get_marshal_name): Move mapping from GType
3455         to marshal name into here.
3456         (dbus_g_type_get_c_name): Move into here.
3457         (compute_marshaller): Convert signature to type with
3458         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3459         (compute_marshaller_name): Ditto.
3460         (compute_marshaller): Handle async signal annotations.
3461         (gather_marshallers): Return if we don't have a known
3462         prefix.
3463         (generate_glue): Collect introspection blob here, and
3464         write all of the blob at the end.  This allows an object
3465         with multiple interfaces to work.
3466         Mark async methods in introspection blob.
3467
3468         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3469         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3470         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3471
3472         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3473         avoids people accidentally using DBUS_TYPE_* which should
3474         not be necessary anymore.
3475         Do include dbus-gtype-specialized.h, which are utilities
3476         for GLib container types.
3477         Add various #defines for types such as
3478         DBUS_TYPE_G_BOOLEAN_ARRAY.
3479         (DBusGValueIterator, DBusGValue): Define, not fully used
3480         yet.
3481         (dbus_g_value_get_g_type): Type for recursive value.
3482         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3483         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3484         (dbus_g_value_free): Prototypes.
3485         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3486         (dbus_g_proxy_set_interface): Prototype.
3487         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3488         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3489         types.
3490         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3491         Accessors.
3492         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3493         doing async invocations.
3494         (dbus_g_method_return, dbus_g_method_return_error):
3495         Prototypes.
3496         * doc/dbus-tutorial.xml: Update GLib section.
3497         
3498         * tools/dbus-viewer.c (load_child_nodes): Update
3499         for new invocation type of dbus_g_proxy_end_call.
3500         (load_from_service_thread_func): Ditto.
3501
3502         * tools/print-introspect.c (main): Ditto.
3503
3504         * tools/dbus-names-model.c (have_names_notify)
3505         (names_model_reload, names_model_set_connection)
3506         Use GTypes.
3507
3508         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3509         needed since Python bindings use GLib bindings.
3510
3511         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3512         Add --prefix argument.
3513
3514         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3515         unneeded --ignore-unsupported arg.
3516         
3517         * test/glib/test-service-glib.c: 
3518         * test/glib/test-service-glib.xml:
3519         * test/glib/test-dbus-glib.c: Add many more tests.
3520
3521 2005-06-06  David Zeuthen  <davidz@redhat.com>
3522
3523         * doc/TODO: Add item about need to remove deprecated functions.
3524
3525         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3526
3527         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3528         to repair the ABI which was broken with the last commit.
3529
3530 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3531
3532         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3533         (dbus_connection_disconnect): renamed to dbus_connection_close 
3534         for API symmetry with dbus_connection_open
3535         (_dbus_connection_open_internal): 
3536         s/dbus_connection_disconnect/dbus_connection_close
3537
3538         * dbus/dbus-bus.c (dbus_bus_get):
3539         s/dbus_connection_disconnect/dbus_connection_close
3540
3541         * bus/connection.c (bus_connections_unref, 
3542         bus_connections_setup_connection, bus_connections_expire_incomplete):
3543         s/dbus_connection_disconnect/dbus_connection_close
3544
3545         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3546         kill_client_connection_unchecked, check_hello_connection):
3547         s/dbus_connection_disconnect/dbus_connection_close
3548
3549         * bus/bus.c (new_connection_callback):
3550         s/dbus_connection_disconnect/dbus_connection_close
3551
3552         * tools/dbus-send.c (main):
3553         s/dbus_connection_disconnect/dbus_connection_close
3554
3555         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3556         s/dbus_connection_disconnect/dbus_connection_close
3557         
3558         * test/test-service.c (path_message_func, filter_func):
3559         s/dbus_connection_disconnect/dbus_connection_close
3560         
3561         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3562         
3563 2005-05-25  Colin Walters  <walters@verbum.org>
3564
3565         * dbus/dbus-protocol.h: Move various bus service #defines such
3566           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3567           dbus/dbus-shared.h.
3568         * dbus/dbus-shared.h: Various defines moved here.
3569         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3570
3571 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3572
3573         * python/__init__.py: Python bindings deserve a minor version
3574         update.  Upped to (0, 40, 2)
3575
3576 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3577
3578         * python/decorators.py: add explicitly_pass_message decorator
3579         for passing in the dbus message as keyword for edge case signal
3580         handling
3581
3582         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3583         to conform with what dbus expects for match rules
3584         (SignalMatchRule.execute): add the dbus message as a keyword
3585         if the signal handler has requested it
3586
3587         * python/examples/example/signal-recipient.py: added some more
3588         examples on how to hook up to signals
3589
3590 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3591
3592         * python/decorators.py: import dbus_bindings
3593
3594         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3595         SignalMatchNode): new classes that implement wildcard signal
3596         callback matching using a tree lookup. Heavily modified from a
3597         patch sent by Celso Pinto (fd.o bug #3241)
3598
3599         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3600         use new match classes to handle signals.
3601
3602 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3603         
3604         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3605
3606 2005-05-18  Havoc Pennington  <hp@redhat.com>
3607
3608         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3609         gettext. Not really worth requiring yet perhaps, but any
3610         production quality 1.0 would require it so we should go ahead and
3611         get things set up. We do have a couple token calls to
3612         bindtextdomain in the code already.
3613
3614 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3615
3616         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3617         when using recursive g_main_loops
3618
3619         * python/_dbus.py (class Bus): add the ProxyObjectClass
3620         alias for ProxyObject to make it easier for the Twisted 
3621         networking framework to integrate dbus.
3622
3623         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3624         alias for ProxyMethod to make it easier for the Twisted 
3625         networking framework to integrate dbus. 
3626
3627 2005-05-11  Ross Burton  <ross@openedhand.com>
3628
3629         * glib/dbus-glib-tool.c: Add --prefix argument.
3630         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3631         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3632         Add prefix argument.
3633         (generate_glue): Pass prefix argument down.
3634         (dbus_binding_tool_output_glib_server): Pass prefix to
3635         glib-genmarshal.
3636         
3637 2005-05-11  Colin Walters  <walters@verbum.org>
3638
3639         * tools/dbus-send.c (append_array): New function.
3640         (append_arg): Broken out from main.
3641         (main): Add cheesy hack to send arrays and variants.
3642         (usage): Update.
3643         * tools/dbus-print-message.c (print_iter): Broken out
3644         from main.
3645
3646 2005-05-11  Colin Walters  <walters@verbum.org>
3647
3648         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3649         New function, returns signature string for signature iter.
3650         * dbus/dbus-signature.h: Prototype it.
3651         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3652         New function, returns signature string for message iter.
3653         (dbus_message_iter_get_array_len): New function, returns
3654         length of array.
3655         (dbus_message_iter_get_fixed_array): Fix assertion; this
3656         function should be used when the iter is pointing to the
3657         contents of an array
3658         * dbus/dbus-message.h: Prototypes.
3659         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3660         New function; returns length of an array.
3661         * dbus/dbus-marshal-recursive.h: Prototype it.
3662         
3663 2005-05-11  Colin Walters  <walters@verbum.org>
3664
3665         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3666         compilation error.
3667         
3668 2005-05-08  Havoc Pennington  <hp@redhat.com>
3669
3670         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3671         daemon's pid, not the parent's pid, to the file descriptor.
3672         Reported by Taj Morton.
3673
3674 2005-05-05  Havoc Pennington  <hp@redhat.com>
3675
3676         * configure.in (LT_*): add notes on how the libtool versioning
3677         works to save thinking. Increment soname to indicate protocol
3678         breakage (though really the library interface hasn't changed I
3679         guess)
3680
3681         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3682         verify the GUID received from server matches what we were
3683         expecting, if we had an expectation
3684
3685         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3686         (_dbus_auth_get_guid_from_server): new function
3687         (send_begin): parse the OK args
3688
3689         * doc/dbus-specification.xml: add GUID to the auth protocol
3690
3691 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3692
3693         * Fix my name in previous changelog ;)
3694
3695         * python/proxies.py (ProxyObject.__getattr__): add further patch
3696         from Anthony Baxter to throw an AttributeError when python 
3697         __special__ functions are called instead of marshling them over 
3698         the bus (Bug#1685 comment 3).
3699
3700 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
3701
3702         * python/Makefile.am: changed to use pyexecdir for the binding
3703         shared libraries (Bug#2494)
3704
3705         * python/exceptions.py: bring exceptions over from the bindings
3706         so they can be used in applications (Bug#2036)
3707         Make all exceptions derive from DBusException
3708
3709         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3710         of classes so that print obj doesn't throw an exception (Bug #1685)
3711
3712 2005-05-03  Ross Burton  <ross@openedhand.com>
3713
3714         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3715         Return if we get an error during registration.  Set up a
3716         weak reference on object to unregister if object is destroyed.
3717         (unregister_gobject): New function.
3718         
3719 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
3720
3721         * python/dbus_bindings.pyx.in: 
3722         - added new type classes for hinting to the marashaler what type 
3723         to send over the wire
3724         - added int16 and uint16 marshalers
3725         - Fixed a bug in the type constants that caused int32 to go out
3726         as uint16 over the wire
3727         * python/dbus.py: split up into different files and renamed _dbus.py
3728         * python/__init__.py, python/_util.py, python/decorators.py, 
3729         python/exceptions.py, python/proxies.py, python/services.py,
3730         python/types.py: new files split off from dbus.py
3731         * python/Makefile.am: Add new files, remove dbus.py and 
3732         install all python files to <python module dir>/dbus
3733         * python/examples/*: Added #!/usr/bin/env python to the top of
3734         every example.  Patch provided by Tatavarty Kalyan
3735
3736 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3737
3738         * NEWS: Update to 0.33
3739
3740 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
3741
3742         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3743         method for doing async calls
3744         (_pending_call_notification): New C function for handling pendning call
3745         callbacks
3746         (set_notify): New method for setting pending call notification
3747         
3748         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3749         Async capabilities added to remote method calls
3750         (Sender): class removed
3751         (RemoteService): class removed
3752         (ObjectTree): class removed for now
3753         (RemoteObject): Renamed to ProxyObject
3754         (RemoteMethod): Renamed to ProxyMethod
3755         (method): Decorator added for decorating python methods as dbus methods
3756         (signal): Decorator added for decorating python methods as signal emitters
3757         (ObjectType): Metaclass added for generating introspection data and the
3758         method callback vtable
3759         (Interface): Wrapper class added to wrap objects in a dbus interface
3760         (Object): Uses ObjectType as its metaclass and exports Introspect
3761         of the org.freedesktop.DBus.Introspectable interface
3762         (ValidationException, UnknownMethodException): new exceptions
3763
3764         * python/examples/*: Modified to fit with the new bindings
3765
3766 2005-04-23  Havoc Pennington  <hp@redhat.com>
3767
3768         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3769         reported by Tony Houghton
3770
3771         * test/test-service.c (main): test
3772         dbus_connection_get_object_path_data()
3773
3774         * dbus/dbus-object-tree.c (find_handler): be sure we always init
3775         the exact_match
3776         (_dbus_object_tree_get_user_data_unlocked): new function used by
3777         dbus_connection_get_object_path_data()
3778         (do_register): add assertion test for get_user_data_unlocked
3779         (object_tree_test_iteration): more tests
3780
3781         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3782         new function from Dan Reed to let you get the user data from 
3783         dbus_connection_register_object_path()
3784
3785 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
3786
3787         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3788         in numerous places that did not account for the NULL terminator
3789         (signature_from_seed): changed the manual string copy loop to 
3790         just use strcpy instead
3791         make check should now pass
3792
3793 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
3794
3795         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3796         so that it allows messages that are not signals to pass in 
3797         NULL as the interface.
3798
3799 2005-04-18  David Zeuthen  <davidz@redhat.com>
3800
3801         * glib/dbus-gmain.c (io_handler_destroy_source): 
3802         (timeout_handler_destroy_source, connection_setup_free): 
3803         Also unref the source to avoid memory leaks.
3804
3805 2005-04-13  David Zeuthen  <davidz@redhat.com>
3806
3807         * bus/config-parser.c (bus_config_parser_new): Bump this to a
3808         more reasonable, yet still totally arbitrary, value :-). 
3809
3810 2005-04-13  David Zeuthen  <davidz@redhat.com>
3811
3812         * doc/TODO: Added an "important for 1.0" item about selinux
3813         allow/deny messages
3814
3815 2005-04-13  David Zeuthen  <davidz@redhat.com>
3816
3817         * bus/selinux.c: Add c-file-style to top of file
3818         (log_audit_callback): Don't free the data here anymore
3819         (bus_selinux_check): Don't take spid and tpid since appending
3820         that to auxdata may OOM.
3821         (bus_selinux_allows_acquire_service): Handle OOM and signal back
3822         to the caller if we are OOM by taking an error object.
3823         (bus_selinux_allows_send): -do-
3824
3825         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3826         and bus_selinux_allows_send
3827
3828         * bus/bus.c (bus_context_check_security_policy): Pass error and
3829         pass on OOM thrown by bus_selinux_allows_send()
3830
3831         * bus/services.c (bus_registry_acquire_service): Pass error and
3832         pass on OOM thrown by bus_selinux_allows_acquire_service()
3833
3834 2005-04-13  Havoc Pennington  <hp@redhat.com>
3835
3836         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3837         message at a time to avoid monopolizing the main loop, bug 
3838         #2953 from Benjamin Otte
3839
3840 2005-04-09  Havoc Pennington  <hp@redhat.com>
3841
3842         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3843         possible overlap, fix from Daniel Reed
3844         (fixup_alignment): fix signedness warnings
3845         (_dbus_string_append_unichar): ditto
3846
3847 2005-04-09  Havoc Pennington  <hp@redhat.com>
3848
3849         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3850
3851         * glib/dbus-glib-tool.c (main): fix warning
3852
3853         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3854
3855         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3856         add a new function that can be used in simple applications that
3857         don't have a main loop and are willing to block
3858
3859 2005-04-05  David Zeuthen  <davidz@redhat.com>
3860
3861         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3862
3863         * glib/dbus-gmain.c:
3864         (io_handler_destroy_source): Remove from list of IO handlers
3865         of the ConnectionSetup object
3866         (timeout_handler_destroy_source): -do- for timeout handlers
3867         (io_handler_source_finalized): Don't remove from list since
3868         we now do that in io_handler_destroy_source(). Renamed from
3869         io_handler_source_destroyed
3870         (timeout_handler_source_destroyed): -do- for timeout handlers
3871         (connection_setup_free): It is now safe to iterate over all
3872         IO and timeout handlers as the _destroy_source removes them
3873         from the list synchronously
3874
3875 2005-03-30  Havoc Pennington  <hp@redhat.com>
3876
3877         * configure.in: change check to gtk 2.4
3878
3879         * tools/dbus-viewer.c (name_combo_changed_callback): remove
3880         gtk_combo_box_get_active_text() usage to decrement GTK requirement
3881         to 2.4
3882
3883 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3884
3885         * News: Update 0.32
3886
3887         * HACKING: Fixed realease instructions.  configure.in should be updated to
3888           the next release by the person who made the last release.
3889
3890 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
3891
3892         * python/lvalue_cast_post_process.py - removed.  Patch has been
3893           submitted to Pyrex maintainers that fixes gcc4.0 errors
3894
3895         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3896
3897 2005-03-24  Daniel Reed  <n@ml.org>
3898
3899         * tools/Makefile.am: Make print-introspect and
3900         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3901
3902 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
3903
3904         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3905
3906         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
3907           had in Red Hat packages for a while but for some reason never 
3908           got merged upstream
3909           (_dbus_is_a_number): New checks if a string
3910           can be converted to a number and does the conversion if it can
3911           (_dbus_user_database_lookup): Add check to see if the given username
3912           is a udi.  This allows udi's to be used instead of usernames in the
3913           config file.
3914           (_dbus_user_database_lookup_group): Add check to see if the given groupname
3915           is a gdi.  This allows gdi's to be used instead of groupnames in the
3916           config file.
3917
3918 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
3919
3920         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3921           code so that it compiles with gcc4.0
3922
3923         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3924           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3925           results back to dbus_binding.c
3926
3927 2005-03-20  Colin Walters  <walters@verbum.org>
3928
3929         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3930
3931         * configure.in: Require GTK+ 2.6.
3932         
3933 2005-03-20  Colin Walters  <walters@verbum.org>
3934
3935         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3936
3937 2005-03-17  Tom Parker  <palfrey@tevp.net>
3938
3939         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3940         print DBUS_UID_UNSET; instead print passed username.  Also
3941         be sure to actually use gid looked up in cache.
3942         
3943         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3944         for DBUS_GID_UNSET and groupname.
3945
3946 2005-03-17  Colin Walters  <walters@verbum.org>
3947
3948         * bus/print-introspect.c: Move to tools/.
3949         * bus/run-with-tmp-session-bus.sh: Ditto.
3950         
3951         * glib/Makefile.am (dbus-glib-bindings.h): Move
3952         generation to tools/Makefile.am.
3953
3954         * test/glib/run-test.sh: Update to handle move
3955         of run-with-tmp-session-bus.sh.
3956
3957         * test/glib/test-service-glib.c: Update to handle
3958         move of dbus-glib-bindings.h.
3959
3960         * tools/print-introspect.c: Moved here
3961         from bus/, and ported to GLib bindings.
3962
3963         * tools/run-with-tmp-session-bus.sh: Moved here
3964         from bus/.
3965
3966         * tools/Makefile.am: Generate dbus-glib-bindings.h
3967         and dbus-bus-introspect.xml here.
3968
3969         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3970         Update.
3971
3972 2005-03-17  Colin Walters  <walters@verbum.org>
3973
3974         * bus/driver.c (write_args_for_direction): Use
3975         _dbus_string_get_const_data to retrieve string;
3976         _dbus_string_get_const_data_len doesn't actually return
3977         a NULL-terminated substring.
3978
3979         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3980         (main): Change to use org_freedesktop_DBus_request_name
3981         instead of using g_proxy_begin_call/end_call.
3982
3983 2005-03-15  Joe Shaw  <joeshaw@novell.com>
3984
3985         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3986         generating the finalizer.  Fixes from Ben Maurer.
3987
3988 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3989
3990         * mono/BusDriver.cs: Update method names: ListServices
3991         becomes ListNames; GetOwner becomes GetNameOwner.
3992
3993         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3994         onto the eval stack when removing the delegate.
3995
3996 2005-03-12  Joe Shaw  <joeshaw@novell.com>
3997
3998         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3999         LT_CURRENT.  Set it to the autoconf variable.
4000                                                                                 
4001         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4002         classes that disconnects the signal handler delegate from the
4003         service object.  Fixes a big leak of proxy objects on the
4004         client side of things.  Patch from Ben Maurer
4005         <bmaurer@ximian.com>
4006
4007 2005-03-12  Colin Walters  <walters@verbum.org>
4008
4009         * bus/driver.c (write_args_for_direction): New function,
4010         parses a type signature into arguments and outputs to
4011         XML.
4012         (bus_driver_handle_introspect): Use it instead of
4013         hardcoding XML for certain signatures.
4014         
4015         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4016         dependency on dbus-daemon.
4017
4018         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4019         argument, pass it to dbus_binding_tool_output_glib_client.
4020
4021         * glib/dbus-binding-tool-glib.c
4022         (generate_client_glue): Protect against multiple inclusion.
4023         (dbus_binding_tool_output_glib_client): Add
4024         G_BEGIN_DECLS/G_END_DECLS.
4025
4026         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4027         Change to just take iface prefix directly.
4028         (write_formal_parameters): Clarify error message.
4029         (check_supported_parameters): New function; checks to see type
4030         signatures of method parameters are supported.
4031         (generate_client_glue): Handle ignore_unsupported flag.
4032         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4033         parameter.
4034
4035         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4036         --ignore-unsupported by default until glib bindings
4037         support arrays.
4038
4039 2005-03-11  Colin Walters  <walters@verbum.org>
4040
4041         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4042         install it.
4043
4044         * bus/print-introspect.c: New file; prints introspection
4045         data for a given name and object path.
4046
4047         * bus/run-with-tmp-session-bus.sh: New file, refactored
4048         from test/glib/run-test.sh.  Creates a temporary session
4049         bus and runs another program.
4050
4051         * test/glib/run-test.sh: Refactor to invoke
4052         run-with-tmp-session-bus.sh.
4053
4054         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4055         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4056         macros instead of hardcoding.
4057
4058         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4059
4060 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4061
4062         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4063         this unref; it doesn't match up evenly in some codepaths.
4064         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4065         this evenly matches with the ref near the top of this function.
4066
4067 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4068
4069         * dbus/dbus-object-tree.c
4070         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4071         and we try to unregister a path that's not registered, still go
4072         through the process of unlocking and don't just return.
4073
4074 2005-03-09  Colin Walters  <walters@verbum.org>
4075
4076         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4077         to this are generated for client-side wrappers.  Invokes a
4078         D-BUS method and returns reply values.  
4079
4080         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4081         function; writes signature string for argument direction.
4082         (write_args_for_direction): Change to pass input values directly
4083         instead of via address, and fix indentation.
4084         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4085         make generated wrappers inlineable.
4086
4087         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4088         note about using dbus_type_is_fixed.
4089
4090         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4091         dbus/dbus-signature.c as dbus_type_is_fixed.
4092
4093         All callers updated.
4094
4095         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4096         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4097
4098         * dbus/dbus-signature.h: Prototype.
4099
4100         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4101         error printf code.
4102
4103         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4104         appropriate instead of just freeing it.
4105         (main): Free returned strings using g_free.
4106
4107         * test/glib/Makefile.am (test-service-glib-glue.h)
4108         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4109
4110         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4111         simply maps a simple D-BUS type to GType.
4112         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4113         GType.
4114         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4115         initialize the value with it.
4116         (dbus_gvalue_binding_type_from_type): Unused, delete.
4117         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4118         various types instead of unmarshalling to value data directly.
4119         Remove can_convert boolean.
4120         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4121         returning directly instead of using can_convert boolean.
4122         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4123         Stores a GValue in a pointer to a value of its corresponding C
4124         type.
4125
4126         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4127         add dbus_gvalue_store.
4128
4129 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4130
4131         Fix a bunch of lifecycle and memory management problems
4132         in the mono bindings.
4133
4134         * mono/Arguments.cs (Arguments): Implement IDisposable
4135
4136         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4137         strictly a static class.
4138
4139         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4140         delegates into this file.
4141         (Connection): Implement IDisposable.
4142         (Dispose): Disconnect the connection and set the raw connection
4143         pointer to IntPtr.Zero.
4144         (~Connection): Call Dispose().
4145         (RegisterObjectPath): Added.  Manages the registration of object
4146         paths so we can cleanly disconnect them at dispose/finalize time.
4147         (UnregisterObjectPath): Ditto.
4148         (set_RawConnection): Unregister all of the object paths when
4149         changing the underlying DBusConnection.  Add them back onto the
4150         new connection, if any.
4151
4152         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4153         more unmanaged resources anymore, so it's not necessary.  Move all
4154         the DBusObjectPathVTable stuff out of here.
4155         (Handler): Save references to our delegates so that they don't get
4156         finalized.  Call Connection.RegisterObjectPath() instead of
4157         dbus_connection_register_object_path() directly.
4158         (Message_Called): Dispose the message after we're finished with
4159         it.
4160
4161         * mono/Message.cs (Message): Implement IDisposable.
4162         (Dispose): Dispose the Arguments, and set the RawMessage to
4163         IntPtr.Zero.
4164         (SendWithReplyAndBlock): We own the ref to the reply that comes
4165         back from dbus_connection_send_with_reply_and_block() so add a
4166         comment about that and unref it after we've constructed a managed
4167         MethodReturn class around it.  Fixes a big, big leak.
4168
4169         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4170         method.
4171         (BuildSignalHandler): After we've sent the Signal message, dispose
4172         of it.
4173         (BuildMethod): Dispose of the method call and reply messages after
4174         we've sent the message and extracted the data we want from the
4175         reply.
4176
4177         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4178         anymore.
4179         (Service_FilterCalled): Dispose of the message after we're
4180         finished with it.
4181
4182 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4183
4184         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4185         After we attach our pending call to the connection, unref
4186         it.  Fixes a leak.
4187  
4188         * mono/Connection.cs (set_RawConnection): Disconnect our
4189         filter and match callbacks from the old connection and
4190         reconnect them to the new connection, if any.
4191
4192         * mono/DBusType/Array.cs: "Code" is a static member, so
4193         don't use "this" to refer to it.  Fix for stricter checking
4194         in Mono 1.1.4.
4195  
4196         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4197         object path that we pass into unmanaged code.
4198  
4199         * mono/DBusType/String.cs (Append): Don't leak the string
4200         that we pass into unmanged code.
4201
4202 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4203         * NEWS: Update for 0.31
4204
4205         * configure.in: Release 0.31
4206         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4207
4208         * qt/Makefile.am: fixed build
4209
4210         * dbus/Makefile.am: soname bump for libdbus
4211
4212         * glib/Makefile.am: soname bump for libdbus-glib
4213
4214 2005-03-05  Havoc Pennington  <hp@redhat.com>
4215
4216         * dbus/dbus-sysdeps.c:
4217         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4218         value
4219         (_dbus_generate_random_bytes_buffer): fix return value
4220
4221         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4222         checks actually work, from Tom Parker <fdo@tevp.net>
4223
4224 2005-03-01  Colin Walters  <walters@verbum.org>
4225
4226         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4227         functions copied from dbus-glib-tool.c.
4228         (main): Convert lots of error code to use them.
4229         Also add some testing for introspection bits.
4230
4231 2005-03-01  Colin Walters  <walters@verbum.org>
4232         
4233         * doc/TODO: Remove introspection signature TODO.
4234
4235 2005-02-27  Colin Walters  <walters@verbum.org>
4236
4237         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4238         Change return value to const char * instead of int so we can do
4239         full signatures.
4240         (struct PropertyInfo, struct ArgInfo): Store char *.
4241         (property_info_new, arg_info_new): Update parameters, strdup.
4242         (property_info_unref, arg_info_unref): Free.
4243
4244         * glib/dbus-gidl.h: Update prototypes.
4245
4246         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4247         (validate_signature): New function, just validates signature and
4248         sets GError.
4249         (parse_property, parse_arg): Invoke validate_signature.  Store
4250         signature instead of just type code.
4251
4252         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4253         function to return a primary type for a signature, dropping
4254         information about types in container types.
4255         (dbus_gvalue_genmarshal_name_from_type)
4256         (dbus_gvalue_binding_type_from_type)
4257         (dbus_gvalue_ctype_from_type): Update to take full signature
4258          instead of type code.
4259         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4260
4261         * glib/dbus-gvalue.h: Update prototypes for above.
4262
4263         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4264         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4265         (introspect_properties, introspect_signals, write_interface):
4266         Update to handle signatures, and remove usage of
4267         _dbus_gutils_type_to_string.
4268         (handle_introspect): Print out type codes instead of e.g. "string"
4269         in hardcoded introspection XML; also use x_AS_STRING constants
4270         instead of hardcoding in string.
4271
4272         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4273         to string.  Remove usage of _dbus_gutils_type_to_string.
4274
4275         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4276
4277         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4278         deletion.
4279         
4280         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4281         (compute_marshaller_name, generate_glue): Handle signature change
4282         to string.
4283         (write_formal_parameters, write_args_for_direction): Ditto, and
4284         remove FIXME.
4285
4286         * tools/dbus-tree-view.c (type_to_string): Delete.
4287         (info_set_func_text): Update to print full signatures.
4288
4289         * test/glib/test-service-glib.xml: Change types to new
4290         introspection format.
4291
4292 2005-02-26  Havoc Pennington  <hp@redhat.com>
4293
4294         * doc/TODO: remove the "guid" item
4295
4296         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4297         (with_bus_thread_func): use open_private
4298
4299         * dbus/dbus-connection.c (dbus_connection_open_private): new
4300         function that works like the old dbus_connection_open()
4301         (dbus_connection_open): now returns an existing connection if
4302         possible
4303
4304         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4305         through the GUID to the transport
4306
4307         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4308         GUID in hex-encoded form.
4309
4310         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4311         pass GUID argument in to the transport
4312
4313         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4314         guid argument
4315
4316         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4317
4318         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4319
4320 2005-02-25  Havoc Pennington  <hp@redhat.com>
4321
4322         * doc/dbus-specification.xml: document the GUID thing
4323
4324         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4325         globally unique ID for the server, and put a "guid=hexencoded"
4326         field in the address
4327
4328         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4329
4330         * dbus/dbus-message.c: ditto
4331
4332         * dbus/dbus-dataslot.c: ditto
4333
4334         * dbus/dbus-list.c: ditto
4335
4336         * dbus/dbus-internals.h: wait, just include
4337         dbus-threads-internal.h here
4338         
4339         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4340         use in main library
4341
4342         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4343
4344 2005-02-24  Colin Walters  <walters@verbum.org>
4345
4346         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4347
4348 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4349
4350         * glib/Makefile.am: added dbus-gobject.h to sources list
4351         so distcheck doesn't fail
4352         
4353 2005-02-24  Havoc Pennington  <hp@redhat.com>
4354
4355         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4356         you must disconnect before unref, since locking and other things
4357         are screwed up otherwise. Fix assorted other locking stuff.
4358
4359         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4360         fix compilation
4361
4362         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4363         into a private header and don't export from the library
4364
4365         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4366
4367 2005-02-24  Colin Walters  <walters@verbum.org>
4368         
4369         * dbus/dbus-signature.c: New file; implements various functions
4370         related to type signatures.  Includes an interator for parsing,
4371         validation functions.
4372         (dbus_type_is_basic): Moved here from
4373         dbus-marshal-basic.c:_dbus_type_is_basic.
4374         (dbus_type_is_container): Moved here from
4375         dbus-marshal-basic.c:_dbus_type_is_container.
4376
4377         All callers of _dbus_type_is_container and _dbus_type_is_basic
4378         updated, and include dbus-signature.h.
4379
4380         * dbus/dbus-signature.h: New file; prototypes for the above.
4381
4382         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4383         dbus-signature.h.
4384
4385         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4386         function factored out of _dbus_first_type_in_signature.
4387         (_dbus_first_type_in_signature_c_str): New function; returns first
4388         type code for a type signature character.
4389
4390         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4391         handle function moves.
4392
4393         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4394
4395         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4396         function; skips to next complete type in type signature.
4397         Implemented using previous skip_one_complete_type.  Now
4398         skip_one_complete_type just delegates to
4399         _dbus_type_signature_next.
4400
4401         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4402         to dbus-signature.c
4403         (_dbus_type_is_container): Ditto.
4404
4405         * doc/dbus-specification.xml: Update introspection sample to
4406         use real type signatures.
4407
4408         * dbus/dbus-test.h: Prototype signature test.
4409
4410         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4411         signature tests.
4412
4413         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4414
4415 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4416
4417         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4418         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4419
4420 2005-02-21  Colin Walters  <walters@verbum.org>
4421
4422         * dbus/dbus-test-main.c (main): Take optional specific test
4423         argument.
4424
4425         * dbus/dbus-test.c (run_test): New function, runs a test function
4426         with no data directory.
4427         (run_data_test): Like above, but takes data directory.
4428         (dbus_internal_do_not_use_run_tests): Take
4429         specific test argument.  Replace lots of cut n' paste code
4430         with run_test and run_data_test.
4431
4432         * dbus/dbus-test.h: Update prototype for
4433         dbus_internal_do_not_use_run_tests.
4434
4435 2005-02-20  Havoc Pennington  <hp@redhat.com>
4436
4437         Fix bugs reported by Daniel P. Berrange
4438         
4439         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4440         (protected_change_watch): new function
4441         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4442         (_dbus_server_add_watch): change to work like the
4443         dbus-connection.c equivalents; like those, probably kind of
4444         busted, but should at least mostly work for now
4445         (dbus_server_disconnect): drop the lock if we were already
4446         disconnected, patch from Daniel P. Berrange
4447
4448         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4449         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4450         same stuff
4451
4452         * doc/TODO: todo about unscrewing this mess
4453
4454 2005-02-19  Colin Walters  <walters@verbum.org>
4455
4456         * glib/dbus-binding-tool-glib.c
4457         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4458
4459         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4460         as errno.h and sys/stat.h.
4461         (lose): New function, prints error with
4462         newline and exits.
4463         (lose_gerror): Similar, but takes GError for message.
4464         (main): Add --output argument to specify output file to write to,
4465         instead of always printing to stdout.  In this mode, determine
4466         timestamps on source files to see whether any are newer than the
4467         target file.  If not, exit.  Also convert a number of error
4468         messages to use lose (since it's shorter), and switch to using
4469         g_io_channel_shutdown.
4470
4471 2005-02-19  Havoc Pennington  <hp@redhat.com>
4472
4473         * glib/dbus-gobject.c
4474         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4475
4476         * glib/dbus-glib.c: fix doxygen warnings
4477
4478         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4479         is found on an <arg>
4480
4481 2005-02-17  Colin Walters  <walters@verbum.org>
4482
4483         * glib/dbus-gobject.h: Don't export
4484         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4485         
4486         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4487         (invoke_object_method): Handle it.
4488
4489         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4490         Handle rename.
4491         
4492 2005-02-17  Colin Walters  <walters@verbum.org>
4493
4494         * bus/.cvsignore, doc/.cvsignore
4495         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4496         Update.
4497
4498 2005-02-17  Colin Walters  <walters@verbum.org>
4499         
4500         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4501         Rename to DBUS_SERVICE_DBUS.
4502         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4503         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4504         Change the value from "org.freedesktop.Local"
4505         to "org.freedesktop.DBus.Local".
4506         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4507         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4508         DBUS_INTERFACE_INTROSPECTABLE.
4509         Change the value from "org.freedesktop.Introspectable"
4510         to "org.freedesktop.DBus.Introspectable".
4511         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4512         DBUS_INTERFACE_PROPERTIES.
4513         Change the value from "org.freedesktop.Properties"
4514         to "org.freedesktop.DBus.Properties".
4515         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4516         DBUS_INTERFACE_PEER.
4517         Change the value from "org.freedesktop.Peer"
4518         to "org.freedesktop.DBus.Peer".
4519         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4520         DBUS_INTERFACE_LOCAL.
4521         Change the value from "org.freedesktop.Local"
4522         to "org.freedesktop.DBus.Local".
4523
4524         All other users of those constants have been changed.
4525
4526         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4527
4528         * glib/dbus-gobject.c (handle_introspect): Use constants.
4529
4530         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4531
4532 2005-02-17  Colin Walters  <walters@verbum.org>
4533
4534         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4535         (parse_node, parse_interface, parse_method, parse_signal)
4536         (parse_property, parse_annotation): Lose if we're currently in an
4537         annotation.
4538         (parse_annotation): New function.
4539         (parser_start_element, parser_end_element): Handle annotation.
4540         (parse_method, parse_interface): Remove support for c_name attribute,
4541         switch to annotations.
4542
4543         * glib/dbus-gidl.h (interface_info_get_binding_names)
4544         (method_info_get_binding_names)
4545         (interface_info_get_binding_name, method_info_get_binding_name)
4546         (interface_info_set_binding_name, method_info_set_binding_name):
4547         Remove.
4548         (interface_info_get_annotations, method_info_get_annotations)
4549         (interface_info_get_annotation, method_info_get_annotation)
4550         (interface_info_add_annotation, method_info_add_annotation):
4551         Prototype.
4552
4553         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4554         for "bindings".
4555         (struct MethodInfo): Ditto.
4556         Straightfoward conversion of binding methods into annotation methods
4557         as prototyped.
4558
4559         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4560
4561         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4562
4563         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4564         Use new annotation API.
4565
4566         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4567         annotation element.
4568         
4569         * doc/dbus-specification.xml: Discuss introspection annotations,
4570         include list of well-known annotations.
4571
4572         * test/glib/test-service-glib.xml: Make validate against new DTD.
4573
4574 2005-02-17  Colin Walters  <walters@verbum.org>
4575
4576         This patch is based on initial work from
4577         Paul Kuliniewicz <kuliniew@purdue.edu>.
4578
4579         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4580         initialization of GValue from dbus type to here.
4581         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4582         for the "glib-genmarshal" program from a DBus type.
4583         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4584         into the C name for it we use in the glib bindings.
4585         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4586         glib C type (not GValue).
4587         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4588
4589         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4590         from dbus-gobject.c.
4591
4592         * glib/dbus-gutils.h: Prototype it.
4593
4594         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4595         (marshal_dbus_message_to_g_marshaller): Use new shared function
4596         dbus_glib_marshal_dbus_message_to_gvalue_array.
4597
4598         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4599         Will be changed once we have annotations.
4600
4601         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4602         GStaticRWLock.  Callers updated.
4603         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4604         (string_table_next): New function for iterating over zero-terminated
4605         string value array.
4606         (string_table_lookup): New function; retrieves specific entry in
4607         array.
4608         (get_method_data): New function; look up method data in object data chunk.
4609         (object_error_domain_prefix_from_object_info)
4610         (object_error_code_from_object_info): New functions, but not implemented yet.
4611         (method_interface_from_object_info): New function; retrieve interface name.
4612         (method_name_from_object_info): New function; retrieve method name.
4613         (method_arg_info_from_object_info): New function; retrieve argument data.
4614         (arg_iterate): New function; iterates over serialized argument data.
4615         (method_dir_signature_from_object_info): New function; returns a
4616         GString holding type signature for arguments for just one
4617         direction (input or output).
4618         (method_input_signature_from_object_info)
4619         (method_output_signature_from_object_info): New functions.
4620         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4621         converts dbus message arguments into a GValue array.  Used for both
4622         signal handling and method invocation.
4623         (struct DBusGlibWriteIterfaceData): New utility structure.
4624         (write_interface): New function; generate introspection XML for
4625         an interface.
4626         (introspect_interfaces): New function; gathers all interface->methods,
4627         generates introspection XML for them.
4628         (handle_introspect): Invoke introspect_interfaces.
4629         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4630         (lookup_object_and_method): New function; examines an incoming message
4631         and attempts to match it up (via interface, method name, and argument
4632         signature) with a known object and method.
4633         (gerror_domaincode_to_dbus_error_name): New function; converts a
4634         GError domain and code into a DBus error name.  Needs GError data
4635         added to object introspection to work well.
4636         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4637         GError.
4638         (invoke_object_method): New function to invoke an object method
4639         looked up via lookup_object_and_method.  Parses the incoming
4640         message, turns it into a GValue array, then invokes the marshaller
4641         specified in the DBusGMethodInfo.  Creates a new message with
4642         either return values or error message as appropriate.
4643         (gobject_message_function): Invoke lookup_object_and_method and
4644         invoke_object_method.
4645
4646         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4647         (enum DBusBindingOutputMode): New enum for binding output modes.
4648         (pretty_print): Print binding names.
4649         (dbus_binding_tool_error_quark): GError bits.
4650         (version): Fix typo.
4651         (main): Create GIOChannel for output.  Parse new --mode argument,
4652         possible values are "pretty-print", "glib-server", "glib-client".
4653         Use mode to invoke appropriate function.
4654         
4655         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4656
4657         * glib/dbus-glib-tool.h: New header, just includes GError bits
4658         for now.
4659
4660         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4661         maps binding style to name.
4662         (struct MethodInfo): Ditto.
4663         (get_hash_keys, get_hash_key): Utility function, returns keys for
4664         a GHashTable.
4665         (interface_info_new, method_info_new): Initialize bindings.
4666         (interface_info_unref, method_info_unref): Destroy bindings.
4667         (method_info_get_binding_names, method_info_get_binding_name)
4668         (interface_info_get_binding_names, interface_info_get_binding_name):
4669         Functions for retrieving binding names.
4670         (method_info_set_binding_name, interface_info_set_binding_name):
4671         Functions for setting binding names.
4672
4673         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4674         for glib binding generation.
4675
4676         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4677         and client-side glib glue generation.
4678
4679         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4680         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4681         dbus-glib-tool.h.
4682
4683         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4684         of using GClosureMarshal directly.
4685         (struct DBusGObjectInfo): Add n_infos member.
4686
4687         * test/glib/test-service-glib.xml: New file; contains introspection data
4688         for MyTestObject used in test-service-glib.c.
4689
4690         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4691         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4692         (my_object_uppercase, my_object_many_args): New test methods.
4693         (main): Use dbus_g_object_class_install_info to include generated object
4694         info.
4695
4696         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4697         as well as client-side bindings.
4698
4699         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4700         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4701         using both the dbus_gproxy stuff directly as well as the generated bindings.
4702
4703 2005-02-15  Havoc Pennington  <hp@redhat.com>
4704
4705         * dbus/dbus-connection.c (dbus_connection_dispatch): always
4706         complete a pending call, don't run filters first.
4707
4708         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4709         dbus_pending_call_steal_reply
4710
4711         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4712         _dbus_connection_block_pending_call
4713         (dbus_pending_call_get_reply): change to steal_reply and return a
4714         ref
4715
4716         * dbus/dbus-connection.c
4717         (dbus_connection_send_with_reply_and_block): port to work in terms
4718         of DBusPendingCall
4719         (_dbus_connection_block_pending_call): replace block_for_reply
4720         with this
4721
4722 2005-02-14  Havoc Pennington  <hp@redhat.com>
4723
4724         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4725         properly handle looking up group information by name; fix 
4726         from j@bootlab.org
4727
4728 2005-02-13  Havoc Pennington  <hp@redhat.com>
4729
4730         * dbus/dbus-connection.c (dbus_connection_return_message) 
4731         (dbus_connection_borrow_message): hold dispatch lock while message
4732         is outstanding
4733         (_dbus_connection_block_for_reply): hold dispatch lock while we
4734         block for the reply, so nobody steals our reply
4735         (dbus_connection_pop_message): hold the dispatch lock while we
4736         pluck the message
4737
4738 2005-02-13  Havoc Pennington  <hp@redhat.com>
4739
4740         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4741         (_dbus_connection_release_dispatch)
4742         (_dbus_connection_acquire_io_path)
4743         (_dbus_connection_release_io_path): make the mutex and condvar
4744         control access to the "acquired" flag. Drop the connection lock
4745         while waiting on the condvar. Hopefully these are baby steps in
4746         roughly the right direction.
4747
4748 2005-02-13  Havoc Pennington  <hp@redhat.com>
4749
4750         * dbus/dbus-connection.c: use separate mutexes for the condition
4751         variables; this is some kind of baseline for sanity, but the
4752         condition variables still aren't used correctly afaict
4753
4754 2005-02-13  Havoc Pennington  <hp@redhat.com>
4755
4756         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4757         fix a double-unlock
4758
4759         * dbus/dbus-connection.c
4760         (_dbus_connection_detach_pending_call_unlocked): add this
4761
4762         Initial semi-correct pass through to fix thread locking; there are
4763         still some issues with the condition variable paths I'm pretty
4764         sure
4765         
4766         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4767         lock/unlock calls
4768
4769         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4770         rename to add _unlocked
4771         (struct DBusConnection): move "dispatch_acquired" and
4772         "io_path_acquired" to use only one bit each.
4773         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4774         (dbus_connection_set_watch_functions): hacky fix to reentrancy
4775         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
4776         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
4777         (_dbus_connection_remove_timeout) 
4778         (_dbus_connection_toggle_timeout): drop lock when calling out to
4779         user functions; done in a hacky/bad way.
4780         (_dbus_connection_send_and_unlock): add a missing unlock
4781         (_dbus_connection_block_for_reply): add a missing unlock
4782
4783         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4784         drop lock in a hacky probably unsafe way to call out to user
4785         function
4786
4787 2005-02-12  Havoc Pennington  <hp@redhat.com>
4788
4789         * tools/dbus-tree-view.c (info_set_func_text): display more
4790         details on args
4791
4792         * bus/driver.c (bus_driver_handle_list_services): list the bus
4793         driver
4794
4795         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4796
4797         * glib/dbus-gidl.c (signal_info_get_n_args): new function
4798         (method_info_get_n_args): new function
4799
4800 2005-02-12  Havoc Pennington  <hp@redhat.com>
4801
4802         * bus/driver.c (bus_driver_handle_introspect): add introspection
4803         for bus driver
4804
4805 2005-02-12  Havoc Pennington  <hp@redhat.com>
4806
4807         * bus/driver.c: put the signature of each bus driver method in the
4808         table of handlers and check it on incoming calls; this isn't
4809         really useful, but going to add introspect support in a minute.
4810
4811 2005-02-11  Joe Shaw  <joeshaw@novell.com>
4812
4813         * mono/Connection.cs: The unpredictability of finalizers in mono
4814         prevents us from deterministically disconnecting the filters from
4815         the Service class's finalizer, so move tracking of filters and
4816         matches here.  Add API for that.
4817
4818         * mono/Service.cs: Remove the code, add code which calls the
4819         methods now on the Connection class.
4820
4821 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
4822
4823         * python/dbus.py (class Sender): added to support dbus signals better
4824         (Bus::add_signal_receiver): added expand_args parameter which defaults
4825         to True.  When expand args is True the signal handler will pass the 
4826         message arguments as parameters to the signal handler.  If False
4827         revert to previous behavior where the signal handler must get the
4828         argument list from the message.  This is to help port applications
4829         like HAL that have a tendancy to send variable length argument lists.
4830         self._match_rule_to_receivers is now a dict of dicts.
4831         (Bus::remove_signal_receiver): pop handler off the dict intead of 
4832         removing it from a list
4833         (Bus::_signal_func): change signal handlers so that interface,
4834         signal_name, service, path and message are packed into a Sender
4835         object and that is passed to the handler.  If expand_args is True
4836         extract the args list from the message and append it to the parameter
4837         list
4838         
4839         * python/dbus_bindings.pyx.in (class Signature): added to support 
4840         signiature types
4841         (MessageIter::__init__): changed iteration limit to match D-BUS
4842         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
4843         STRUCT and VARIENT type support
4844         (MessageIter::python_value_to_dbus_sig): made recursive to support
4845         recursive types
4846         (MessageIter::append*): added Signature, dict, tuple 
4847         support
4848
4849         * python/examples/example-client.py: added examples of getting tuples
4850         and dicts
4851
4852         * python/examples/example-service.py: added examples of sending tuples
4853         and dicts
4854
4855         * python/examples/example-signal-recipient.py: Fixed to handle new
4856         signal callback format
4857
4858 2005-02-10  Havoc Pennington  <hp@redhat.com>
4859
4860         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4861         (call dbus_g_proxy_add_signal)
4862
4863         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4864         escape the hostname
4865         (_dbus_server_new_for_domain_socket): escape the path
4866
4867         * dbus/dbus-address.c (dbus_address_escape_value): new
4868         (dbus_address_unescape_value): new
4869         (dbus_parse_address): unescape values
4870
4871         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4872
4873         * doc/dbus-specification.xml: explain how to escape values in
4874         addresses
4875
4876 2005-02-10  Havoc Pennington  <hp@redhat.com>
4877
4878         * dbus/dbus-message-factory.c (generate_special): modify test to
4879         avoid using a non-basic dict key
4880
4881         * dbus/dbus-marshal-validate-util.c: add test for the below
4882
4883         * doc/dbus-specification.xml: require that dict keys are a basic
4884         type
4885
4886         * dbus/dbus-marshal-validate.c
4887         (_dbus_validate_signature_with_reason): require that dict key is a
4888         basic type
4889
4890 2005-02-10  Havoc Pennington  <hp@redhat.com>
4891
4892         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4893         change to be _and_unlock instead of _unlocked
4894
4895         * dbus/dbus-connection.c
4896         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4897         have no_update so we can find this bug quickly in future
4898
4899 2005-02-10  Havoc Pennington  <hp@redhat.com>
4900
4901         * dbus/dbus-message-util.c (verify_test_message): tests for string
4902         array
4903
4904         * dbus/dbus-message.c (dbus_message_append_args_valist): add
4905         support for arrays of string/signature/path
4906
4907 2005-02-10  Joe Shaw  <joeshaw@novell.com>
4908
4909         * dbus/dbus-connection.c
4910         (_dbus_connection_queue_received_message_link,
4911         _dbus_connection_message_sent): Add the path to
4912         the verbose output.
4913         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
4914         _dbus_connection_send_preallocated_unlocked(), updated the
4915         dispatch status, and unlocks.  Fixes a bug where certain
4916         situations (like a broken pipe) could cause a Disconnect message
4917         to not be sent, tricking the bus into thinking a service was still
4918         there when the process had quit.
4919         (_dbus_connection_send_preallocated): Call
4920         _dbus_connection_send_preallocated_and_unlock().
4921         (_dbus_connection_send_and_unlock): Added.  Calls
4922         _dbus_connection_send_preallocated_and_unlock().
4923         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4924         (dbus_connection_send_with_reply): Update the dispatch status and
4925         unlock.
4926
4927         * mono/Service.cs (~Service): Added.  Removes the filter so that
4928         we don't get unmanaged code calling back into a GCed delegate.
4929         (RemoveFilter); Added.
4930
4931 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
4932
4933         * dbus/dbus-message.c (dbus_message_iter_open_container):
4934         - Removed check for iterator type being an array because
4935         get_arg_type does not work with writer iterators
4936         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4937
4938 2005-02-07  Havoc Pennington  <hp@redhat.com>
4939
4940         * doc/dbus-specification.xml: some more language cleanups; add
4941         stuff about how to deal with invalid protocol and extension
4942         points; add _ to allowed chars in auth commands; add EXTENSION_
4943         auth command prefix
4944
4945 2005-02-06  Havoc Pennington  <hp@redhat.com>
4946
4947         * s/expected/required/ in a couple places for clarity
4948
4949 2005-02-07  Colin Walters  <walters@verbum.org>
4950
4951         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4952         sender or proposed_recipient.
4953
4954 2005-02-06  Havoc Pennington  <hp@redhat.com>
4955
4956         * dbus/dbus-message-factory.c (generate_special): more tests
4957
4958         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4959         array length that exceeds the maximum
4960
4961 2005-02-05  Havoc Pennington  <hp@redhat.com>
4962
4963         * dbus/dbus-message-factory.c (generate_special): more test cases,
4964         increasing coverage
4965
4966         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4967         reason why a signature was invalid
4968
4969         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4970         skip the length of the string before we look at it in validation
4971
4972         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4973         equal_substring
4974
4975         * dbus/dbus-message.c (_dbus_message_loader_new): default
4976         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4977
4978 2005-02-05  Havoc Pennington  <hp@redhat.com>
4979
4980         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4981         if the signature of a variant was empty
4982         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4983         struct with no element type)
4984
4985         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4986         mangled messages to break things
4987
4988 2005-02-04  Havoc Pennington  <hp@redhat.com>
4989
4990         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4991         g_quark_try_string() so it actually can return 0
4992         (dbus_g_proxy_connect_signal): ditto
4993
4994 2005-02-04  Havoc Pennington  <hp@redhat.com>
4995
4996         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4997         bogus warning
4998         (tristring_from_message): assert cleanly on null path/interface
4999         (should not be possible though I decided later)
5000         (dbus_g_proxy_dispose): move proxy manager unregistration here
5001         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5002         g_return_if_fail() checks
5003
5004 2005-02-04  Havoc Pennington  <hp@redhat.com>
5005
5006         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5007
5008         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5009         (with some minor changes)
5010
5011         * doc/dbus-specification.xml: add deprecated attribute to
5012         introspection format
5013
5014 2005-01-31  Havoc Pennington  <hp@redhat.com>
5015
5016         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5017         think it's sort of right
5018
5019 2005-01-30  Havoc Pennington  <hp@redhat.com>
5020
5021         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5022
5023 2005-01-30  Havoc Pennington  <hp@redhat.com>
5024
5025         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5026
5027         * autogen.sh: change to autotools 1.9
5028
5029         * glib/dbus-gproxy.c: completely change how signals work
5030         (dbus_g_proxy_add_signal): new function to specify signature of a
5031         signal
5032         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5033         and g_warning if the incoming message has the wrong signature.
5034
5035 2005-01-30  Havoc Pennington  <hp@redhat.com>
5036
5037         * tools/dbus-names-model.c (have_names_notify): fix this
5038
5039         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5040         up the string array handling a bit 
5041
5042 2005-01-30  Havoc Pennington  <hp@redhat.com>
5043
5044         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5045         (dbus_g_pending_call_cancel): new function
5046
5047         * dbus/dbus-glib.h: move GType decls for connection/message here;
5048         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5049         here, just kind of rationalizing how we handle all that
5050
5051         * tools/dbus-names-model.c: new file for a tree model listing the
5052         services on a bus
5053
5054         * tools/dbus-tree-view.c (model_new): use proper typing on the
5055         model rows
5056
5057 2005-01-30  Havoc Pennington  <hp@redhat.com>
5058
5059         * glib/dbus-gmain.c: add a custom GSource back that just checks
5060         whether the message queue has anything in it; otherwise, there are 
5061         cases where we won't see messages in the queue since there was no 
5062         IO visible to the glib main loop
5063
5064         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5065         increase default message timeout to 25 seconds
5066
5067 2005-01-30  Havoc Pennington  <hp@redhat.com>
5068
5069         * test/glib/test-profile.c (no_bus_stop_server): remove the
5070         warning about the g_warning that I just fixed
5071
5072         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5073         custom source, seems to be a lot easier to understand and work
5074         better.
5075
5076 2005-01-30  Havoc Pennington  <hp@redhat.com>
5077
5078         I think this main loop thing is conceptually broken, but here are 
5079         some band aids. I'll maybe rewrite it in a minute.
5080         
5081         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5082         custom GSource, so don't pass it in; confusing
5083         (gsource_server_finalize, gsource_connection_finalize): add
5084         finalize handlers that remove all the watches.  
5085
5086 2005-01-30  Havoc Pennington  <hp@redhat.com>
5087
5088         * glib/dbus-gobject.c (introspect_properties): fix the XML
5089         generated
5090
5091         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5092         which effectively detects the use of freed messages
5093
5094         * glib/dbus-gobject.c (handle_introspect): modify and return the
5095         reply message instead of the incoming message
5096
5097         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5098         gee, maybe it should SEND THE XML instead of just making a string
5099         and freeing it again ;-)
5100
5101         * tools/dbus-print-message.c (print_message): improve printing of
5102         messages
5103
5104         * configure.in: add debug-glib.service to the output
5105
5106 2005-01-30  Havoc Pennington  <hp@redhat.com>
5107
5108         dbus-viewer introspected and displayed the bus driver
5109         
5110         * dbus/dbus-object-tree.c 
5111         (object_tree_test_iteration): add tests for a handler registered on "/"
5112
5113         * dbus/dbus-object-tree.c
5114         (_dbus_decompose_path): fix to handle path "/" properly
5115         (run_decompose_tests): add tests for path decomposition
5116         
5117         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5118         properly
5119
5120         * glib/dbus-gobject.c (handle_introspect): fix quotes
5121
5122         * test/glib/run-test.sh: support launching the bus, then running
5123         dbus-viewer
5124
5125         * test/glib/test-service-glib.c (main): put in a trivial gobject
5126         subclass and register it on the connection
5127
5128         * bus/driver.c (bus_driver_handle_introspect): implement
5129         introspection of the bus driver service
5130
5131         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5132         identifiers, doctype decl
5133
5134         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5135         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5136         returning the service unchanged.
5137         (bus_driver_handle_message): remove old check for reply_serial in
5138         method calls, now the message type deals with that
5139         (bus_driver_handle_message): handle NULL interface
5140
5141         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5142
5143         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5144         -1 for len
5145
5146         * tools/dbus-viewer.c: add support for introspecting a service on
5147         a bus
5148
5149         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5150         (dbus_g_pending_call_unref): add
5151
5152 2005-01-29  Havoc Pennington  <hp@redhat.com>
5153
5154         * tools/dbus-tree-view.c: add support for displaying properties.
5155         (run dbus-viewer with an introspect xml file as arg, then resize
5156         the window so the tree elements show up, not sure what that is)
5157
5158         * glib/dbus-gobject.c (handle_introspect): return
5159         org.freedesktop.Properties and org.freedesktop.Introspectable
5160         interfaces when we are introspected.
5161
5162         * doc/dbus-specification.xml: allow empty interface name when 
5163         Get/Set a property
5164
5165 2005-01-29  Havoc Pennington  <hp@redhat.com>
5166
5167         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5168         though it uses glib, it could be extended for any binding in
5169         principle
5170
5171         * glib/dbus-gobject.c (gobject_message_function): change to the
5172         new way properties work
5173
5174         * dbus/dbus-protocol.h: add the new interfaces
5175
5176         * doc/dbus-specification.xml: document the introspection format,
5177         Introspectable interface, and add an org.freedesktop.Properties
5178         interface.
5179
5180         * glib/dbus-gparser.c: add support for a <property> element
5181
5182         * glib/dbus-gidl.c: add PropertyInfo
5183
5184         * glib/dbus-gobject.c (handle_introspect): put the outermost
5185         <node> outside the signal and property descriptions.
5186         (introspect_properties): export properties as <property> rather
5187         than as method calls
5188
5189 2005-01-28  Havoc Pennington  <hp@redhat.com>
5190
5191         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5192         related to authentication protocol
5193
5194 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5195
5196         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5197                 - BUS_ACTIVATION -> BUS_STARTER
5198                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5199                 - class MessageIter (__init__): Added recursion checking 
5200                 so we throw a nice error instead of just disconnecting from the
5201                 bus.
5202                 (get): Added arg_type parameter for recursion.
5203                 Removed the nil type
5204                 Added signiture type placeholder (not implemented)
5205                 Added struct type placeholder (not implemented)
5206                 Added varient type placeholder (not implemented)
5207                 Commented out dict type for now     
5208                 (get_element_type): renamed from get_array_type
5209                 (get_*): changed to use the dbus_message_iter_get_basic API
5210                 (get_*_array): removed in favor of recursive get_array method
5211                 (get_array): new recursive method which calls get to marshal
5212                 the elements of the array
5213                 (value_to_dbus_sig): New method returns the corrasponding
5214                 dbus signiture to a python value
5215                 (append): Comment out dict handling for now
5216                 Handle lists with the new recursive API
5217                 Comment out None handling for now
5218                 (append_nil): removed
5219                 (append_*): changed to use dbus_message_iter_append_basic API
5220                 (append_*_array): removed in favor of recursive append_array 
5221                 method
5222                 (__str__): Make it easier to print out recursive iterators
5223                 for debugging
5224                 - class Message (__str__): moved type inspection to the
5225                 MessageIter class' __str__ method
5226                 (get_iter): Added an append parameter wich defaults to False
5227                 If True use the new API's to create an append iterator
5228
5229         * python/dbus.py: Update to use new bindings API
5230                 - TYPE_ACTIVATION -> TYPE_STARTER
5231                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5232                 - class ActivationBus -> class StarterBus
5233                 - class RemoteObject (__call__): get an append iterator
5234                 - (_dispatch_dbus_method_call): get an append iterator
5235                 - class Object (emit_signal): get an append iterator
5236
5237         * python/examples/: Fixed up the examples to work with the new API
5238                 
5239 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5240
5241         * configure.in: Bump version up to 0.30.
5242
5243         * HACKING: Add a release item to bump the version number up after 
5244         a release.
5245
5246 2005-01-28  Havoc Pennington  <hp@redhat.com>
5247
5248         * doc/dbus-specification.xml: update to describe 16-bit types and
5249         dict entries
5250
5251         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5252         assertion
5253
5254         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5255         type
5256
5257         * dbus/dbus-marshal-recursive.c: implement
5258
5259 2005-01-27  Havoc Pennington  <hp@redhat.com>
5260
5261         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5262
5263         * configure.in: find the right type for 16 and 32 bit ints as well
5264         as 64
5265
5266         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5267         the 16-bit types so people don't have to stuff them in 32-bit or
5268         byte arrays.
5269
5270 2005-01-27  Havoc Pennington  <hp@redhat.com>
5271
5272         * dbus/dbus-message.c: byteswap the message if you init an
5273         iterator to read/write from it
5274         
5275         * dbus/dbus-marshal-byteswap.c: new file implementing 
5276         _dbus_marshal_byteswap()
5277
5278         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5279
5280 2005-01-26  Havoc Pennington  <hp@redhat.com>
5281         
5282         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5283         build, apparently - nobody noticed?)
5284         
5285 2005-01-26  Havoc Pennington  <hp@redhat.com>
5286
5287         * dbus/dbus-marshal-recursive.h: remove todo comment
5288
5289 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5290
5291         * Land the mono binding changes to conform to the new APIs.
5292
5293         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5294         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5295
5296         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5297         type code as a string.
5298         (InitAppending): Rename dbus_message_append_iter_init() to
5299         dbus_message_iter_init_append().
5300
5301         * mono/BusDriver.cs: Rename ServiceEventHandler to
5302         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5303         Rename ServiceOwnerChanged to NameOwnerChanged.
5304
5305         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5306         underlying C call.
5307
5308         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5309
5310         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5311         dbus_bus_acquire_service() to dbus_bus_request_name().
5312
5313         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5314         of Type.UnderlyingSystemType to get the correct element type for
5315         the array.
5316         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5317         dbus_message_get_{element|arg}_type() instead of
5318         dbus_message_iter_init_array_iterator().
5319         (Append): Replace dbus_message_iter_append_array() with
5320         dbus_message_iter_open_container() and
5321         dbus_message_iter_close_container().
5322
5323         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5324         types have been removed.
5325         
5326         * mono/DBusType/*.cs: Replace calls of
5327         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5328         but specify the type in the DllImport extern declaration.  Ditto
5329         for dbus_message_iter_append_[type]() ->
5330         dbus_message_iter_append_basic().
5331
5332         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5333         NameOwnerChangedHandler.
5334
5335 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5336
5337         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5338                 - get_base_service -> get_unique_name
5339                 - bus_get_base_service -> bus_get_unique_name
5340                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5341                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5342                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5343                 - bus_activate_service -> bus_start_service_by_name
5344                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5345                 - bus_acquire_service -> bus_request_name
5346                 - dbus_bus_acquire_service -> dbus_bus_request_name
5347                 - bus_service_exists -> bus_name_has_owner
5348                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5349
5350         * python/dbus.py: Rename of methods
5351                 - activate_service -> start_service_by_name
5352                 - bus_acquire_service -> bus_request_name
5353                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5354                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5355
5356         
5357 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5358
5359         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5360         signature for the method that can't be found.
5361
5362         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5363         the message has any arguments, we need to call
5364         _dbus_type_reader_get_current_type(), not
5365         _dbus_type_reader_has_next().
5366
5367 2005-01-24  Havoc Pennington  <hp@redhat.com>
5368
5369         * dbus/dbus-message-factory.c: more testing of message validation
5370
5371         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5372         header
5373
5374 2005-01-23  Havoc Pennington  <hp@redhat.com>
5375
5376         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5377         get this all working, not many tests in the framework yet though
5378
5379 2005-01-22  Havoc Pennington  <hp@redhat.com>
5380
5381         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5382         tutorial, based on work from David Wheeler.
5383
5384 2005-01-21  Havoc Pennington  <hp@redhat.com>
5385
5386         * dbus/dbus-bus.c: add more return_if_fail checks
5387
5388         * dbus/dbus-message.c (load_message): have the "no validation"
5389         mode (have to edit the code to toggle the mode for now though)
5390
5391         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5392         skips all validation; I want to use this at least for benchmark
5393         baseline, I'm not sure if it should be a publicly-available switch.
5394
5395 2005-01-21  Havoc Pennington  <hp@redhat.com>
5396
5397         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5398         toplevel doxygen group as the low-level API stuff
5399
5400         * dbus/dbus.h: note that libdbus is the low-level API
5401
5402 2005-01-20  Havoc Pennington  <hp@redhat.com>
5403
5404         * update-dbus-docs.sh: script to update docs on the web site, only
5405         works for me though. neener.
5406
5407 2005-01-20  Havoc Pennington  <hp@redhat.com>
5408
5409         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5410         code can reveal bugs in it
5411
5412 2005-01-20  Havoc Pennington  <hp@redhat.com>
5413
5414         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5415         select() version, patches from Tor Lillqvist
5416
5417 2005-01-20  Havoc Pennington  <hp@redhat.com>
5418
5419         * doc/dbus-tutorial.xml: replace > with &gt;
5420
5421         * bus/services.c (bus_registry_acquire_service): validate the name
5422         and return a better error if it's no good.
5423
5424         * doc/dbus-specification.xml: note NO_AUTO_START change
5425
5426         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5427         from AUTO_START, we're toggling the default
5428
5429         * bus/dispatch.c: adapt the tests to change of auto-start default
5430
5431 2005-01-18  Havoc Pennington  <hp@redhat.com>
5432
5433         * rename dbus-daemon-1 to dbus-daemon throughout
5434
5435 2005-01-18  Havoc Pennington  <hp@redhat.com>
5436
5437         * Throughout, grand renaming to strip out the use of "service",
5438         just say "name" instead (or "bus name" when ambiguous).  Did not
5439         change the internal code of the message bus itself, only the
5440         programmer-facing API and messages.
5441         
5442         * doc/dbus-specification.xml: further update the message bus section
5443         
5444         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5445         in error case
5446
5447 2005-01-17  Havoc Pennington  <hp@redhat.com>
5448
5449         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5450         ever
5451
5452         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5453         "invalid name character" not only non-ASCII
5454
5455         * doc/dbus-specification.xml: further update spec, message bus 
5456         parts are still out-of-date but the marshaling etc. stuff is now
5457         accurate-ish
5458
5459 2005-01-17  Havoc Pennington  <hp@redhat.com>
5460
5461         * doc/dbus-specification.xml: partially update spec
5462
5463 2005-01-17  Havoc Pennington  <hp@redhat.com>
5464
5465         * Throughout, align variant bodies according to the contained
5466         type, rather than always to 8. Should save a fair bit of space in
5467         message headers.
5468         
5469         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5470         fix handling of case where p == end
5471
5472         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5473
5474 2005-01-17  Havoc Pennington  <hp@redhat.com>
5475
5476         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5477
5478         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5479         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5480         are marshaling/unmarshaling a boolean.
5481
5482 2005-01-16  Havoc Pennington  <hp@redhat.com>
5483
5484         This is about it on what can be disabled/deleted from libdbus
5485         easily, back below 150K anyhow. Deeper cuts are more work than 
5486         just turning the code off as I've done here.
5487         
5488         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5489         signed int convenience funcs
5490
5491         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5492         verbose mode
5493
5494         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5495         things out of libdbus
5496
5497         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5498         
5499         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5500         tests-enabled-only, though it should probably be deleted)
5501
5502         * dbus/dbus-message-util.c: same stuff
5503
5504         * dbus/dbus-auth-util.c: same stuff
5505
5506 2005-01-16  Havoc Pennington  <hp@redhat.com>
5507
5508         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5509
5510         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5511         way for stripping down dbus-userdb.c stuff included in libdbus.
5512         Rename _dbus_parse_uid for consistency.
5513
5514 2005-01-16  Havoc Pennington  <hp@redhat.com>
5515
5516         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5517         name the assertion failed in
5518
5519         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5520         (_dbus_return_val_if_fail): assert that the name of the function
5521         containing the check doesn't start with '_', since we only want to 
5522         use checks on public functions
5523         
5524         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5525         checks to assertions
5526
5527         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5528         change checks to asserts for private function
5529
5530         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5531         to asserts for private function
5532
5533         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5534         broken assertion that was breaking make check
5535         (_dbus_type_reader_array_is_empty): remove this rather than fix
5536         it, was only used in assertions
5537
5538 2005-01-16  Havoc Pennington  <hp@redhat.com>
5539
5540         * test/unused-code-gc.py: hacky script to find code that's used
5541         only by the bus (not libdbus) or used only by tests or not used at
5542         all. It has some false alarms, but looks like we can clean up a
5543         lot of size from libdbus.
5544
5545         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5546         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5547         
5548 2005-01-16  Havoc Pennington  <hp@redhat.com>
5549
5550         * Add and fix docs according to Doxygen warnings throughout
5551         source.
5552         
5553         * dbus/dbus-marshal-recursive.c
5554         (_dbus_type_reader_array_is_empty): change this to just call
5555         array_reader_get_array_len() and make it static
5556
5557         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5558         from get_array_type
5559         (dbus_message_iter_init_append): rename from append_iter_init
5560
5561         * dbus/dbus-marshal-recursive.c
5562         (_dbus_type_reader_get_element_type): rename from
5563         _dbus_type_reader_get_array_type
5564
5565 2005-01-15  Havoc Pennington  <hp@redhat.com>
5566
5567         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5568
5569         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5570         when DBUS_DISABLE_ASSERT
5571         (_dbus_marshal_set_basic): be sure we align for the string length
5572
5573         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5574         this look faster
5575
5576         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5577         inline macro version
5578         (_dbus_string_set_byte): provide inline macro version
5579
5580 2005-01-15  Havoc Pennington  <hp@redhat.com>
5581
5582         * Land the new message args API and type system.
5583
5584         This patch is huge, but the public API change is not 
5585         really large. The set of D-BUS types has changed somewhat, 
5586         and the arg "getters" are more geared toward language bindings;
5587         they don't make a copy, etc.
5588
5589         There are also some known issues. See these emails for details
5590         on this huge patch:
5591         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5592         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5593         
5594         * dbus/dbus-marshal-*: all the new stuff
5595
5596         * dbus/dbus-message.c: basically rewritten
5597
5598         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5599         freed blocks to be all non-nul bytes so using freed memory is less
5600         likely to work right
5601
5602         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5603         DBUS_FAIL_MALLOC=N environment variable, so you can do
5604         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5605         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5606         thorough.
5607
5608         * qt/message.cpp: port to the new message args API
5609         (operator<<): use str.utf8() rather than str.unicode()
5610         (pretty sure this is right from the Qt docs?)
5611
5612         * glib/dbus-gvalue.c: port to the new message args API
5613
5614         * bus/dispatch.c, bus/driver.c: port to the new message args API
5615
5616         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5617         "locked" flag to TRUE and align_offset to 0; I guess we never
5618         looked at these anyhow, but seems cleaner.
5619
5620         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5621         move allocation padding macro to this header; use it to implement
5622         (_DBUS_STRING_STATIC): ability to declare a static string.
5623
5624         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5625         change to return TRUE if the interface is not set.
5626
5627         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5628         to dbus-marshal-validate.[hc]
5629
5630         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5631         dbus-internals.c
5632
5633         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5634         to dbus-marshal-*.[hc]
5635
5636         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5637         function here from dbus-marshal.c
5638
5639 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5640
5641         * NEWS: Update for 0.23.
5642
5643         * configure.in: Release 0.23.
5644
5645 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5646
5647         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5648         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5649         behind.
5650
5651         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5652         uninstall"
5653
5654         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5655         is an enum, get the enum's underlying type.  Another mono
5656         1.1.3 fix.
5657
5658 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5659
5660         Patch from Sjoerd Simons <sjoerd@luon.net>
5661
5662         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5663         DESTDIR.  It breaks stuff.
5664
5665 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5666
5667         Patch from Tambet Ingo <tambet@ximian.com>
5668
5669         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5670         calling type.GetElementType().  The code previously depended on
5671         broken Mono behavior, which was fixed in Mono 1.1.3.
5672
5673         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5674         Activator.CreateInstance() so that the class's constructor is
5675         called with the right parameters.
5676
5677 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5678
5679         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5680
5681         * dbus/dbus-connection.c
5682         (_dbus_connection_queue_received_message_link): Call
5683         _dbus_connection_remove_timeout() instead of the _locked()
5684         variant, since it's always called from
5685         _dbus_connection_handle_watch(), which handles the locking.
5686         Removed the _locked() variant since it's no longer used.
5687
5688 2005-01-03  Havoc Pennington  <hp@redhat.com>
5689
5690         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5691         return
5692         
5693 2004-12-26  Havoc Pennington  <hp@redhat.com>
5694
5695         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5696
5697 2005-01-03  Havoc Pennington  <hp@redhat.com>
5698
5699         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5700         floating point
5701
5702         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5703
5704 2005-01-02  Havoc Pennington  <hp@redhat.com>
5705
5706         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5707
5708 2005-01-01  Havoc Pennington  <hp@redhat.com>
5709
5710         * configure.in: add -Wfloat-equal
5711
5712 2005-01-01  Havoc Pennington  <hp@redhat.com>
5713
5714         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
5715         for a variety of reasons '==' doesn't do this.
5716
5717 2004-12-31  Havoc Pennington  <hp@redhat.com>
5718
5719         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5720         I keep wishing I had
5721
5722 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5723
5724         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5725
5726 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
5727
5728         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5729         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5730         dbus-protocol.h.  Because they are defines and not enums they are not
5731         autogenerated.
5732
5733 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
5734
5735         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5736         dbus_bus_activate_service
5737
5738         * python/dbus.py (Bus.activate_service): activate a service on the
5739         bus.
5740
5741 2004-12-24  Havoc Pennington  <hp@redhat.com>
5742
5743         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5744         file format has also changed and I haven't adapted to that yet
5745         
5746         * Makefile.am: load .gcno files from latest gcc
5747
5748 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
5749         * Patch from Rob Taylor <robtaylor@fastmail.fm>
5750
5751         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5752         lowlevel binding
5753
5754         * python/dbus.py (get_unix_user): Added binding to 
5755         call dbus_bindings.bus_get_unix_user
5756
5757         * python/extract.py: Modified the proto_pat regex to
5758         handle unsigned long
5759
5760 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
5761
5762         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5763         better POSIX compliance.
5764
5765 2004-12-19  Havoc Pennington  <hp@redhat.com>
5766
5767         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
5768         (_dbus_string_insert_8_aligned): new functions
5769
5770         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5771
5772 2004-12-18  Havoc Pennington  <hp@redhat.com>
5773
5774         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5775         macro
5776
5777         * dbus/dbus-message.c: fix a comment, and add a still-unused
5778         not-implemented function
5779
5780         * dbus/dbus-marshal.h: fix comment
5781
5782         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5783
5784 2004-12-17  Joe Shaw  <joeshaw@novell.com>
5785
5786         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5787         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5788         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5789         Type.UnderlyingSystemType to get the actual system type
5790         underneath.  This code previously depended on the broken Mono
5791         behavior, which was fixed in 1.1.3.
5792
5793 2004-11-27  Havoc Pennington  <hp@redhat.com>
5794
5795         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5796         are disabled
5797         (_dbus_string_get_const_data): inline when asserts are disabled
5798
5799         * dbus/dbus-message.c: record the _dbus_current_generation of
5800         creation so we can complain if dbus_shutdown() is used improperly.
5801         Do this only if checks are enabled.
5802
5803         * dbus/dbus-connection.c: ditto
5804         
5805 2004-11-26  Havoc Pennington  <hp@redhat.com>
5806
5807         * test/glib/test-profile.c: add with_bus mode to profile echoes
5808         that go through the bus.
5809
5810         * test/glib/run-test.sh: add ability to run test-profile
5811
5812         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5813         config file reload.
5814
5815 2004-11-26  Havoc Pennington  <hp@redhat.com>
5816
5817         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5818         thing was implemented
5819
5820 2004-11-26  Havoc Pennington  <hp@redhat.com>
5821
5822         * test/glib/test-profile.c: tweak a bit, add support for some
5823         made-up minimal malloc overhead with plain sockets, since in 
5824         real life some sort of buffers are unavoidable thus we could 
5825         count them in the theoretical best case
5826
5827 2004-11-26  Havoc Pennington  <hp@redhat.com>
5828
5829         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5830         where I was trying to cache one too many messages
5831
5832 2004-11-26  Havoc Pennington  <hp@redhat.com>
5833
5834         * dbus/dbus-message.c: reimplement message cache as an array which 
5835         makes the cache about twice as fast and saves maybe 1.5% overall
5836
5837 2004-11-26  Havoc Pennington  <hp@redhat.com>
5838
5839         * dbus/dbus-threads.c (init_global_locks): forgot to put the
5840         message cache lock here
5841
5842 2004-11-26  Havoc Pennington  <hp@redhat.com>
5843
5844         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5845         the "char byte_order" next to each other to save 4 bytes
5846         (dbus_message_new_empty_header): reduce preallocation, since the
5847         message cache should achieve a similar effect
5848         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5849         message cache that keeps a few DBusMessage around in a pool,
5850         another 8% speedup or so.
5851
5852         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5853
5854 2004-11-25  Havoc Pennington  <hp@redhat.com>
5855
5856         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5857         to write, without reading or blocking, try it before the poll()
5858         and skip the poll() if nothing remains to write. This is about a
5859         3% speedup in the echo client/server
5860
5861 2004-11-25  Havoc Pennington  <hp@redhat.com>
5862
5863         The primary change here is to always write() once before adding
5864         the write watch, which gives us about a 10% performance increase.
5865         
5866         * dbus/dbus-transport-unix.c: a number of modifications to cope
5867         with removing messages_pending
5868         (check_write_watch): properly handle
5869         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5870         messages_pending stuff
5871         (check_read_watch): properly handle WAITING_FOR_MEMORY and
5872         AUTHENTICATED cases
5873         (unix_handle_watch): after writing, see if the write watch can be
5874         removed
5875         (unix_do_iteration): assert that write_watch/read_watch are
5876         non-NULL rather than testing that they aren't, since they 
5877         aren't allowed to be NULL. check_write_watch() at the end so 
5878         we add the watch if we did not finish writing (e.g. got EAGAIN)
5879
5880         * dbus/dbus-transport-protected.h: remove messages_pending call,
5881         since it resulted in too much inefficient watch adding/removing; 
5882         instead we now require that the transport user does an iteration 
5883         after queueing outgoing messages, and after trying the first
5884         write() we add a write watch if we got EAGAIN or exceeded our 
5885         max bytes to write per iteration setting
5886
5887         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5888         function
5889
5890         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5891         freed and then accessed, valgrind flagged this bug, fix it
5892
5893         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5894         as the last valid field plus 1, where really it is equal to the
5895         last valid field. Corrects some message corruption issues.
5896
5897         * dbus/dbus-mainloop.c: verbosity changes
5898
5899         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5900         instead of aborting in one of the test codepaths
5901
5902         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5903         caused not printing the pid ever again if a verbose was missing
5904         the newline at the end
5905         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5906
5907         * dbus/dbus-connection.c: verbosity changes; 
5908         (dbus_connection_has_messages_to_send): new function
5909         (_dbus_connection_message_sent): no longer call transport->messages_pending
5910         (_dbus_connection_send_preallocated_unlocked): do one iteration to
5911         try to write() immediately, so we can avoid the write watch. This
5912         is the core purpose of this patchset
5913         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5914         dump the outgoing message queue, so nobody will get confused
5915         trying to send them or thinking stuff is pending to be sent
5916
5917         * bus/test.c: verbosity changes
5918
5919         * bus/driver.c: verbosity/assertion changes
5920
5921         * bus/dispatch.c: a bunch of little tweaks to get it working again
5922         because this patchset changes when/where you need to block.
5923
5924 2004-11-23  Havoc Pennington  <hp@redhat.com>
5925
5926         * test/glib/test-profile.c: modify to accept a plain_sockets
5927         argument in which case it will bench plain sockets instead of
5928         libdbus, for comparison purposes.
5929
5930 2004-11-22  Havoc Pennington  <hp@redhat.com>
5931
5932         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5933         threads for more time, so sysprof can get a grip on it.
5934
5935         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5936         pointless variable
5937
5938 2004-11-13  Havoc Pennington  <hp@redhat.com>
5939
5940         * test/glib/test-profile.c: fix this thing up a bit
5941
5942         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5943         preallocation sizes by a fair bit; not sure if this will be an
5944         overall performance win or not, but it does reduce reallocs.
5945
5946         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5947         the test hack that forced constant realloc if asserts are
5948         disabled, so we can profile sanely. Sprinkle in some
5949         _DBUS_UNLIKELY() which are probably pointless, but before I
5950         noticed the real performance problem I put them in.
5951         (_dbus_string_validate_utf8): micro-optimize this thing a little
5952         bit, though callgrind says it didn't help; then special-case
5953         ascii, which did help a lot; then be sure we detect nul bytes as
5954         invalid, which is a bugfix.
5955         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5956         superstition; use memset to nul the padding instead of a manual
5957         loop.
5958         (_dbus_string_get_length): inline this as a
5959         macro; it showed up in the profile because it's used for loop
5960         tests and so forth
5961
5962 2004-11-10  Colin Walters  <walters@verbum.org>
5963
5964         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5965         for extra paranoia.
5966
5967 2004-11-09  Colin Walters  <walters@verbum.org>
5968
5969         * dbus/dbus-string.c (_dbus_string_get_length): New
5970         function, writes DBusString to C buffer.
5971
5972         * dbus/dbus-string.h: Prototype it.
5973
5974         * dbus/dbus-message.c (dbus_message_type_to_string): New
5975         function, converts message type into C string.
5976
5977         * dbus/dbus-message.h: Prototype it.
5978
5979         * bus/selinux.c (bus_selinux_check): Take source pid,
5980         target pid, and audit data.  Pass audit data to
5981         avc_has_perm.
5982         (log_audit_callback): New function, appends extra
5983         audit information.
5984         (bus_selinux_allows_acquire_service): Also take
5985         service name, add it to audit data.
5986         (bus_selinux_allows_send): Also take message
5987         type, interface, method member, error name,
5988         and destination, and add them to audit data.
5989         (log_cb): Initialize func_audit.
5990         
5991         * bus/selinux.h (bus_selinux_allows_acquire_service)
5992         (bus_selinux_allows_send): Update prototypes 
5993
5994         * bus/services.c (bus_registry_acquire_service): Pass
5995         service name to bus_selinux_allows_acquire_service.
5996
5997         * bus/bus.c (bus_context_check_security_policy): Pass
5998         additional audit data.  Move assignment of dest
5999         to its own line.
6000
6001 2004-11-07  Colin Walters  <walters@verbum.org>
6002
6003         * dbus/dbus-transport-unix.c (do_authentication): Always
6004         initialize auth_completed.
6005         
6006 2004-11-07  Colin Walters  <walters@verbum.org>
6007
6008         * bus/bus.c (load_config): Break into three
6009         separate functions: process_config_first_time_only,
6010         process_config_every_time, and process_config_postinit.
6011         (process_config_every_time): Move call of
6012         bus_registry_set_service_context_table into
6013         process_config_postinit.
6014         (process_config_postinit): New function, does
6015         any processing that needs to happen late
6016         in initialization (and also on reload).
6017         (bus_context_new): Instead of calling load_config,
6018         open config parser here and call process_config_first_time_only
6019         and process_config_every_time directly.  Later, after
6020         we have forked but before changing UID,
6021         invoke bus_selinux_full_init, and then call
6022         process_config_postinit.
6023         (bus_context_reload_config): As in bus_context_new,
6024         load parse file inside here, and call process_config_every_time
6025         and process_config_postinit.
6026
6027         * bus/services.h, bus/services.c
6028         (bus_registry_set_service_context_table): Rename
6029         from bus_registry_set_sid_table.  Take string hash from config
6030         parser, and convert them here into SIDs.
6031
6032         * bus/config-parser.c (struct BusConfigParser): Have
6033         config parser only store a mapping of service->context
6034         string.
6035         (merge_service_context_hash): New function.
6036         (merge_included): Merge context string hashes instead
6037         of using bus_selinux_id_table_union.
6038         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6039         simply create a new string hash.
6040         (bus_config_parser_unref): Unref it.
6041         (start_selinux_child): Simply insert strings into hash,
6042         don't call bus_selinux_id_table_copy_over.
6043
6044         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6045         (bus_selinux_id_table_copy_over): Delete.
6046
6047 2004-11-03  Colin Walters  <walters@verbum.org>
6048
6049         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6050         variables.
6051         
6052 2004-11-03  Colin Walters  <walters@verbum.org>
6053
6054         * bus/test-main.c (test_pre_hook): Fix test logic,
6055         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6056
6057 2004-11-02  Colin Walters  <walters@redhat.com>
6058
6059         * bus/selinux.c (bus_selinux_init): Split into two functions,
6060         bus_selinux_pre_init and bus_selinux_post_init.
6061         (bus_selinux_pre_init): Just determine whether SELinux is
6062         enabled.
6063         (bus_selinux_post_init): Do everything else.
6064
6065         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6066         config file, and bus_selinux_post_init after.  This ensures that
6067         we don't lose the policyreload notification thread that
6068         bus_selinux_init created before forking previously.
6069         
6070         * bus/test-main.c (test_pre_hook): Update for split.
6071
6072 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6073
6074         Patch from Johan Fischer <linux@fischaz.com>
6075         
6076         * mono/doc/Makefile.am (install-data-local): Added directory
6077         install for DESTDIR
6078
6079 2004-10-29  Colin Walters  <walters@redhat.com>
6080
6081         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6082         parameter for fd to write pid to.       
6083
6084         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6085         
6086         * bus/bus.c (bus_context_new): Pass print_pid_fd
6087         to _dbus_become_daemon (bug #1720)
6088
6089 2004-10-29  Colin Walters  <walters@redhat.com>
6090
6091         Patch from Ed Catmur <ed@catmur.co.uk>
6092
6093         * mono/doc/Makefile.am (install-data-local): Handle
6094         DESTDIR.
6095
6096 2004-10-29  Colin Walters  <walters@redhat.com>
6097
6098         * bus/.cvsignore, qt/.cvsignore: Update.
6099
6100 2004-10-29  Colin Walters  <walters@redhat.com>
6101
6102         Patch from Kristof Vansant <de_lupus@pandora.be>
6103
6104         * configure.in: Detect Slackware.
6105         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6106         * bus/rc.messagebus.in: New file.
6107
6108 2004-10-29  Colin Walters  <walters@redhat.com>
6109
6110         * tools/dbus-monitor.c (filter_func): Return
6111         DBUS_HANDLER_RESULT_HANDLED in filter function
6112         for now.  See:
6113         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6114
6115 2004-10-29  Colin Walters  <walters@redhat.com>
6116
6117         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6118
6119         * bus/services.c (bus_registry_acquire_service): 
6120         Correctly retrieve service name from DBusString
6121         for printing.
6122
6123 2004-10-29  Colin Walters  <walters@redhat.com>
6124
6125         * dbus/dbus-glib.h: Update documentation to not
6126         refer to internal APIs.
6127
6128 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6129
6130         * mono/Arguments.cs (GetDBusTypeConstructor):
6131         type.UnderlyingSystemType will return "System.Byte" if you do it
6132         on "byte[]", which is not what we want.  So check the type.IsArray
6133         property and use System.Array instead.
6134
6135 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6136
6137         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6138         the DBusUserInfo structure since this is passed into the function.
6139         This would cause a double free when the function that allocated
6140         the structure would try to free it when an error occured.
6141
6142         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6143         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6144         for service activation to avoid 32bit/64bit parallel install issues
6145
6146 2004-10-21  Colin Walters  <walters@verbum.org>
6147
6148         * AUTHORS: Fix my email address, the @gnu.org one
6149         has been bouncing for some time.  Also add J5.
6150         
6151 2004-10-21  Colin Walters  <walters@verbum.org>
6152
6153         * dbus/dbus-transport-unix.c (do_authentication): Return
6154         authentication status to callers.
6155         (unix_handle_watch): If we completed authentication this round,
6156         don't do another read.  Instead wait until the next iteration,
6157         after we've read any pending data in the auth buffer.
6158         (unix_do_iteration): Ditto.
6159         (unix_handle_watch): Updated for new do_authentication prototype.
6160
6161 2004-10-18  Colin Walters  <walters@verbum.org>
6162
6163         * bus/selinux.c (bus_selinux_enabled): Handle
6164         --disable-selinux case.
6165         
6166 2004-10-18  Colin Walters  <walters@verbum.org>
6167
6168         * bus/selinux.h: Add bus_selinux_enabled.
6169         
6170         * bus/selinux.c (bus_selinux_enabled): Implement it.
6171         
6172         * bus/config-parser.c (struct include): Add
6173         if_selinux_enabled member.
6174         (start_busconfig_child): Parse if_selinux_enabled
6175         attribute for include.
6176         (bus_config_parser_content): Handle it.
6177
6178         * bus/session.conf.in, bus/system.conf.in: Add
6179         inclusion of context mapping to default config files;
6180         conditional on SELinux being enabled.
6181         
6182         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6183         
6184         * test/data/invalid-config-files/badselinux-1.conf, 
6185         test/data/invalid-config-files/badselinux-2.conf:
6186         Test files for bad syntax.
6187         
6188 2004-10-17  Colin Walters  <walters@verbum.org>
6189
6190         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6191         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6192         format specifier mismatches.
6193
6194 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6195
6196         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6197         format string.
6198
6199         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6200         pointer (bug #1540, Leonardo Boiko).
6201
6202 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6203
6204         * mono/BusDriver.cs: Changed BusDriver struct to remove
6205         the ServiceCreated and ServiceDeleted events and replace them
6206         with the new ServiceOwnerChanged event.
6207
6208         * mono/example/BusListener.cs: Added a new example program,
6209         which listens for and reports any ServiceOwnerChanged events
6210         on the bus driver.
6211
6212         * mono/example/Makefile.am (DESTDIR): Build changes for the
6213         new BusListener.cs example.
6214
6215 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6216
6217         * bus/signals.c (bus_match_rule_parse): validate the components of
6218         match rules (bug #1439).
6219
6220         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6221
6222 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6223
6224         * doc/dbus-specification.xml: document ServiceOwnerChanged
6225         signal.
6226         
6227         * bus/driver.c, bus/driver.h, bus/services.c: Use
6228         ServiceOwnerChanged signal instead of ServiceCreated and
6229         ServiceDeleted.
6230         
6231         * bus/dispatch.c: update testcase for the new signal.
6232
6233 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6234
6235         Patch from Nat Friedman <nat@novell.com>
6236
6237         * mono/Makefile.am: A number of small build fixes to allow "make
6238         distcheck" to succeed.
6239
6240         * mono/example/Makefile.am: "make distcheck" fixes.
6241
6242         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6243         key in @srcdir@.
6244
6245         * test/Makefile.am: "make distcheck" fixes.
6246
6247 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6248
6249         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6250
6251         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6252
6253         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6254         messages after the first one (bug #1389).
6255         
6256         * bus/dispatch.c (check_double_hello_message): add a test case for
6257         the double hello message bug.
6258         (check_existent_service_activation): fix check of spawning error.
6259         
6260 2004-09-16  David Zeuthen  <david@fubar.dk>
6261
6262         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6263
6264 2004-09-12  David Zeuthen  <david@fubar.dk>
6265
6266         Patch from Kay Sievers <kay.sievers@vrfy.org>
6267
6268         * bus/bus.c (bus_context_new):
6269         * bus/bus.h:
6270         * bus/main.c (usage)
6271         (main):
6272         Add commandline option --nofork to override configuration file
6273         setting.
6274
6275 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6276
6277         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6278         compilers don't like it (bug #974).
6279
6280 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6281
6282         * qt/connection.*: Applied patch by Jérôme Lodewyck
6283         <lodewyck@clipper.ens.fr> to integrate an existing
6284         connection into the Qt eventloop
6285
6286 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6287
6288         * mono/BusDriver.cs: Added.  This is a class for interacting with
6289         the org.freedesktop.DBus service.
6290
6291         * mono/Message.cs: Added a mechanism to expose the message that is
6292         currently being dispatched via the static Message.Current
6293         property.  Added Message.Sender and Message.Destination
6294         properties.
6295
6296         * mono/Handler.cs: Expose the dispatched message via
6297         Message.Current when handling method calls.
6298
6299         * mono/Service.cs: Expose the dispatched message via
6300         Message.Current when handling signal emissions.
6301         
6302         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6303         Connection.BaseService property.
6304
6305 2004-08-28  Havoc Pennington  <hp@redhat.com>
6306
6307         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6308
6309         More fixes from Steve Grubb
6310         
6311         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6312         (_dbus_listen_tcp_socket): fix fd leak
6313
6314         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6315         EINTR to a bit lower in the code
6316
6317 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6318
6319         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6320         TRUE if we are inquiring about the existence of the built-in
6321         org.freedesktop.DBus service.
6322
6323 2004-08-25  John Palmieri  <johnp@redhat.com>
6324         * bus/config-parser.c:
6325         (struct PolicyType): Add POLICY_CONSOLE
6326         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6327         (start_busconfig_child): Sets up console element when
6328         <policy at_console=""> is encountered in a policy file
6329         (append_rule_from_element): Convert console elements to console
6330         rules.
6331
6332         * bus/policy.c: 
6333         (bus_policy_create_client_policy): Add console rules to the client
6334         policy based on if the client is at the console
6335         (bus_policy_append_console_rule): New function for adding a
6336         console rule to a policy
6337         (bus_policy_merge): Handle console rule merging
6338
6339         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6340         where we check for console user files
6341         
6342         * dbus/dbus-sysdeps.c:
6343         (_dbus_file_exists): New function which checks if the given
6344         file exists
6345         (_dbus_user_at_console): New function which does the system
6346         specific process of checking if the user is at the console
6347
6348         * dbus/dbus-userdb.c:
6349         (_dbus_is_console_user): New function converts a UID to user name
6350         and then calls the system specific _dbus_user_at_console to 
6351         see if the user is at the console and therefor a console user
6352
6353 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6354
6355         * bus/config-parser.c (set_limit):
6356         * bus/dbus-daemon-1.1.in:
6357         * test/data/valid-config-files/many-rules.conf: set the
6358         max_match_rules_per_connection limt from the config file. 
6359
6360         * doc/busconfig.dtd: update the DTD.
6361
6362         * bus/driver.c: remove some unused variables.
6363
6364 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6365
6366         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6367         it's been replaced by dbus_g_bus_get
6368
6369 2004-08-23  Colin Walters  <walters@redhat.com>
6370
6371         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6372
6373         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6374
6375         * bus/selinux.c: Create a thread for policy reload notification.
6376         (bus_selinux_get_policy_root): Implement.
6377
6378         * bus/config-parser.c (start_busconfig_child)
6379         (bus_config_parser_content): Support SELinux-root relative
6380         inclusion.
6381
6382         * configure.in <HAVE_SELINUX>: Add -lpthread.
6383         
6384         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6385         (test_post_hook): Move memory checking into here.
6386         (test_pre_hook, test_post_hook): Move SELinux checks in
6387         here, but conditional on a DBUS_TEST_SELINUX environment
6388         variable.  Unfortunately we can't run the SELinux checks
6389         as a normal user, since they won't have any permissions
6390         for /selinux.  So this will have to be tested manually
6391         for now, until we have virtualization for most of
6392         libselinux.
6393         
6394 2004-08-23  Havoc Pennington  <hp@redhat.com>
6395
6396         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6397         drop supplementary groups, suggested by Steve Grubb
6398
6399 2004-08-20  Colin Walters  <walters@redhat.com>
6400
6401         * bus/config-parser.c (start_busconfig_child): Remove some unused
6402         variables.
6403         
6404         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6405         warning.
6406
6407 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6408
6409         * configure.in: If --enable-mono is passed in, if we can't find
6410         mono error out.
6411
6412         * mono/Makefile.am: Use /gacutil to install assemblies into the
6413         GAC and not /root.
6414
6415 2004-08-12  Havoc Pennington  <hp@redhat.com>
6416
6417         * NEWS: update for 0.22
6418
6419         * configure.in: release 0.22
6420
6421 2004-08-11  Colin Walters  <walters@redhat.com>
6422
6423         * tools/dbus-send.c (main, usage): Add --reply-timeout
6424         argument.
6425
6426 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6427
6428         * bus/bus.c (process_config_first_time_only): get rid of an unused
6429         DBusError that was causing a memoy leak (bug #989).
6430
6431         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6432         fix compilation on Solaris/Forte C (bug #974)
6433
6434         * bus/main.c (main): plug two minuscule memleaks.
6435
6436 2004-08-10  Havoc Pennington  <hp@redhat.com>
6437
6438         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6439
6440 2004-08-09  Havoc Pennington  <hp@redhat.com>
6441
6442         * COPYING: switch to Academic Free License version 2.1 instead of
6443         2.0, to resolve complaints about patent termination clause.
6444
6445 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6446
6447         * README: added documentation for the --enable-python 
6448         configure switch.
6449
6450 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6451
6452         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6453         _unref in the SELinux support.
6454
6455         * doc/busconfig.dtd: update DTD for SELinux support.
6456
6457         * bus/config-loader-libxml.c: fix error handler and parser
6458         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6459
6460         * configure.in: remove the warning about libxml2.
6461
6462         * dbus/dbus-bus.c: silence doxygen warning.
6463
6464 2004-07-31  Colin Walters  <walters@redhat.com>
6465
6466         * configure.in: Move #error in SELinux check to its own line.
6467
6468 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6469
6470         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6471         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6472         dbus_error_set.
6473
6474         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6475         broken by the change in the _SET_OOM macros.
6476
6477 2004-07-31  Colin Walters  <walters@redhat.com>
6478
6479         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6480         BUS_SET_OOM.
6481
6482 2004-07-31  Colin Walters  <walters@redhat.com>
6483
6484         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6485         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6486         AC_MSG_CHECKING.
6487
6488 2004-07-24  Havoc Pennington  <hp@redhat.com>
6489
6490         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6491
6492         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6493         functionality
6494
6495         * configure.in: add --enable-selinux
6496         
6497         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6498
6499         * bus/main.c (main): initialize and shut down selinux
6500
6501         * bus/connection.c: store SELinux ID on each connection, to avoid 
6502         repeated getting of the string context and converting it into 
6503         an ID
6504
6505         * bus/bus.c (bus_context_get_policy): new accessor, though it
6506         isn't used
6507         (bus_context_check_security_policy): check whether the security
6508         context of sender connection can send to the security context of
6509         recipient connection
6510
6511         * bus/config-parser.c: add parsing for <selinux> and <associate>
6512         
6513         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6514         implement dbus_connection_get_unix_fd()
6515
6516         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6517         function, used by the selinux stuff
6518         
6519 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6520
6521         * bus/config-loader-libxml.c: complete the implementation of
6522         libxml backend for config file loader. Doesn't work with full OOM
6523         test yet. 
6524         
6525         * configure.in: change error when selecting libxml into a warning.
6526         
6527         * test/data/invalid-config-files: add two non-well-formed XML
6528         files. 
6529         
6530         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6531         
6532         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6533         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6534         be necessary to read all the buffer. (bug #894)
6535
6536         * bus/activation.c (bus_activation_activate_service): fix a
6537         potential assertion failure (bug #896). Small optimization in the
6538         case of auto-activation messages.
6539
6540         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6541         add test case for byte-through-vararg bug (#901). patch by Kimmo
6542         Hämäläinen. 
6543
6544 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6545
6546         * python/dbus.py:
6547         * python/dbus_bindings.pyx.in:
6548         Add dbus.init_gthreads (), allow emit_signal to pass
6549         arguments to the signal.
6550         
6551 2004-07-24  Havoc Pennington  <hp@redhat.com>
6552
6553         * AUTHORS: add some people, not really comprehensively, let me
6554         know if I missed you
6555
6556 2004-07-24  Havoc Pennington  <hp@redhat.com>
6557
6558         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6559         Owen
6560
6561         * test/Makefile.am (DIST_SUBDIRS): here also
6562
6563 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6564
6565         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6566         breaking build on Solaris, reported by Farhad Saberi on the ML.
6567
6568         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6569         va_arg invocation to account for integer promotion in the case of
6570         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6571
6572         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6573         _dbus_list_get_first_link, not _dbus_list_get_first.
6574
6575         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6576
6577         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6578         handler functions so that the asserts in _dbus_object_subtree_unref
6579         do not fail.
6580
6581         * dbus/dbus-transport-unix.c (do_reading):
6582         _dbus_transport_queue_messages return value is of type
6583         dbus_bool_t, not DBusDispatchStatus.
6584         
6585 2004-07-19  David Zeuthen  <david@fubar.dk>
6586
6587         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6588
6589         * bus/dispatch.c:
6590         (check_get_connection_unix_user): Debug says GetProperty; but the
6591         method is called GetConnectionUnixUser
6592         (check_get_connection_unix_process_id): New function
6593         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6594         also call check_get_connection_unix_process_id()
6595         
6596         * bus/driver.c:
6597         (bus_driver_handle_get_connection_unix_process_id): New function,
6598         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6599         interface
6600         
6601         * dbus/dbus-auth.c:
6602         (handle_server_data_external_mech): Set pid from the credentials
6603         obtained from the socket
6604         
6605         * dbus/dbus-connection.c:
6606         (dbus_connection_get_unix_process_id): New function
6607         
6608         * dbus/dbus-connection.h: 
6609         Add prototype for dbus_connection_get_unix_process_id
6610         
6611         * dbus/dbus-transport.c:
6612         (_dbus_transport_get_unix_process_id): New function
6613         
6614         * dbus/dbus-transport.h:
6615         Add prototype for _dbus_transport_get_unix_process_id
6616         
6617 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6618
6619         * dbus/dbus-message.c: Message counter fix, patch by Christian
6620         Hammond <chipx86@gnupdate.org>
6621
6622 2004-07-18  Seth Nickell  <seth@gnome.org>
6623
6624         * python/dbus.py:
6625         * python/dbus_bindings.pyx.in:
6626         * python/tests/test-client.py:
6627
6628         Add dbus.ByteArray and dbus_bindings.ByteArray
6629         types so that byte streams can be passed back.
6630
6631         Give jdahlin the heaps of credit that are so
6632         rightfully his.
6633         
6634 2004-07-12  Seth Nickell  <seth@gnome.org>
6635
6636         * python/dbus.py:
6637
6638         Add message argument to the default object_method_handler
6639         function.
6640         
6641         * python/dbus_bindings.pyx.in:
6642
6643         Automatically return NIL when passed an empty list
6644         (we can't pass back a list since lists are typed
6645         and we don't have any idea what type the the client
6646         intended the list to be... :-( )
6647         
6648 2004-07-10  Seth Nickell  <seth@gnome.org>
6649
6650         * python/examples/Makefile.am:
6651
6652         Fix distcheck breakage caused by new examples.
6653
6654 2004-07-10  Seth Nickell  <seth@gnome.org>
6655
6656         * python/dbus.py:
6657
6658         Add "message" argument to service-side dbus.Object
6659         methods. This will break existing services written
6660         using the python bindings, but will allow extraction
6661         of all the message information (e.g. who its from).
6662
6663         Add improved "object oriented" signal handling/emission.
6664         
6665         * python/examples/example-service.py:
6666
6667         Nix this example.
6668         
6669         * python/examples/example-signal-emitter.py:
6670         * python/examples/example-signal-recipient.py:
6671
6672         Two new examples that show how to emit and receive
6673         signals using the new APIs.
6674         
6675         * python/examples/example-signals.py:
6676         * python/examples/gconf-proxy-service.py:
6677         * python/examples/gconf-proxy-service2.py:
6678
6679         Add "message" argument to service methods.
6680
6681 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6682
6683         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6684         * dbus/bus.c (dbus_bus_get_unix_user)
6685         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6686         method of org.freedesktop.DBus interface.
6687
6688         * bus/dispatch.c: test case
6689
6690 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6691
6692         * python/Makefile.am: switched include directory from glib/ to dbus/
6693         since dbus-glib.h moved
6694  
6695 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6696
6697         * configure.in: prevent building the gcj stuff and libxml loader
6698         since they are broken.
6699
6700 2004-06-20  Havoc Pennington  <hp@redhat.com>
6701
6702         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
6703         codes from the dbus error names
6704         
6705         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
6706         as dbus/dbus-glib.h and that breakage is now visible due to 
6707         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6708         
6709         * glib/dbus-glib.h: s/gproxy/g_proxy/
6710
6711         * dbus/dbus-shared.h: new header to hold stuff shared with
6712         binding APIs
6713         
6714         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6715         than dbus-errors.h
6716
6717         * glib/dbus-glib.h (dbus_set_g_error): move to
6718         dbus-glib-lowlevel.h
6719
6720         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6721         of stuff to enable this
6722
6723         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6724
6725         * a bunch of other changes with the same basic "separate glib 
6726         bindings from dbus.h" theme
6727         
6728 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
6729
6730         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6731
6732         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6733
6734 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6735
6736         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6737         the reply value of the ServiceExists message.
6738
6739 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
6740
6741         * python/dbus_bindings.pyx.in: No longer need to parse path
6742         elements and pass them as arrays of strings.  The C API now
6743         accepts plain path strings.
6744         (_build_parsed_path): removed 
6745
6746 2004-06-07  Havoc Pennington  <hp@redhat.com>
6747
6748         * doc/TODO: remove auto-activation item since it's done; sort
6749         items by importance/milestone
6750
6751 2004-06-07  Havoc Pennington  <hp@redhat.com>
6752
6753         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6754         random signature when using REQUIRED_FIELDS (this hack won't work
6755         in the long term)
6756
6757         * dbus/dbus-message.c: change the signature to be a header field,
6758         instead of message->signature special-case string. Incremental
6759         step forward. Then we can fix up code to send the signature in the
6760         message, then fix up code to validate said signature, then fix up
6761         code to not put the typecodes inline, etc.
6762         (load_one_message): don't make up the signature after the fact
6763         (decode_header_data): require signature field for the known
6764         message types
6765
6766         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6767
6768         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6769
6770 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
6771
6772         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6773
6774         * mono/Handler.cs: Updated to follow new path argument for
6775         (un-)registering objects.
6776
6777         * mono/example/Makefile.am:
6778         * mono/Makefile.am:
6779         * configure.in: Bumped required version for mono and use new -pkg
6780         syntax for deps
6781
6782 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6783
6784         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6785         registration functions take the path argument as char* instead of
6786         char**.
6787
6788         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6789         split off the path decompostion part of
6790         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6791         warnings. 
6792
6793         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6794         
6795 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6796  
6797         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6798         machine approach.  A state is implemented as a function that
6799         handles incoming events as specified for that state.
6800         
6801         * doc/dbus-specification.xml: Update auth protocol state machine
6802         specification to match implementation.  Remove some leftover
6803         base64 examples.
6804
6805 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
6806
6807         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6808         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6809         quiet doxygen.
6810
6811         * Doxyfile.in: remove deprecated options.
6812
6813         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6814         glib/test-thread.h, glib/test-thread-client.c,
6815         glib/test-thread-server.c, glib/test-profile.c,
6816         glib/test-dbus-glib.c: remove these unused files.
6817
6818 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6819
6820         * dbus/dbus-object-tree.c
6821         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6822         non-fallback handlers (bug #684).
6823         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6824         (find_subtree_recurse): report wether the returned subtree is an
6825         exact match or a "fallback" match higher up in the tree.
6826         (object_tree_test_iteration): update test case.
6827
6828 2004-06-01  Seth Nickell  <seth@gnome.org>
6829
6830         * python/dbus_bindings.pyx.in:
6831         * python/tests/test-client.py:
6832
6833         Round off basic type support. Add dicts (yay!), and 
6834         remaining array types.
6835
6836         Make MessageIter more general so it works for dicts too.
6837
6838         Mark all loop variables as C integers.
6839         
6840 2004-05-31  Havoc Pennington  <hp@redhat.com>
6841
6842         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6843         "in" before "out"
6844
6845         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6846
6847         * glib/dbus-glib-tool.c (main): set up to have a --self-test
6848         option that runs the tests, and start filling in some code
6849         including for starters just dumping the interfaces to stdout
6850
6851         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6852
6853         * test/data/valid-introspection-files/lots-of-types.xml: test of
6854         an example introspection file
6855
6856         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6857         "node" (I think...)
6858
6859 2004-05-31  Seth Nickell  <seth@gnome.org>
6860
6861         * python/dbus_bindings.pyx.in:
6862         * python/tests/test-client.py:
6863
6864         Test Suite: 1
6865         Python Bindings: 0
6866
6867         Fix string array memory trashing bug... oops...
6868
6869 2004-05-30  Seth Nickell  <seth@gnome.org>
6870
6871         * python/dbus.py:
6872
6873         Add a nicer-but-less-flexible alternate API for handling 
6874         calls to virtual objects in dbus.ObjectTree.
6875
6876         Screw up the argument order to the dbus.Object constructor
6877         for consistency with dbus.ObjectTree (and to make dbus_methods
6878         optional for future extension)
6879         
6880         * python/examples/Makefile.am:
6881         * python/examples/gconf-proxy-service.py:
6882         * python/examples/gconf-proxy-service2.py:
6883
6884         Alternate implementation of gconf-proxy-service using the
6885         nicer dbus.ObjectTree API.
6886         
6887         * python/examples/example-service.py:
6888         * python/tests/test-server.py
6889
6890         Reverse the argument order to deal with dbus.Object constructor
6891         changes.
6892         
6893 2004-05-30  Seth Nickell  <seth@gnome.org>
6894
6895         * python/examples/example-client.py:
6896         * python/examples/example-service.py:
6897
6898         Take it back. Lists seem to work but they're broken
6899         in the test suite. Make the base examples use
6900         lists (works fine).
6901
6902 2004-05-30  Seth Nickell  <seth@gnome.org>
6903
6904         * python/dbus_bindings.pyx.in:
6905         * python/tests/test-client.py:
6906
6907         Add some more tests and fix errors that crop up.
6908         Unfortunately, currently it seems like marshalling
6909         and unmarshalling of lists is completely broken :-(
6910
6911 2004-05-30  Seth Nickell  <seth@gnome.org>
6912
6913         * python/dbus_bindings.pyx.in:
6914
6915         Add support for ObjectPath type.
6916
6917         * python/dbus.py:
6918
6919         Refactor message handling code to a common function.
6920         
6921         * python/tests/test-client.py:
6922         * python/tests/test-server.py:
6923
6924         Add tests that check to make sure values of all types
6925         can be echoed from a service w/o mangling.
6926         
6927 2004-05-29  Seth Nickell  <seth@gnome.org>
6928
6929         * python/dbus.py:
6930
6931         Add ObjectTree class which allows implementation
6932         of trees of "virtual" objects. Basically the python
6933         wrapper for "register_fallback".
6934         
6935         * python/examples/Makefile.am
6936         * python/examples/gconf-proxy-client.py:
6937         * python/examples/gconf-proxy-service.py:
6938
6939         Implement a simple GConf proxy service that supports
6940         get/set on string and int GConf keys using the ObjectTree.
6941         
6942 2004-05-29  Seth Nickell  <seth@gnome.org>
6943
6944         * python/dbus.py:
6945         * python/examples/example-client.py:
6946         * python/examples/example-service.py:
6947         * python/examples/list-system-services.py:
6948
6949         Add SessionBus, SystemBus and ActivationBus classes
6950         so you don't need to know the special little BUS_TYPE
6951         flag.
6952         
6953 2004-05-29  Havoc Pennington  <hp@redhat.com>
6954
6955         * bus/config-parser.c (process_test_valid_subdir): temporarily
6956         stop testing config parser OOM handling, since expat has issues
6957         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6958
6959         * bus/dbus-daemon-1.1.in: change requested_reply to
6960         send_requested_reply/receive_requested_reply so we can send the
6961         replies, not just receive them.
6962
6963         * bus/config-parser.c: parse the new
6964         send_requested_reply/receive_requested_reply
6965
6966         * bus/policy.c (bus_client_policy_check_can_send): add
6967         requested_reply argument and use it
6968
6969         * bus/bus.c (bus_context_check_security_policy): pass through
6970         requested_reply status to message send check
6971
6972         * bus/system.conf.in: adapt to requested_reply change
6973         
6974 2004-05-28  Havoc Pennington  <hp@redhat.com>
6975
6976         * test/glib/test-service-glib.c (main): remove unused variable
6977
6978         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6979
6980         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6981         from the enum, no longer in use.
6982
6983         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6984         works right.
6985
6986         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6987         whether error_name passed in is a valid error name.
6988
6989 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
6990
6991         * dbus/dbus-message.c (dbus_message_get_args): Added support for
6992         OBJECT_PATH and OBJECT_PATH_ARRAY
6993
6994 2004-05-28  Seth Nickell  <seth@gnome.org>
6995
6996         * python/examples/Makefile.am:
6997
6998         Forget to add Makefile.am. Do not pass go.
6999
7000 2004-05-28  Michael Meeks  <michael@ximian.com>
7001
7002         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7003         fix no int64 case.
7004
7005         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7006
7007         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7008         (_dbus_message_iter_get_basic_type_array): impl.
7009         drastically simplify ~all relevant _get methods to use these.
7010         (_dbus_message_iter_append_basic_array),
7011         (dbus_message_iter_append_basic): impl
7012         drastically simplify ~all relevant _append methods to use these.
7013
7014         * dbus/dbus-message-builder.c (parse_basic_type) 
7015         (parse_basic_array, lookup_basic_type): impl.
7016         (_dbus_message_data_load): prune scads of duplicate /
7017         cut & paste coding.
7018
7019         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7020         (_dbus_demarshal_basic_type): implement,
7021         (demarshal_and_validate_len/arg): beef up debug.
7022         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7023
7024 2004-05-27  Seth Nickell  <seth@gnome.org>
7025
7026         * configure.in:
7027         * python/Makefile.am:
7028
7029         Include the example python apps in the tarball.
7030         
7031         * python/examples/list-system-services.py
7032
7033         Add a python new example that fetches the list of services
7034         from the system bus.
7035         
7036 2004-05-27  Seth Nickell  <seth@gnome.org>
7037
7038         * python/dbus.py:
7039         * python/dbus_bindings.pyx.in:
7040
7041         Fix failure to notify that a signal was not handled,
7042         resulted in hung functions.
7043         
7044 2004-05-25  Colin Walters  <walters@redhat.com>
7045
7046         * tools/dbus-monitor.c (main): Monitor all types of messages.
7047
7048 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7049
7050         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7051         which unregisters the object path and disposes the handler.
7052
7053 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7054  
7055         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7056          
7057         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7058         operands to && so we call dbus_message_iter_next () for the last
7059         argument also.
7060
7061 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7062
7063         * dbus/dbus-object-tree.c
7064         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7065         children even if the requested path isn't registered.
7066         (object_tree_test_iteration): test object_tree_list_registered.
7067
7068         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7069         it to 0.
7070         
7071 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7072
7073         * doc/TODO: Remove resolved items.
7074
7075         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7076         field.
7077         
7078         * bus/connection.c (bus_connections_expect_reply): Enforce the
7079         per-connection limit on pending replies.
7080         
7081         Patch from Jon Trowbridge <trow@ximian.com>:
7082  
7083         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7084         up a watch that triggers a config reload when one end of the pipe
7085         becomes readable.
7086         (signal_handler): Instead of doing the config reload in our SIGHUP
7087         handler, just write to the reload pipe and let the associated
7088         watch handle the reload when control returns to the main loop.
7089  
7090         * bus/driver.c (bus_driver_handle_reload_config): Added.
7091         Implements a ReloadConfig method for requesting a configuration
7092         file reload via the bus driver.
7093  
7094 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7095
7096         * HACKING: Updated release instructions concerning the wiki page.
7097
7098 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7099
7100         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7101         filter against auth->allowed_mechs; we only add allowed mechs in
7102         record_mechanisms().
7103  
7104         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7105         ALLOWED_MECHS to auth-script format so we can set the list of
7106         allowed mechanisms.
7107  
7108         * data/auth/client-out-of-mechanisms.auth-script: New test to
7109         check client disconnects when it is out of mechanisms to try.
7110  
7111         * dbus/dbus-auth.c (process_command): Remove check for lines
7112         longer that 1 MB; we only buffer up maximum 16 kB.
7113  
7114         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7115         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7116         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7117         assume there might be unused bytes.
7118  
7119         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7120         client-out-of-mechs, it is handled in process_reject(). Move check
7121         for max failures to send_rejected(), as it's a server-only thing.
7122
7123         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7124         send_auth(), send_data(), send_rejected(), send_error(),
7125         send_ok(), send_begin() and send_cancel().
7126
7127 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7128
7129         Remove base64 encoding, replace with hex encoding. Original patch
7130         from trow@ximian.com, added error handling.
7131
7132         * dbus/dbus-string.c (_dbus_string_base64_encode)
7133         (_dbus_string_base64_decode): Remove.
7134         (_dbus_string_hex_decode): Add end_return argument so we can
7135         distinguish between OOM and invalid hex encoding.
7136         (_dbus_string_test): Remove base64 tests and add test case for
7137         invalid hex.
7138
7139         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7140         Replace base64 with hex.
7141
7142         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7143         for invalid hex encoded data in auth protocol.
7144
7145 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7146
7147         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7148         leak.
7149
7150 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7151
7152         * mono/dbus-sharp.dll.config.in: Added for GAC
7153         * mono/dbus-sharp.snk: Added for GAC
7154         * mono/Assembly.cs.in: Added for GAC
7155         * mono/Makefile.am: Changes for GAC installation        
7156         * configure.in: Added refs for dbus-sharp.dll.config.in and
7157         Assembly.cs.in. More fixes for mono testing
7158         * mono/example/Makefile.am: Changed var to CSC
7159         * Makefile.am: Changed flag name to DBUS_USE_CSC
7160
7161 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7162
7163         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7164         * mono/doc/*: Added documentation framework
7165         * configure.in: Added monodoc check
7166         * README: Added description of mono configure flags
7167
7168 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7169
7170         * doc/dbus-specification.xml: Added a "Required" column to the 
7171         header fields table and changed the "zero or more" verbage in
7172         the above paragraph to read "The header must contain the required 
7173         named header fields and zero or more of the optional named header 
7174         fields".
7175         * test/data/invalid-messages/*.message: Added the required PATH 
7176         named header field to the tests so that they don't fail on 
7177         'Missing path field'
7178
7179 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7180
7181         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7182         the stack by implicitly defining variable and parameter types and
7183         removing the hack of defining C pointers as python objects and later
7184         casting them.
7185
7186 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7187
7188         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7189
7190 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7191
7192         * mono/DBusType/Dict.cs: Handle empty dicts
7193         * mono/DBusType/Array.cs: Handle empty arrays
7194         * mono/Arguments.cs: Handle empty arguments
7195
7196 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7197
7198         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7199         field
7200
7201 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7202
7203         * test/data/valid-messages/standard-*.message: Update message
7204         test scripts to new header field names.
7205
7206 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7207
7208         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7209         overflow to times_we_did_each_thing array which would chop off the
7210         first character of the failure_dir string. Increased the size of
7211         the array to 7 to reflect the number of random mutation functions
7212         we have.
7213
7214 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7215
7216         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7217         unix_server->watch here, it is unreffed in disconnect.
7218         (_dbus_server_new_for_tcp_socket): convert NULL host to
7219         "localhost" here so we don't append NULL to address.
7220         
7221         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7222         various addresses, including tcp with no explicit host.
7223
7224 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7225
7226         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7227         fix incorrect setting of .name_offset in the HeaderField (it was
7228         off by two bytes, positioned right after the name and typecode)
7229
7230         * bus/bus.c (bus_context_new, bus_context_unref): test before
7231         calling dbus_server_free_data_slot and _dbus_user_database_unref
7232         in case of an error.
7233
7234         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7235         by libdbus-gtool.
7236
7237 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7238
7239         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7240         _dbus_poll() instead of select().
7241
7242 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7243
7244         * bus/main.c (signal_handler): Reload the configuration files
7245         on SIGHUP.
7246         (main): Set up our SIGHUP handler.
7247
7248         * bus/bus.c (struct BusContext): Store the config file, user and
7249         fork flag in the BusContext.
7250         (process_config_first_time_only): Added.  Contains the code
7251         (previously in bus_context_new) for setting up the BusContext from
7252         the BusConfigParser that should only be run the first time the
7253         config files are read.
7254         (process_config_every_time): Added.  Contains the code (previously
7255         in bus_context_new) for setting up the BusContext from the
7256         BusConfigParser that should be run every time the config files are
7257         read.
7258         (load_config): Added.  Builds a BusConfigParser from the config
7259         files and passes the resulting structure off to
7260         process_config_first_time_only (assuming this is the first time)
7261         and process_config_every_time.
7262         (bus_context_new): All of the config-related code has been moved
7263         to process_config_first_time_only and process_config_every_time.
7264         Now this function just does the non-config-related initializations
7265         and calls load_config.
7266         (bus_context_reload_config): Added.
7267
7268 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7269
7270         * bus/driver.c (bus_driver_handle_get_service_owner):
7271         implement a GetServiceOwner method.
7272         * doc/dbus-specification.xml: document it.
7273         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7274         
7275         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7276         implement, using the bus GetServiceOwner method.
7277
7278         * test/glib/test-dbus-glib.c:
7279         use dbus_gproxy_new_for_service_owner so that we can receive the
7280         signal. 
7281
7282 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7283
7284         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7285         dbus/dbus-message.c, dbus/dbus-protocol.h
7286         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7287
7288         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7289         dbus/dbus-message.c, dbus/dbus-protocol.h
7290         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7291
7292         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7293         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7294         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7295
7296         * doc/dbus-specification.xml (Header Fields Table):
7297         s/SERVICE/DESTINATION
7298         s/SENDER_SERVICE/SENDER
7299
7300
7301 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7302
7303         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7304         a few seconds.
7305
7306 2004-04-13  Michael Meeks  <michael@ximian.com>
7307
7308         * glib/dbus-gobject.c (handle_introspect): split out
7309         (introspect_properties): this.
7310         (handle_introspect): implement this.
7311
7312         * test/glib/Makefile.am: use the absolute path so the bus
7313         daemon's chdir ("/") doesn't kill us dead.
7314
7315         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7316
7317 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7318
7319         * bus/config-parser.c (struct BusConfigParser): Added
7320         included_files field.
7321         (seen_include): Added.  Checks whether or not a file has already
7322         been included by any parent BusConfigParser.
7323         (bus_config_parser_new): Copy the parent's included_files.
7324         (include_file): Track which files have been included, and fail on
7325         circular inclusions.
7326         (process_test_valid_subdir): Changed printf to report if we are
7327         testing valid or invalid conf files.
7328         (all_are_equiv): Changed printf to be a bit clearer about
7329         what we are actually doing.
7330         (bus_config_parser_test): Test invalid configuration files.
7331
7332 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7333
7334         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7335         argument.  If non-null, the newly-constructed BusConfigParser will
7336         be initialized with the parent's BusLimits instead of the default
7337         values.
7338         (include_file): When including a config file, pass in
7339         the current parser as the parent and then copy the BusLimits
7340         from the included BusConfigParser pack to the current parser.
7341         (process_test_valid_subdir): Renamed from process_test_subdir.
7342         (process_test_equiv_subdir): Added.  Walks through a directory,
7343         descending into each subdirectory and loading the config files
7344         it finds there.  If any subdirectory contains two config files
7345         that don't produce identical BusConfigParser structs, fail.
7346         For now, the BusConfigParser's BusPolicies are not compared.
7347         (bus_config_parser_test): Call both process_test_valid_subdir and
7348         process_test_equiv_subdir.
7349
7350         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7351         argument and pass it along to the call to bus_config_parser_new.
7352         Also made a few small changes to allow this code to compile.
7353
7354         * bus/config-loader-expat.c (bus_config_load): Take a parent
7355         argument and pass it along to the call to bus_config_parser_new.
7356
7357         * bus/bus.c (bus_context_new): Load the config file
7358         with a NULL parent argument.
7359
7360 2004-03-29  Michael Meeks  <michael@ximian.com>
7361
7362         * glib/dbus-gobject.c (introspect_properties): split
7363         out, fix mangled 'while' flow control.
7364         (introspect_signals): implement.
7365         (handle_introspect): update.
7366
7367 2004-03-29  Michael Meeks  <michael@ximian.com>
7368
7369         * glib/dbus-gobject.c (set_object_property): split out / 
7370         re-work, use the property type, and not the message type(!)
7371         (get_object_property): ditto.
7372
7373         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7374         (dbus_gvalue_marshal): make this code re-usable, needed
7375         for signals too, also on both proxy and server side.
7376         Re-write for more efficiency / readability.
7377
7378 2004-03-29  Michael Meeks  <michael@ximian.com>
7379
7380         * dbus/dbus-message.c
7381         (dbus_message_new_error_printf): impl.
7382
7383         * dbus/dbus-connection.c
7384         (dbus_connection_unregister_object_path): fix warning.
7385
7386         * configure.in: fix no-mono-installed situation.
7387
7388 2004-03-27  Havoc Pennington  <hp@redhat.com>
7389
7390         Patch from Timo Teräs:
7391         
7392         * tools/dbus-send.c (main): if --print-reply, assume type is
7393         method call; support boolean type args
7394         
7395         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7396         bunch of memleak and logic bugs
7397         
7398 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7399
7400         * mono/Arguments.cs:
7401         * mono/Introspector.cs:
7402         * mono/Handler.cs:
7403         * mono/InterfaceProxy.cs:
7404         * mono/Message.cs
7405         * mono/ProxyBuilder.cs:
7406         * mono/Service.cs:
7407         Added InterfaceProxy class to avoid building proxies for every
7408         object.
7409
7410         * dbus-message.h:
7411         * dbus-message.c (dbus_message_append_args_valist)
7412         (dbus_message_iter_get_object_path)
7413         (dbus_message_iter_get_object_path_array)
7414         (dbus_message_iter_append_object_path)
7415         (dbus_message_iter_append_object_path_array):
7416         Added object_path iter functions to handle OBJECT_PATH arguments
7417         
7418 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7419
7420         First checkin of mono bindings.
7421         * configure.in:
7422         * Makefile.am:
7423         Build stuff for the bindings
7424         * dbus-sharp.pc.in: Added for pkgconfig
7425         
7426 2004-03-21  Havoc Pennington  <hp@redhat.com>
7427
7428         * test/test-service.c (main): remove debug spew
7429
7430 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7431
7432         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7433         arrays
7434
7435         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7436         (dbus_message_iter_init_array_iterator)
7437         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7438         indicate whether the iterator is empty
7439
7440         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7441         warnings
7442
7443 2004-03-19  Havoc Pennington  <hp@redhat.com>
7444
7445         * NEWS: 0.21 updates
7446
7447         * configure.in: 0.21
7448
7449         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7450         
7451         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7452         you don't need pyrex to make dist
7453
7454         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7455         sources; run moc
7456         
7457 2004-03-18  Richard Hult  <richard@imendio.com>
7458
7459         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7460         (dbus_message_set_auto_activation): Add doxygen docs.
7461
7462 2004-03-16  Richard Hult  <richard@imendio.com>
7463
7464         * bus/activation.c: (bus_activation_service_created),
7465         (bus_activation_send_pending_auto_activation_messages),
7466         (bus_activation_activate_service):
7467         * bus/activation.h:
7468         * bus/dispatch.c: (bus_dispatch),
7469         (check_nonexistent_service_auto_activation),
7470         (check_service_auto_activated),
7471         (check_segfault_service_auto_activation),
7472         (check_existent_service_auto_activation), (bus_dispatch_test):
7473         * bus/driver.c: (bus_driver_handle_activate_service):
7474         * bus/services.c: (bus_registry_acquire_service):
7475         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7476         (dbus_message_get_auto_activation):
7477         * dbus/dbus-message.h:
7478         * dbus/dbus-protocol.h: Implement auto-activation.
7479         
7480         * doc/dbus-specification.xml: Add auto-activation to the spec.
7481
7482 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7483
7484         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7485         fix a bug with CUSTOM types.
7486
7487         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7488         a unit test for this bug (used to fail).
7489
7490 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7491
7492         * bus/activation.c:
7493         (babysitter_watch_callback): notify all pending activations waiting for
7494           the same exec that the activation failed.
7495         (bus_activation_activate_service): shortcut the activation if we 
7496           already waiting for the same executable to start up.
7497
7498 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7499
7500         * bus/activation.c: 
7501         - Added service file reloading. 
7502           Each service files directory is kept in an hash table in 
7503           BusActivation and each BusActivationEntry knows what .service-file it
7504           was read from. So when you try to activate a service the bus will 
7505           check if it's been updated, removed or if new .service-files has 
7506           been installed.
7507         - Test code at the bottom for the service file reloading.
7508         * bus/test-main.c: (main):
7509         * bus/test.h:
7510         - added service reloading test.
7511         * dbus/dbus-sysdeps.c: 
7512         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7513
7514 2004-03-08  Michael Meeks  <michael@ximian.com>
7515
7516         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7517         bail immediately if disconnected, to avoid busy loop.
7518
7519         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7520         cleanup cut/paste/inefficiency.
7521
7522 2004-03-01  David Zeuthen  <david@fubar.dk>
7523
7524         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7525         bug where args were used twice. This bug resulted in a segfault
7526         on a Debian/PPC system when starting the messagebus daemon. Include
7527         dbus-sysdeps.h for DBUS_VA_COPY
7528
7529         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7530
7531         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7532         appropriate va_copy implementation. From GLib
7533         
7534 2004-02-24  Joe Shaw  <joe@ximian.com>
7535
7536         * bus/services.c (bus_registry_acquire_service): We need to pass
7537         in the service name to dbus_set_error() to prevent a crash.
7538
7539 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7540
7541         * AUTHORS: Reveal my True identity.
7542
7543 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7544
7545         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7546         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7547
7548 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7549
7550         * doc/TODO: Added not about better error check of configuration files.
7551
7552 2003-12-02  Richard Hult  <richard@imendio.com>
7553
7554         * Update AFL version to 2.0 throughout the source files to reflect
7555         the update that was done a while ago.
7556
7557 2003-12-02  Richard Hult  <richard@imendio.com>
7558
7559         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7560         wrote_dict_key to FALSE on the iter that the dict is appended to,
7561         just like when appending other types. Fixes a bug where a dict
7562         couldn't be put inside a dict.
7563         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7564         (message_iter_test, _dbus_message_test): Add test case for dict
7565         inside dict.
7566
7567 2003-12-01  David Zeuthen  <david@fubar.dk>
7568
7569         * python/dbus.py: Add the actual message when calling the reciever
7570         of a signal such that parameters can be inspected. Add the method
7571         remove_signal_receiver
7572         
7573 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7574
7575         * bus/*.[ch]:
7576         * dbus/*.[ch]:
7577         * glib/*.[ch]: Made ref functions return the pointer
7578
7579 2003-11-25  Zack Rusin  <zack@kde.org>
7580
7581         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7582
7583         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7584         wrappers,
7585
7586         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7587         the Integrator and to better fit with the server,
7588
7589 2003-11-24  Zack Rusin  <zack@kde.org>
7590
7591         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7592         the integrator handles it now
7593
7594         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7595         since QTimer wasn't really meant to be used the way DBusTimeout is
7596
7597 2003-11-24  Zack Rusin  <zack@kde.org>
7598
7599         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7600         Integrator class which integrates D-BUS with the Qt event loop,
7601
7602         * qt/connection.h, qt/connection.cpp: Move all the code which
7603         was dealing with D-BUS integration to the Integrator class,
7604         and start using Integrator,
7605
7606 2003-11-23  Zack Rusin  <zack@kde.org>
7607
7608         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7609         wrapper
7610
7611         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7612         switching namespaces to DBusQt, reworking the class,
7613
7614         * Makefile.cvs: switching dependencies so that it matches KDE 
7615         schematics,
7616         
7617         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7618         the library
7619
7620 2003-11-19  Havoc Pennington  <hp@redhat.com>
7621
7622         * NEWS: update
7623
7624         * configure.in: bump version to 0.20
7625
7626         * configure.in (have_qt): add yet another place to look for qt
7627         (someone hand trolltech a .pc file...)
7628
7629 2003-11-01  Havoc Pennington  <hp@redhat.com>
7630
7631         * doc/dbus-specification.xml: add state machine docs on the auth
7632         protocol; just a first draft, I'm sure it's wrong.      
7633
7634 2003-10-28  David Zeuthen  <david@fubar.dk>
7635
7636         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7637         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7638         
7639 2003-10-28  Havoc Pennington  <hp@redhat.com>
7640
7641         * dbus/dbus-message.c (get_next_field): delete unused function
7642
7643 2003-10-28  Havoc Pennington  <hp@redhat.com>
7644
7645         * bus/expirelist.c (do_expiration_with_current_time): detect
7646         failure of the expire_func due to OOM
7647
7648         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7649
7650         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7651         NoReply error that's now created by the bus when the service exits
7652
7653 2003-10-28  Havoc Pennington  <hp@redhat.com>
7654
7655         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7656         tests for set_path, set_interface, set_member, etc.
7657
7658         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7659
7660         * dbus/dbus-message.c (set_string_field): always just delete and
7661         re-append the field; accept NULL for deletion
7662         (re_align_fields_recurse): reimplement
7663         
7664 2003-10-26  Havoc Pennington  <hp@redhat.com>
7665
7666         * dbus/dbus-connection.c: fix docs to properly describe the
7667         disconnected message
7668         (_dbus_connection_notify_disconnected): remove this function; 
7669         we can't synchronously add the disconnected message, we have to 
7670         do it after we've queued any remaining real messages
7671         (_dbus_connection_get_dispatch_status_unlocked): queue the
7672         disconnect message only if the transport has finished queueing all
7673         its real messages and is disconnected.
7674         (dbus_connection_disconnect): update the dispatch status here
7675
7676 2003-10-22  Havoc Pennington  <hp@redhat.com>
7677
7678         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7679
7680         * bus/connection.c (bus_transaction_send_from_driver): set the
7681         destination to the connection's base service
7682
7683 2003-10-20  Havoc Pennington  <hp@redhat.com>
7684
7685         hmm, make check is currently not passing.
7686         
7687         * doc/dbus-specification.xml: add requirement that custom type
7688         names follow the same rules as interface names.
7689
7690         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7691         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7692         'map'
7693
7694         * doc/dbus-specification.xml: update type codes to match
7695         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7696         CUSTOM. Add type OBJECT_PATH to the spec.
7697
7698 2003-10-17  Havoc Pennington  <hp@redhat.com>
7699
7700         * bus/driver.c (create_unique_client_name): use "." as separator
7701         in base service names instead of '-'
7702
7703         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7704         byte at the end of the string
7705
7706         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7707         optimization macros since string validation seems to be a slow
7708         point.
7709         
7710         * doc/dbus-specification.xml: restrict valid
7711         service/interface/member/error names. Add test suite code for the
7712         name validation.
7713
7714         * dbus/dbus-string.c: limit service/interface/member/error names 
7715         to [0-9][A-Z][a-z]_
7716
7717         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7718         format arg to verbose spew
7719
7720         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7721         memory, return instead of g_error
7722
7723         * test/test-service.c (path_message_func): support emitting a
7724         signal on request
7725
7726         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7727         activation bus type if DBUS_BUS_ACTIVATION was set; default to
7728         assuming the activation bus was the session bus so that services
7729         started manually will still register.
7730         (init_connections_unlocked): fix so that in OOM situation we get
7731         the same semantics when retrying the function
7732         
7733         * test/test-service.c (main): change to use path registration, to
7734         test those codepaths; register with DBUS_BUS_ACTIVATION rather
7735         than DBUS_BUS_SESSION
7736
7737 2003-10-16  Havoc Pennington  <hp@redhat.com>
7738
7739         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7740
7741         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7742         coverage of the tests
7743         (coverage-report.txt): don't move the .da and .bbg files around
7744
7745 2003-10-16  Havoc Pennington  <hp@redhat.com>
7746
7747         * bus/bus.c (struct BusContext): remove struct field I didn't mean
7748         to put there
7749
7750 2003-10-16  Havoc Pennington  <hp@redhat.com>
7751
7752         * bus/connection.c (bus_pending_reply_expired): either cancel or
7753         execute, not both
7754         (bus_connections_check_reply): use unlink, not remove_link, as we
7755         don't want to free the link; fixes double free mess
7756
7757         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7758         where no reply was received
7759
7760         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7761         fix a refcount leak
7762
7763         * bus/signals.c (match_rule_matches): add special cases for the
7764         bus driver, so you can match on sender/destination for it.
7765
7766         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7767         DBUS_PRINT_BACKTRACE is set
7768
7769         * dbus/dbus-internals.c: add pid to assertion failure messages
7770
7771         * dbus/dbus-connection.c: add message type code to the debug spew
7772
7773         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7774         sender=foo not service=foo
7775
7776         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7777         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
7778         DBUS_ACTIVATION_ADDRESS instead
7779
7780         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7781         DBUS_SYSTEM_BUS_ADDRESS if appropriate
7782
7783         * bus/bus.c (bus_context_new): handle OOM copying bus type into
7784         context struct
7785
7786         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7787         (dbus_message_iter_get_object_path_array): new function (half
7788         finished, disabled for the moment)
7789         
7790         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7791         DBUS_MESSAGE_TYPE_ERROR
7792
7793         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7794         avoid redirecting stderr to /dev/null
7795         (babysit): close stdin if not doing the "exit_with_session" thing
7796
7797         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7798         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7799         stdout/stdin, so things don't get confused
7800         
7801         * bus/system.conf.in: fix to allow replies, I modified .conf
7802         instead of .conf.in again.
7803
7804 2003-10-14  David Zeuthen  <david@fubar.dk>
7805
7806         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7807         argtype to arg_type when raising unknown arg type exception.
7808         Changed type list to reflect the changes in dbus-protocol.h so 
7809         the bindings actually work.
7810
7811 2003-10-14  Havoc Pennington  <hp@redhat.com>
7812
7813         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7814         to have a bug keeping it from outputting the .da files sometimes
7815         (string_get_string): don't append garbage nul bytes to the string.
7816
7817 2003-10-15  Seth Nickell  <seth@gnome.org>
7818
7819         * python/Makefile.am:
7820
7821         Include dbus_h_wrapper.h in the dist tarball.
7822
7823 2003-10-14  Havoc Pennington  <hp@redhat.com>
7824
7825         * bus/bus.c (bus_context_check_security_policy): revamp this to
7826         work more sanely with new policy-based requested reply setup
7827
7828         * bus/connection.c (bus_transaction_send_from_driver): set bus
7829         driver messages as no reply
7830
7831         * bus/policy.c (bus_client_policy_check_can_receive): handle a
7832         requested_reply attribute on allow/deny rules
7833
7834         * bus/system.conf: add <allow requested_reply="true"/>
7835
7836         * bus/driver.c (bus_driver_handle_message): fix check for replies
7837         sent to the bus driver, which was backward. How did this ever work
7838         at all though? I think I'm missing something.
7839
7840         * dbus/dbus-message.c (decode_header_data): require error and
7841         method return messages to have a reply serial field to be valid
7842         (_dbus_message_loader_queue_messages): break up this function;
7843         validate that reply serial and plain serial are nonzero; 
7844         clean up the OOM/error handling.
7845         (get_uint_field): don't return -1 from this
7846         (dbus_message_create_header): fix signed/unsigned bug
7847
7848         * bus/connection.c (bus_connections_expect_reply): save serial of
7849         the incoming message, not reply serial
7850
7851 2003-10-14  Havoc Pennington  <hp@redhat.com>
7852
7853         * bus/connection.c: implement pending reply tracking using
7854         BusExpireList
7855
7856         * bus/bus.c (bus_context_check_security_policy): verify that a
7857         reply is pending in order to allow a reply to be sent. Deny 
7858         messages of unknown type.
7859
7860         * bus/dbus-daemon-1.1.in: update to mention new resource limits
7861
7862         * bus/bus.c (bus_context_get_max_replies_per_connection): new
7863         (bus_context_get_reply_timeout): new
7864
7865 2003-10-13  Seth Nickell  <seth@gnome.org>
7866
7867         * python/Makefile.am:
7868
7869         Pass "make distcheck": remove a couple files from DIST_FILES
7870         that weren't included in the final version.
7871
7872 2003-10-12  Havoc Pennington  <hp@pobox.com>
7873
7874         Added test code that 1) starts an actual bus daemon and 2) uses
7875         DBusGProxy; fixed bugs that were revealed by the test. Lots 
7876         more testing possible, but this is the basic framework.
7877         
7878         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7879         empty proxy lists from the proxy list hash
7880
7881         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7882         couple of return_if_fail checks
7883
7884         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7885         to allocate, so everything is cleared to NULL as it should be.
7886
7887         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7888         source as data to dbus_connection_set_timeout_functions() as the 
7889         timeout functions expected
7890
7891         * test/glib/run-test.sh: add a little script to start up a message
7892         bus and run tests using it
7893
7894         * tools/dbus-launch.1: updates
7895
7896         * tools/dbus-launch.c (main): add --config-file option
7897
7898         * tools/dbus-launch.c (main): remove confusing else if (runprog)
7899         that could never be reached.
7900
7901         * dbus/dbus-message.c (dbus_message_new_method_return) 
7902         (dbus_message_new_error, dbus_message_new_signal): set the
7903         no-reply-expected flag on all these. Redundant, but may
7904         as well be consistent.
7905
7906 2003-10-11  Havoc Pennington  <hp@pobox.com>
7907
7908         * test/decode-gcov.c (function_solve_graph): make broken block
7909         graph a nonfatal error since it seems to be broken. Need to debug
7910         this.
7911
7912         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7913         can't just check type > INVALID < LAST anymore
7914
7915         * dbus/dbus-message.c (dbus_message_get_signature): new function
7916         (dbus_message_has_signature): new function
7917         (struct DBusMessage): add signature field (right now it isn't sent
7918         over the wire, just generated on the fly)
7919         (dbus_message_copy): copy the signature, and init strings to
7920         proper length to avoid some reallocs
7921         (dbus_message_iter_init_array_iterator): return void, since it
7922         can't fail
7923         (dbus_message_iter_init_dict_iterator): return void since it can't fail
7924         (_dbus_message_loader_queue_messages): add silly temporary hack to
7925         fill in message->signature on load
7926
7927         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7928         characters, so they are relatively human-readable.
7929
7930 2003-10-11  Havoc Pennington  <hp@pobox.com>
7931
7932         * dbus/dbus-message.c (_dbus_message_test): add more test
7933         coverage, but #if 0 for now since they uncover a bug 
7934         not fixed yet; I think in re_align_field_recurse()
7935         (re_align_field_recurse): add FIXME about broken assertion
7936
7937         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7938
7939         * bus/connection.c: share a couple code bits with expirelist.c
7940
7941         * bus/expirelist.h, bus/expirelist.c: implement a generic
7942         expire-items-after-N-seconds facility, was going to share between
7943         expiring connections and replies, decided not to use for expiring
7944         connections for now.
7945
7946         * COPYING: include AFL 2.0 (still need to change all the file headers)
7947
7948 2003-10-09  Havoc Pennington  <hp@redhat.com>
7949
7950         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7951         gcc 3.3. Not that we do anything about it yet.
7952
7953         * bus/signals.c (bus_match_rule_parse): impose max length on the
7954         match rule text
7955
7956         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7957
7958 2003-10-09  Havoc Pennington  <hp@redhat.com>
7959
7960         Make matching rules theoretically work (add parser).
7961         
7962         * bus/bus.c (bus_context_check_security_policy): fix up to handle
7963         the case where destination is explicitly specified as bus driver
7964         and someone else is eavesdropping.
7965         
7966         * bus/policy.c (bus_client_policy_check_can_receive): fix up
7967         definition of eavesdropping and assertion
7968
7969         * tools/dbus-send.c (main): use dbus_message_type_from_string
7970
7971         * bus/signals.c (bus_match_rule_parse): implement
7972
7973         * dbus/dbus-message.c (dbus_message_type_from_string): new
7974
7975         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7976
7977 2003-10-02  Havoc Pennington  <hp@pobox.com>
7978
7979         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7980         dbus_gproxy_oneway_call
7981
7982         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
7983         (dbus_server_setup_with_g_main): fix to allow calling them more
7984         than once on the same args
7985         (dbus_bus_get_with_g_main): new function
7986
7987 2003-10-02  Havoc Pennington  <hp@redhat.com>
7988
7989         * doc/dbus-tutorial.xml: write some stuff
7990
7991 2003-09-29  Havoc Pennington  <hp@pobox.com>
7992
7993         * configure.in: split checks for Doxygen from XML docs, check for
7994         xmlto
7995
7996         * doc/Makefile.am: XML-ify all the docs, and add a blank
7997         dbus-tutorial.xml
7998
7999 2003-09-29  Havoc Pennington  <hp@pobox.com>
8000
8001         * Merge dbus-object-names branch. To see the entire patch 
8002         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8003         it's huuuuge though.
8004         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8005         
8006 2003-09-28  Havoc Pennington  <hp@pobox.com>
8007
8008         * HACKING: update to reflect new server
8009
8010 2003-09-26  Seth Nickell  <seth@gnome.org>
8011
8012         * python/dbus.py:
8013         * python/examples/example-signals.py:
8014
8015         Start implementing some notions of signals. The API
8016         is really terrible, but they sort of work (with the
8017         exception of being able to filter by service, and to
8018         transmit signals *as* a particular service). Need to
8019         figure out how to make messages come from the service
8020         we registered :-(
8021         
8022         * python/dbus_bindings.pyx.in:
8023
8024         Removed duplicate message_handler callbacks.
8025         
8026 2003-09-25  Havoc Pennington  <hp@redhat.com>
8027
8028         * bus/session.conf.in: fix my mess
8029
8030 2003-09-25  Havoc Pennington  <hp@pobox.com>
8031
8032         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8033
8034 2003-09-25  Seth Nickell  <seth@gnome.org>
8035
8036         * python/examples/example-service.py:
8037
8038         Johan notices complete wrong code in example-service, but
8039         completely wrong in a way that works exactly the same (!).
8040         Johan is confused, how could this possibly work? Example
8041         code fails to serve purpose of making things clear.
8042         Seth fixes.
8043
8044 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8045
8046         * doc/dbus-specification.sgml: don't require header fields
8047         to be 4-byte aligned and specify that fields should be
8048         distinguished from padding by the fact that zero is not
8049         a valid field name.
8050         
8051         * doc/TODO: remove re-alignment item and add item to doc
8052         the OBJECT_PATH type.
8053         
8054         * dbus/dbus-message.c:
8055         (HeaderField): rename the original member to value_offset
8056         and introduce a name_offset member to keep track of where
8057         the field actually begins.
8058         (adjust_field_offsets): remove.
8059         (append_int_field), (append_uint_field),
8060         (append_string_field): don't align the start of the header
8061         field to a 4-byte boundary.
8062         (get_next_field): impl finding the next marhsalled field
8063         after a given field.
8064         (re_align_field_recurse): impl re-aligning a number of
8065         already marshalled fields.
8066         (delete_field): impl deleting a field of any type and
8067         re-aligning any following fields.
8068         (delete_int_or_uint_field), (delete_string_field): remove.
8069         (set_int_field), (set_uint_field): no need to re-check
8070         that we have the correct type for the field.
8071         (set_string_field): ditto and impl re-aligning any
8072         following fields.
8073         (decode_header_data): update to take into account that
8074         the fields aren't 4-byte aligned any more and the new
8075         way to distinguish padding from header fields. Also,
8076         don't exit when there is too much header padding.
8077         (process_test_subdir): print the directory.
8078         (_dbus_message_test): add test to make sure a following
8079         field is re-aligned correctly after field deletion.
8080         
8081         * dbus/dbus-string.[ch]:
8082         (_dbus_string_insert_bytes): rename from insert_byte and
8083         allow the insert of multiple bytes.
8084         (_dbus_string_test): test inserting multiple bytes.
8085
8086         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8087         warning note to docs about having to re-align any
8088         marshalled values following the string.
8089         
8090         * dbus/dbus-message-builder.c:
8091         (append_string_field), (_dbus_message_data_load):
8092         don't align the header field.
8093         
8094         * dbus/dbus-auth.c: (process_test_subdir): print the
8095         directory.
8096         
8097         * test/break-loader.c: (randomly_add_one_byte): upd. for
8098         insert_byte change.
8099         
8100         * test/data/invalid-messages/bad-header-field-alignment.message:
8101         new test case.
8102         
8103         * test/data/valid-messages/unknown-header-field.message: shove
8104         a dict in the unknown field.
8105
8106 2003-09-25  Seth Nickell  <seth@gnome.org>
8107
8108         * python/dbus.py:
8109         * python/dbus_bindings.pyx.in:
8110
8111         Handle return values.
8112         
8113         * python/examples/example-client.py:
8114         * python/examples/example-service.py:
8115
8116         Pass back return values from the service to the client.
8117         
8118 2003-09-24  Seth Nickell  <seth@gnome.org>
8119
8120         * python/dbus.py:
8121
8122         Connect Object methods (when you are sharing an object) up... pass
8123         in a list of methods to be shared. Sharing all the methods just
8124         worked out too weird. You can now create nice Services over the
8125         DBus in Python. :-)
8126         
8127         * python/dbus_bindings.pyx.in:
8128
8129         Keep references to user_data tuples passed into C functions so 
8130         Python doesn't garbage collect on us.
8131
8132         Implement MethodReturn and Error subclasses of Message for creating
8133         DBusMessage's of those types.
8134         
8135         * python/examples/example-client.py:
8136         * python/examples/example-service.py:
8137
8138         Simple example code showing both how create DBus services and objects,
8139         and how to use them.
8140
8141 2003-09-23  Havoc Pennington  <hp@pobox.com>
8142
8143         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8144
8145 2003-09-23  Havoc Pennington  <hp@redhat.com>
8146
8147         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8148         (dbus_gproxy_disconnect_signal): implement
8149         (dbus_gproxy_manager_remove_signal_match): implement
8150         (dbus_gproxy_manager_add_signal_match): implement
8151         (dbus_gproxy_oneway_call): implement
8152
8153 2003-09-23  Havoc Pennington  <hp@pobox.com>
8154
8155         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8156         subclass. This means dropping the transparent thread safety of the
8157         proxy; you now need a separate proxy per-thread, or your own
8158         locking on the proxy. Probably right anyway.
8159         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8160
8161 2003-09-22  Havoc Pennington  <hp@redhat.com>
8162
8163         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8164
8165 2003-09-21  Seth Nickell  <seth@gnome.org>
8166
8167         First checkin of the Python bindings.
8168         
8169         * python/.cvsignore:
8170         * python/Makefile.am:
8171         * python/dbus_bindings.pyx.in:
8172         * python/dbus_h_wrapper.h:
8173
8174         Pieces for Pyrex to operate on, building a dbus_bindings.so
8175         python module for low-level access to the DBus APIs.
8176         
8177         * python/dbus.py:
8178
8179         High-level Python module for accessing DBus objects.
8180
8181         * configure.in:
8182         * Makefile.am:
8183
8184         Build stuff for the python bindings.
8185
8186         * acinclude.m4:
8187
8188         Extra macro needed for finding the Python C header files.
8189
8190 2003-09-21  Havoc Pennington  <hp@pobox.com>
8191
8192         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8193         implementing the proxy manager, didn't get very far.
8194
8195         * dbus/dbus-bus.c (dbus_bus_add_match): new
8196         (dbus_bus_remove_match): new
8197
8198         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8199         path_name argument; adjust the other not-yet-implemented 
8200         gproxy constructors to be what I think they should be.
8201
8202 2003-09-21  Havoc Pennington  <hp@pobox.com>
8203
8204         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8205         by default for message bus connections.
8206
8207         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8208         exit_on_disconnect flag is set and we process the disconnected
8209         signal.
8210         (dbus_connection_set_exit_on_disconnect): new function
8211
8212 2003-09-21  Havoc Pennington  <hp@pobox.com>
8213
8214         Get matching rules mostly working in the bus; only actually
8215         parsing the rule text remains. However, the client side of
8216         "signal connections" hasn't been started, this patch is only the
8217         bus side.
8218         
8219         * dbus/dispatch.c: fix for the matching rules changes
8220         
8221         * bus/driver.c (bus_driver_handle_remove_match)
8222         (bus_driver_handle_add_match): send an ack reply from these
8223         method calls
8224
8225         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8226         arguments, reported by Seth Nickell
8227
8228         * bus/config-parser.c (append_rule_from_element): support
8229         eavesdrop=true|false attribute on policies so match rules 
8230         can be prevented from snooping on the system bus.
8231
8232         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8233         and "destination" in attribute names; fix some docs bugs; 
8234         add eavesdrop=true|false attribute
8235
8236         * bus/driver.c (bus_driver_handle_add_match)
8237         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8238         messages
8239
8240         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8241         rid of broadcast service concept, signals are just always broadcast
8242
8243         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8244         mostly implement matching rules stuff (currently only exposed as signal
8245         connections)
8246
8247 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8248
8249         * doc/dbus-specification.sgml: Change the header field name
8250         to be an enum and update the rest of the spec to reference
8251         the fields using the conventinal name.
8252
8253         * dbus/dbus-protocol.h: update to reflect the spec.
8254
8255         * doc/TODO: add item to remove the 4 byte alignment requirement.
8256         
8257         * dbus/dbus-message.c: Remove the code to generalise the
8258         header/body length and serial number header fields as named
8259         header fields so we can reference field names using the 
8260         protocol values.
8261         (append_int_field), (append_uint_field), (append_string_field):
8262         Append the field name as a byte rather than four chars.
8263         (delete_int_or_uint_field), (delete_string_field): reflect the
8264         fact that the field name and typecode now occupy 4 bytes instead
8265         of 8.
8266         (decode_string_field), (decode_header_data): update to reflect
8267         protocol changes and move the field specific encoding from
8268         decode_string_field() back into decode_header_data().
8269         
8270         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8271         Add utility to aid debugging.
8272         
8273         * dbus/dbus-message-builder.c:
8274         (append_string_field), (_dbus_message_data_load): Update to
8275         reflect protocol changes; Change the FIELD_NAME directive
8276         to HEADER_FIELD and allow it to take the field's conventional
8277         name rather than the actual value.
8278         
8279         * test/data/*/*.message: Update to use HEADER_FIELD instead
8280         of FIELD_NAME; Always align the header on an 8 byte boundary
8281         *before* updating the header length.
8282
8283 2003-09-15  Havoc Pennington  <hp@pobox.com>
8284
8285         * dbus/dbus-pending-call.c: add the get/set object data
8286         boilerplate as for DBusConnection, etc. Use generic object data
8287         for the notify callback.
8288
8289         * glib/dbus-gparser.c (parse_node): parse child nodes
8290
8291         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8292         
8293         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8294         contain functions shared between the convenience lib and the
8295         installed lib
8296
8297         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8298         -export-symbols-regex to the GLib library
8299
8300         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8301         fix the locking in here, and add a default handler for
8302         Introspect() that just returns sub-nodes.
8303
8304 2003-09-14  Havoc Pennington  <hp@pobox.com>
8305
8306         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8307         rather than gfoo consistent
8308
8309         * glib/dbus-gproxy.h: delete for now, move contents to
8310         dbus-glib.h, because the include files don't work right since we
8311         aren't in the dbus/ subdir.
8312         
8313         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8314         (dbus_gproxy_end_call): finish
8315         (dbus_gproxy_begin_call): finish
8316
8317         * glib/dbus-gmain.c (dbus_set_g_error): new
8318
8319         * glib/dbus-gobject.c (handle_introspect): include information
8320         about child nodes in the introspection
8321
8322         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8323         function to help in implementation of introspection
8324
8325         * dbus/dbus-object-tree.c
8326         (_dbus_object_tree_list_registered_and_unlock): new function
8327
8328 2003-09-12  Havoc Pennington  <hp@pobox.com>
8329
8330         * glib/dbus-gidl.h: add common base class for all the foo_info
8331         types
8332
8333         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8334         similar to kdcop
8335
8336         * test/Makefile.am: try test srcdir -ef . in addition to test
8337         srcdir = ., one of them should work (yeah lame)
8338         
8339         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8340         library
8341         
8342         * glib/dbus-gparser.h: make description_load routines return
8343         NodeInfo* not Parser*
8344
8345         * Makefile.am (SUBDIRS): build test dir after all library dirs
8346
8347         * configure.in: add GTK+ detection
8348
8349 2003-09-07  Havoc Pennington  <hp@pobox.com>
8350
8351         * Make Doxygen contented.
8352
8353 2003-09-07  Havoc Pennington  <hp@pobox.com>
8354
8355         * doc/dbus-specification.sgml: more updates
8356
8357 2003-09-06  Havoc Pennington  <hp@pobox.com>
8358
8359         * doc/dbus-specification.sgml: partial updates
8360
8361         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8362         zillionth time; hopefully I edited the right file this time.
8363
8364         * bus/config-parser.c (append_rule_from_element): support
8365         send_type, send_path, receive_type, receive_path
8366
8367         * bus/policy.c: add message type and path to the list of things
8368         that can be "firewalled"
8369
8370 2003-09-06  Havoc Pennington  <hp@pobox.com>
8371
8372         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8373         (dbus_connection_register_object_path): make this not handle
8374         messages to paths below the given path
8375
8376 2003-09-03  Havoc Pennington  <hp@pobox.com>
8377
8378         * test/glib/Makefile.am: add this with random glib-linked test
8379         programs
8380
8381         * glib/Makefile.am: remove the random test programs from here,
8382         leave only the unit tests
8383
8384         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8385         uscore/javacaps conversion, and fix     
8386         (get_object_property, set_object_property): change to .NET
8387         convention for mapping props to methods, set_FooBar/get_FooBar, 
8388         since one language has such a convention we may as well copy it. 
8389         Plus real methods in either getFooBar or get_foo_bar style won't 
8390         collide with this convention.
8391
8392 2003-09-01  Havoc Pennington  <hp@pobox.com>
8393
8394         * glib/dbus-gparser.c: implement
8395
8396         * glib/dbus-gobject.c: start implementing skeletons support
8397
8398         * configure.in: when disabling checks/assert, also define
8399         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8400
8401 2003-09-01  Havoc Pennington  <hp@pobox.com>
8402
8403         * glib/Makefile.am: rearrange a bunch of files and get "make
8404         check" framework set up
8405
8406 2003-08-31  Havoc Pennington  <hp@pobox.com>
8407
8408         * fix build with --disable-tests
8409
8410 2003-08-30  Havoc Pennington  <hp@pobox.com>
8411
8412         * dbus/dbus-connection.c: purge DBusMessageHandler
8413
8414         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8415         use callbacks everywhere
8416
8417 2003-08-30  Havoc Pennington  <hp@pobox.com>
8418
8419         * test/data/valid-config-files/system.d/test.conf: change to 
8420         root for the user so warnings don't get printed
8421
8422         * dbus/dbus-message.c: add dbus_message_get_path,
8423         dbus_message_set_path
8424         
8425         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8426         dispatching to a path
8427
8428         * dbus/dbus-string.c (_dbus_string_validate_path): add
8429
8430         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8431         (_dbus_marshal_object_path): implement
8432
8433         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8434         to contain the path to the target object
8435         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8436         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8437
8438 2003-08-30  Havoc Pennington  <hp@pobox.com>
8439
8440         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8441
8442 2003-08-29  Havoc Pennington  <hp@pobox.com>
8443
8444         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8445         registered
8446         (struct DBusObjectSubtree): shrink this
8447         a lot, since we may have a lot of them
8448         (_dbus_object_tree_free_all_unlocked): implement
8449         (_dbus_object_tree_dispatch_and_unlock): implement
8450
8451 2003-08-29  Havoc Pennington  <hp@pobox.com>
8452
8453         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8454
8455 2003-08-28  Havoc Pennington  <hp@pobox.com>
8456
8457         purge DBusObjectID
8458         
8459         * dbus/dbus-connection.c: port to no ObjectID, create a
8460         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8461
8462         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8463         everything except UnregisterFunction and MessageFunction
8464         
8465         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8466         add DBUS_TYPE_OBJECT_PATH
8467         
8468         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8469         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8470         path-based object IDs
8471
8472 2003-08-25  Havoc Pennington  <hp@pobox.com>
8473
8474         Just noticed that dbus_message_test is hosed, I wonder when I
8475         broke that. I thought make check was passing earlier...
8476         
8477         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8478         container tree, will replace most of dbus-object-registry
8479
8480         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8481         screwup
8482
8483 2003-08-19  Havoc Pennington  <hp@pobox.com>
8484
8485         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8486         (dbus_message_is_error): fix this function
8487
8488         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8489         match
8490
8491         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8492         reflect clarified man page
8493         (bus_client_policy_check_can_send): ditto
8494         
8495         * bus/session.conf.in: fixup
8496
8497         * bus/system.conf.in: fixup
8498
8499 2003-08-18  Havoc Pennington  <hp@redhat.com>
8500
8501         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8502
8503         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8504         dumb bug created earlier (wrong order of args to
8505         decode_header_data())
8506         
8507         * tools/dbus-send.c: port
8508
8509         * tools/dbus-print-message.c (print_message): port
8510
8511         * test/data/*messages: port all messages over
8512         
8513         * dbus/dbus-message-builder.c: support including 
8514         message type
8515         
8516         * bus/driver.c: port over
8517         
8518         * bus/dispatch.c: port over to new stuff
8519
8520         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8521         rename disconnect signal to "Disconnected"
8522
8523 2003-08-17  Havoc Pennington  <hp@pobox.com>
8524
8525         This doesn't compile yet, but syncing up so I can hack on it from
8526         work. What are branches for if not broken code? ;-)
8527         
8528         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8529         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8530         DBUS_HEADER_FIELD_ERROR_NAME
8531         
8532         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8533         for the interface+member pairs
8534         (string_hash): change to use g_str_hash algorithm
8535         (find_direct_function, find_string_function): refactor these to
8536         share most code.
8537         
8538         * dbus/dbus-message.c: port all of this over to support 
8539         interface/member fields instead of name field
8540
8541         * dbus/dbus-object-registry.c: port over
8542         
8543         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8544         from _dbus_string_validate_name
8545
8546         * bus/dbus-daemon-1.1: change file format for the 
8547         <deny>/<allow> stuff to match new message naming scheme
8548
8549         * bus/policy.c: port over
8550
8551         * bus/config-parser.c: parse new format
8552         
8553 2003-08-16  Havoc Pennington  <hp@pobox.com>
8554
8555         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8556         broken assertion
8557
8558         * glib/dbus-gproxy.c: some hacking
8559
8560 2003-08-15  Havoc Pennington  <hp@redhat.com>
8561
8562         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8563
8564         * dbus/dbus-connection.c
8565         (dbus_connection_send_with_reply_and_block): factor out internals;
8566         change to convert any error replies to DBusError instead of 
8567         returning them as a message
8568
8569 2003-08-15  Havoc Pennington  <hp@pobox.com>
8570
8571         * dbus/dbus-connection.c, 
8572         dbus/dbus-pending-call.c: Finish the pending call stuff
8573
8574 2003-08-14  Havoc Pennington  <hp@redhat.com>
8575
8576         * dbus/dbus-pending-call.c: start on new object that will replace
8577         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8578         replies
8579
8580         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8581         with remote interfaces
8582
8583         * dbus/dbus-gidl.c: do the boring boilerplate in here
8584         
8585 2003-08-12  Havoc Pennington  <hp@pobox.com>
8586
8587         * bus/dispatch.c (bus_dispatch): make this return proper 
8588         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8589
8590         * dbus/dbus-errors.c (dbus_set_error): use
8591         _dbus_string_append_printf_valist
8592
8593         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8594         (_dbus_string_append_printf): new
8595
8596         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8597         UNKNOWN_METHOD
8598
8599         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8600         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8601         message is unhandled.
8602
8603 2003-08-11  Havoc Pennington  <hp@pobox.com>
8604
8605         * bus/test.c (client_disconnect_handler): change to return
8606         HANDLED (would have been REMOVE_MESSAGE)
8607
8608         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8609         HANDLED/NOT_YET_HANDLED instead of
8610         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8611         should be used.
8612
8613 2003-08-10  Havoc Pennington  <hp@pobox.com>
8614
8615         * tools/dbus-send.c (main): add --type argument, for now
8616         supporting only method_call and signal types.
8617
8618         * tools/dbus-print-message.c: print message type
8619
8620         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8621         init connection->objects
8622
8623         * doc/dbus-specification.sgml: fix sgml
8624
8625         * bus/*.c: port over to object-instance API changes
8626
8627         * test/test-service.c: ditto
8628         
8629         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8630         name, we will have to fix up the rest of the code to also handle
8631         this
8632         (dbus_message_new): generic message-creation call
8633         (set_string_field): allow appending name field
8634
8635 2003-08-06  Havoc Pennington  <hp@pobox.com>
8636
8637         * dbus/dbus-object-registry.c: implement signal connection 
8638         and dispatch
8639
8640         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8641
8642         * dbus/dbus-internals.c (_dbus_memdup): new function
8643
8644 2003-08-02  Havoc Pennington  <hp@pobox.com>
8645
8646         * dbus/dbus-message.c (dbus_message_get_no_reply)
8647         (dbus_message_set_no_reply): add these and remove
8648         set_is_error/get_is_error
8649
8650         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8651         remove the ERROR flag, since there's now an ERROR type
8652
8653 2003-08-01  Havoc Pennington  <hp@pobox.com>
8654
8655         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8656         implement
8657
8658         * dbus/dbus-message.c (dbus_message_get_type): new function
8659
8660         * doc/dbus-specification.sgml: add "type" byte to messages
8661
8662 2003-08-01  Havoc Pennington  <hp@pobox.com>
8663
8664         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8665         a message type enum to distinguish kinds of message
8666         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8667         that need not be replied to
8668
8669 2003-08-01  Havoc Pennington  <hp@pobox.com>
8670
8671         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8672         (unpack_8_octets): fix no-64-bit-int bug
8673
8674         * dbus/dbus-object-registry.c (validate_id): validate the 
8675         connection ID bits, not just the instance ID.
8676
8677         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8678         the connection-global 33 bits of the object ID
8679
8680         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8681         object ID in the new way
8682
8683         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8684         define server/client/instance bits.
8685
8686 2003-07-30  Havoc Pennington  <hp@pobox.com>
8687
8688         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8689         build
8690
8691 2003-07-13  Havoc Pennington  <hp@pobox.com>
8692
8693         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8694         fields to DBusObjectVTable and DBusObjectInfo
8695
8696 2003-07-12  Havoc Pennington  <hp@pobox.com>
8697
8698         * dbus/dbus-object-registry.c: implement unit test,
8699         fix bugs discovered in process
8700
8701         * dbus/dbus-connection.c: remove handler_table and
8702         register_handler(), add DBusObjectRegistry usage
8703
8704         * dbus/dbus-objectid.c (dbus_object_id_is_null)
8705         (dbus_object_id_set_null): new functions
8706
8707 2003-07-08  Havoc Pennington  <hp@pobox.com>
8708
8709         * dbus/dbus-object.c: implement some of this
8710
8711         * dbus/dbus-object-registry.c
8712         (_dbus_object_registry_add_and_unlock): fill in the object_id out
8713         param
8714         (_dbus_object_registry_new): handle OOM
8715
8716 2003-07-08  Havoc Pennington  <hp@pobox.com>
8717
8718         * dbus/dbus-object.h: sketch out an API for registering objects
8719         with a connection, that allows us to use as little as 24 bytes
8720         per object and lets application code represent an object in 
8721         any conceivable way.
8722
8723         * dbus/dbus-object-registry.c: implement the hard bits of the
8724         DBusConnection aspect of object API. Not yet wired up.
8725         
8726 2003-07-06  Havoc Pennington  <hp@pobox.com>
8727
8728         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8729         (_dbus_marshal_object_id): new
8730         (_dbus_demarshal_object_id): new
8731         (_dbus_marshal_get_arg_end_pos): support object ID type, and
8732         consolidate identical switch cases. Don't conditionalize handling
8733         of DBUS_TYPE_UINT64, need to handle the type always.
8734         (_dbus_marshal_validate_arg): consolidate identical cases, and
8735         handle DBUS_TYPE_OBJECT_ID
8736
8737         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8738
8739         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8740
8741 2003-09-28  Havoc Pennington  <hp@pobox.com>
8742
8743         * real 0.13 release
8744
8745 2003-09-28  Havoc Pennington  <hp@pobox.com>
8746
8747         * doc/Makefile.am (dbus-specification.html): testing a funky hack
8748         to work with Debian db2html
8749
8750 2003-09-28  Havoc Pennington  <hp@pobox.com>
8751
8752         * configure.in: 0.13
8753
8754         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8755         stylesheet-images for benefit of Debian
8756         
8757         Change back to using filesystem-linked sockets for the system
8758         bus, so only root can create the default system bus address.
8759         
8760         * bus/system.conf.in: change to use
8761         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8762
8763         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8764         from here.
8765
8766         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8767         here, and AC_DEFINE DBUS_SYSTEM_PATH
8768
8769 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8770
8771         * doc/TODO:
8772         * doc/busconfig.dtd:
8773         Add busconfig DTD.
8774         
8775 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
8776
8777         * doc/dbus-specification.sgml:
8778         Add activation reply values.
8779         
8780 2003-08-05  Havoc Pennington  <hp@redhat.com>
8781
8782         * configure.in: 0.12
8783
8784 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
8785
8786         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8787         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8788         (add_watch), (remove_watch), (create_source):
8789         Refcount fds, fixes some reentrancy issues.
8790         
8791 2003-07-30  Havoc Pennington  <hp@redhat.com>
8792
8793         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8794         bus address to be abstract if we have abstract sockets
8795
8796         * NEWS: update
8797
8798 2003-07-28  Havoc Pennington  <hp@redhat.com>
8799
8800         * bus/messagebus.in: fix to avoid processname/servicename 
8801         confusion, from Michael Kearey
8802         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8803         
8804 2003-07-23  Havoc Pennington  <hp@pobox.com>
8805
8806         * dbus/dbus-message.c (dbus_message_iter_get_named): 
8807         fix from Andy Hanton to remove broken "+1"
8808
8809 2003-07-16  Havoc Pennington  <hp@pobox.com>
8810
8811         * tools/dbus-launch.c (babysit): close stdout/stderr in the
8812         babysitter process, as suggested by Thomas Leonard, so 
8813         an "eval `dbus-launch --exit-with-session`" will actually 
8814         return
8815
8816 2003-07-16  Havoc Pennington  <hp@pobox.com>
8817
8818         * configure.in: print out EXPANDED_* variables in the summary at
8819         the end; clean up the code that computes EXPANDED_ variables and
8820         get the ones using exec_prefix right. Should make things work
8821         when you build without --prefix
8822
8823 2003-06-29  Havoc Pennington  <hp@pobox.com>
8824
8825         * mono/Test.cs (class Test): fire up a main loop and run it
8826
8827         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8828         done once, the app has to do it
8829
8830 2003-06-26  Havoc Pennington  <hp@pobox.com>
8831
8832         * mono/Connection.cs: set up connection with the glib main loop
8833
8834 2003-07-01  Havoc Pennington  <hp@redhat.com>
8835
8836         * doc/dbus-specification.sgml: clarify the format of a type code,
8837         change suggested by Jim Blandy
8838
8839 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
8840
8841         * doc/Makefile.am:
8842         * tools/Makefile.am: Don't assume srcdir == builddir.
8843
8844         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8845         the allocated block.
8846         (_dbus_memory_test): New function.
8847         * dbus/dbus-test.h: Add _dbus_memory_test ().
8848         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8849
8850         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8851         of %c%c%c%c.
8852         (dbus_message_new): Remove obsolete @todo.
8853
8854         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8855         (_dbus_marshal_set_uint64): Fix comment.
8856
8857         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8858         hardcode FIELD_REPLY_SERIAL.
8859
8860         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8861         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8862
8863         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8864         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8865
8866 2003-06-24  Havoc Pennington  <hp@pobox.com>
8867
8868         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8869
8870 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
8871
8872         * configure.in:
8873         * gcj/.cvsignore:
8874         * gcj/Hello.java:
8875         * gcj/Makefile.am:
8876         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8877         * gcj/org/.cvsignore:
8878         * gcj/org/Makefile.am:
8879         * gcj/org/freedesktop/.cvsignore:
8880         * gcj/org/freedesktop/Makefile.am:
8881         * gcj/org/freedesktop/dbus/.cvsignore:
8882         * gcj/org/freedesktop/dbus/Makefile.am:
8883         * gcj/org/freedesktop/dbus/Message.java: (Message),
8884         (Message.Message):
8885         * gcj/org/freedesktop/dbus/natMessage.cc:
8886         Fix the build system.
8887
8888 2003-06-22  Havoc Pennington  <hp@pobox.com>
8889
8890         * mono/Connection.cs: add more bindings
8891
8892         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8893         more than once.
8894
8895 2003-06-22  Havoc Pennington  <hp@pobox.com>
8896
8897         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8898         Start wrapping more stuff.
8899
8900 2003-06-22  Havoc Pennington  <hp@pobox.com>
8901
8902         * mono/Message.cs: implement Message.Wrap() that ensures we only
8903         have a single C# wrapper per DBusMessage, assuming it works which
8904         it probably doesn't.
8905
8906         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8907         (dbus_message_free_data_slot): new
8908         (dbus_message_set_data): new
8909         (dbus_message_get_data): new
8910
8911 2003-06-22  Havoc Pennington  <hp@pobox.com>
8912
8913         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8914         (_dbus_data_slot_allocator_alloc): rework these to keep a
8915         reference count on each slot and automatically manage a global
8916         slot ID variable passed in by address
8917
8918         * bus/bus.c: convert to new dataslot API
8919
8920         * dbus/dbus-bus.c: convert to new dataslot API
8921
8922         * dbus/dbus-connection.c: convert to new dataslot API
8923
8924         * dbus/dbus-server.c: convert to new dataslot API
8925
8926         * glib/dbus-gmain.c: ditto
8927
8928         * bus/test.c: ditto
8929
8930         * bus/connection.c: ditto
8931
8932 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
8933
8934         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8935         after the gcj checks so that the correct configuration tags
8936         will be added to libtool.
8937
8938         * dbus-glib-1.pc.in: No need to specify any includes since
8939         dbus-1.pc.in has those.
8940
8941 2003-06-22  Havoc Pennington  <hp@pobox.com>
8942
8943         * mono/*, gcj/*, configure.in, Makefile.am:
8944         Check in makefiles and subdirs for mono and gcj bindings.
8945         Neither binding actually exists, just trying to get through
8946         all the build and other boring bits.
8947
8948 2003-06-21  Philip Blundell  <philb@gnu.org>
8949
8950         * tools/dbus-monitor.1: Updated.
8951
8952         * tools/dbus-send.1: Likewise.
8953
8954 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
8955
8956         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8957         for hangup and error after checking read so we won't discard
8958         pending data if both hangup and read are set.
8959
8960 2003-06-19  Philip Blundell  <philb@gnu.org>
8961
8962         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8963
8964         * tools/dbus-send.c: Accept both --system and --session.
8965
8966         * tools/dbus-monitor.c: Same here.
8967
8968 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
8969
8970         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8971         from C++ (Patch by Miloslav Trmac).
8972
8973 2003-06-15  Joe Shaw  <joe@assbarn.com>
8974
8975         * configure.in: Check for socklen_t.
8976
8977         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8978
8979         * test/test-segfault.c: Add #include <sys/time.h>
8980
8981         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8982         dbus-launch needs it.
8983
8984 2003-06-09  Havoc Pennington  <hp@redhat.com>
8985
8986         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8987         SUN_LEN, it breaks abstract socket usage
8988
8989         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8990         starts of lines.
8991
8992 2003-06-04  Havoc Pennington  <hp@pobox.com>
8993
8994         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8995         using unix:abstract=/foo, and when listening in a tmpdir
8996         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8997
8998         * dbus/dbus-transport.c (_dbus_transport_open): support
8999         unix:abstract=/foo
9000
9001         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9002         support abstract sockets
9003
9004         * dbus/dbus-transport-unix.c
9005         (_dbus_transport_new_for_domain_socket): support abstract sockets
9006
9007         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9008         toggle as an argument, implement abstract namespace support
9009         (_dbus_listen_unix_socket): ditto
9010
9011         * configure.in: add --enable-abstract-sockets and implement
9012         a configure check for autodetection of the right value.
9013
9014 2003-06-01  Havoc Pennington  <hp@pobox.com>
9015
9016         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9017         in /tmp (though on Linux this will end up being useless,
9018         when we add abstract namespace support)
9019
9020         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9021         subst'ing it
9022
9023 2003-05-28  Colin Walters  <walters@verbum.org>
9024
9025         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9026
9027 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9028
9029         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9030
9031 2003-05-17  Colin Walters  <walters@gnu.org>
9032
9033         * tools/dbus-send.c: Don't exit with an error code if --help was
9034         passed.  Default to using the session bus instead of the system
9035         one.
9036
9037         * tools/dbus-launch.c: Ditto.
9038
9039         * tools/dbus-monitor.c: Ditto.
9040
9041         * tools/dbus-send.1: Update with new arguments.
9042
9043         * tools/dbus-launch.c: Emit code to export variables.  New
9044         arguments -s and -c to specify shell syntax, and a bit of code to
9045         autodetect syntax.  Also, allow specifying a program to run.
9046
9047         * tools/dbus-launch.1: Update with new arguments.
9048
9049         * tools/dbus-send.1: Ditto.
9050
9051         * tools/dbus-monitor.1: Ditto.
9052
9053 2003-05-17  Havoc Pennington  <hp@pobox.com>
9054
9055         * bus/config-parser.c (merge_included): merge in policies from
9056         child configuration file.
9057
9058         * bus/policy.c (bus_policy_merge): function to merge two policies
9059         together
9060
9061 2003-05-16  Havoc Pennington  <hp@redhat.com>
9062
9063         * dbus/dbus-connection.c: disable verbose lock spew
9064
9065         * tools/dbus-send.c: add --print-reply command line option
9066
9067         * tools/dbus-print-message.h (print_message): new util function
9068         shared by dbus-send and dbus-monitor
9069
9070         * tools/dbus-monitor.c (handler_func): exit on disconnect
9071
9072         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9073         disconnected, don't try to use the read_watch
9074
9075         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9076         so we can find this bug more easily
9077
9078 2003-05-16  Havoc Pennington  <hp@redhat.com>
9079
9080         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9081         NULL as DBusHashTable is annoyingly likely to do.
9082
9083 2003-05-16  Colin Walters  <walters@verbum.org>
9084
9085         * tools/dbus-monitor.c: Add --session argument and usage()
9086         function.
9087
9088         * tools/dbus-monitor.1: Update with new --session arg.
9089
9090         * bus/Makefile.am (install-data-hook): Create
9091         $(libdir)/dbus-1.0/services so that the session bus is happy.
9092
9093 2003-05-15  Havoc Pennington  <hp@redhat.com>
9094
9095         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9096         on non-x86. ifdef's are evil.
9097
9098 2003-05-15  Havoc Pennington  <hp@redhat.com>
9099
9100         * configure.in: 0.11
9101
9102         * NEWS: update
9103
9104         * bus/Makefile.am (initddir): apparently we are supposed to put
9105         init scripts in /etc/rc.d/init.d not /etc/init.d
9106
9107         * bus/Makefile.am: remove the "you must --enable-tests to make
9108         check" as it broke distcheck
9109
9110         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9111
9112 2003-05-13  James Willcox  <jwillcox@gnome.org>
9113
9114         * configure.in:
9115         * bus/activation.c: (bus_activation_service_created),
9116         (bus_activation_activate_service):
9117         * bus/driver.c: (bus_driver_send_service_deleted),
9118         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9119         (bus_driver_send_service_acquired),
9120         (bus_driver_send_welcome_message),
9121         (bus_driver_handle_list_services):
9122         * bus/session.conf.in:
9123         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9124         (dbus_bus_service_exists), (dbus_bus_activate_service):
9125         * dbus/dbus-bus.h:
9126
9127         Add some convenience API which lets you activate a service, and did a
9128         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9129         and dbus_message_get_args()
9130
9131 2003-05-11  Havoc Pennington  <hp@pobox.com>
9132
9133         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9134         calling _dbus_marshal_validate_arg() for every byte in a byte
9135         array, etc.
9136
9137         * dbus/dbus-message-handler.c: use atomic reference counting to
9138         reduce number of locks slightly; the global lock in here sucks
9139
9140         * dbus/dbus-connection.c
9141         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9142         update_dispatch_status that can be called with lock held; then use
9143         in a couple places to reduce locking/unlocking
9144         (dbus_connection_send): hold the lock over the whole function
9145         instead of acquiring it twice.
9146
9147         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9148
9149         * bus/connection.c (bus_connections_setup_connection): fix access
9150         to already-freed memory.
9151
9152         * dbus/dbus-connection.c: keep a little cache of linked list
9153         nodes, to avoid using the global linked list alloc lock in the
9154         normal send-message case. Instead we just use the connection lock
9155         that we already have to take.
9156
9157         * dbus/dbus-list.c (_dbus_list_find_last): new function
9158
9159         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9160         change to use a struct for the atomic type; fix docs,
9161         they return value before increment, not after increment.
9162
9163         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9164         (_dbus_string_append_8_aligned): new functions to try to
9165         microoptimize this operation.
9166         (reallocate_for_length): break this out of set_length(), to
9167         improve profile info, and also so we can consider inlining the
9168         set_length() part.
9169
9170         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9171         strings with some preallocation, cuts down on our calls to realloc
9172         a fair bit. Though if we can get the "move entire string to empty
9173         string" optimization below to kick in here, it would be better.
9174
9175         * dbus/dbus-string.c (_dbus_string_move): just call
9176         _dbus_string_move_len
9177         (_dbus_string_move_len): add a special case for moving
9178         an entire string into an empty string; we can just
9179         swap the string data instead of doing any reallocs.
9180         (_dbus_string_init_preallocated): new function
9181
9182 2003-05-11  Havoc Pennington  <hp@pobox.com>
9183
9184         Write a "test-profile" that does echo client-server with threads;
9185         profile reveals lock contention, memcpy/realloc of buffers, and
9186         UTF-8 validation as hot spots. 20% of lock contention eliminated
9187         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9188         contention is global mempool locks for GList and DBusList.
9189
9190         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9191         x86 implementation
9192
9193         * dbus/dbus-connection.c (struct DBusConnection): use
9194         dbus_atomic_t for the reference count
9195
9196         * dbus/dbus-message.c (struct DBusMessage): declare
9197         dbus_atomic_t values as volatile
9198
9199         * configure.in: code to detect ability to use atomic integer
9200         operations in assembly, from GLib patch
9201
9202         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9203         time, tired of it being wrong in threads and forked processes
9204
9205         * glib/test-profile.c: a little program to bounce messages back
9206         and forth between threads and eat CPU
9207
9208         * dbus/dbus-connection.c: add debug spew macros for debugging
9209         thread locks; include config.h at top; fix deadlock in
9210         dbus_connection_flush()
9211
9212 2003-05-08  Havoc Pennington  <hp@pobox.com>
9213
9214         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9215         data from getting written, and there wasn't a good reason to
9216         use _exit really.
9217
9218         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9219         dbus_verbose lines in test coverage
9220         (main): add list of functions sorted by # of untested blocks
9221         to the coverage report
9222
9223         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9224
9225         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9226
9227         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9228         extend test coverage
9229
9230         * test/data/auth/cancel.auth-script: test canceling an
9231         authentication
9232
9233         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9234         aren't used. in CVS history if we end up needing them.
9235
9236 2003-05-04  Havoc Pennington  <hp@pobox.com>
9237
9238         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9239         unit test
9240
9241         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9242         function, which assumed length was in # of strings, not bytes
9243
9244         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9245         missing coverage
9246
9247         * dbus/dbus-connection.c
9248         (_dbus_connection_queue_received_message): disable function for
9249         now, we are only using it in test mode
9250
9251         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9252         remove a mistaken FIXME
9253
9254 2003-05-04  Havoc Pennington  <hp@pobox.com>
9255
9256         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9257         unlock mutex on successful return, patch from Anders Gustafsson
9258
9259 2003-05-04  Havoc Pennington  <hp@pobox.com>
9260
9261         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9262         Anders Gustafsson
9263
9264 2003-05-04  Havoc Pennington  <hp@pobox.com>
9265
9266         * tools/dbus-launch.c: implement
9267
9268         * bus/main.c (main), bus/bus.c (bus_context_new):
9269         implement --print-pid and --fork
9270
9271 2003-05-03  Havoc Pennington  <hp@redhat.com>
9272
9273         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9274         the address had no value, and add to test suite. Fix and
9275         regression test from Miloslav Trmac
9276
9277 2003-05-03  Havoc Pennington  <hp@pobox.com>
9278
9279         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9280         watch is invalid when handled
9281
9282         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9283         dbus-launch utility to launch the bus from a shell script.  Didn't
9284         actually implement dbus-launch yet, it's just a placeholder still.
9285
9286 2003-05-03  Havoc Pennington  <hp@pobox.com>
9287
9288         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9289         daemon; also documents daemon config file, so replaces
9290         doc/config-file.txt. Corrected some stuff from config-file.txt in
9291         the process of moving it.
9292
9293 2003-05-03  Havoc Pennington  <hp@pobox.com>
9294
9295         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9296         add some man pages
9297
9298 2003-05-03  Colin Walters  <walters@verbum.org>
9299
9300         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9301         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9302
9303         * Makefile.am: Update to use new .pc versioning scheme.
9304
9305 2003-05-02  Havoc Pennington  <hp@redhat.com>
9306
9307         * bus/system.conf.in: allow send/receive to/from message bus
9308         service
9309
9310 2003-04-30  Havoc Pennington  <hp@redhat.com>
9311
9312         * configure.in: print a note when building with unit tests and
9313         without assertions
9314
9315 2003-04-30  Havoc Pennington  <hp@redhat.com>
9316
9317         * Makefile.am: add a check-local that complains if you didn't
9318         configure with --enable-tests
9319
9320 2003-04-29  Havoc Pennington  <hp@redhat.com>
9321
9322         * glib/dbus-gmain.c: docs cleanups
9323
9324         * dbus/dbus-types.h: add docs on int64 types
9325
9326         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9327         public API docs section
9328
9329 2003-04-29  Havoc Pennington  <hp@redhat.com>
9330
9331         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9332         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9333         parallel install API version, not with the D-BUS package version.
9334
9335         * HACKING: move some of README over here
9336
9337         * README: updates, and document API/ABI policy
9338
9339         * configure.in: reindentation
9340
9341 2003-04-29  Havoc Pennington  <hp@redhat.com>
9342
9343         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9344         to use this library" to be sure people have the right
9345         expectations.
9346
9347 2003-04-28  Havoc Pennington  <hp@redhat.com>
9348
9349         * configure.in: add --enable-docs which by default is auto yes if
9350         doxygen and db2html found, no otherwise; but can be forced on/off
9351
9352         * doc/Makefile.am: conditionalize whether to build docs on
9353         --enable-docs
9354
9355 2003-04-28  Havoc Pennington  <hp@redhat.com>
9356
9357         * configure.in: 0.10
9358
9359         * NEWS: update
9360
9361         * bus/system.conf.in: add <includedir>system.d</includedir>
9362
9363         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9364         username was provided but not uid
9365
9366         * bus/config-parser.c (struct BusConfigParser): keep track of
9367         whether the parser is toplevel or was included; change some
9368         of the error handling if it's included.
9369
9370 2003-04-27  Havoc Pennington  <hp@pobox.com>
9371
9372         Unbreak my code...
9373
9374         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9375         report correct status if we finish processing authentication
9376         inside this function.
9377
9378         * bus/activation.c (try_send_activation_failure): use
9379         bus_transaction_send_error_reply
9380
9381         * bus/connection.c (bus_connection_get_groups): return an error
9382         explaining the problem
9383
9384         * bus/bus.c (bus_context_check_security_policy): implement
9385         restriction here that inactive connections can only send the
9386         hello message. Also, allow bus driver to send anything to
9387         any recipient.
9388
9389         * bus/connection.c (bus_connection_complete): create the
9390         BusClientPolicy here instead of on-demand.
9391         (bus_connection_get_policy): don't return an error
9392
9393         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9394         sender field in message being replied to
9395
9396         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9397         causing it to return FALSE always
9398
9399         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9400         we checked sender rather than destination
9401
9402 2003-04-25  Havoc Pennington  <hp@redhat.com>
9403
9404         test suite is slightly hosed at the moment, will fix soon
9405
9406         * bus/connection.c (bus_connections_expire_incomplete): fix to
9407         properly disable the timeout when required
9408         (bus_connection_set_name): check whether we can remove incomplete
9409         connections timeout after we complete each connection.
9410
9411         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9412         probably still broken.
9413
9414         * bus/services.c (bus_registry_acquire_service): implement max
9415         number of services owned, and honor allow/deny rules on which
9416         services a connection can own.
9417
9418         * bus/connection.c (bus_connection_get_policy): report errors here
9419
9420         * bus/activation.c: implement limit on number of pending
9421         activations
9422
9423 2003-04-25  Havoc Pennington  <hp@redhat.com>
9424
9425         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9426         where we used >= 0 instead of != DBUS_UID_UNSET.
9427
9428 2003-04-25  Havoc Pennington  <hp@redhat.com>
9429
9430         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9431         were toggled without add/remove, fix from Anders Gustafsson
9432
9433 2003-04-24  Havoc Pennington  <hp@redhat.com>
9434
9435         * test/data/valid-config-files/basic.conf: add <limit> tags to
9436         this test
9437
9438         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9439         <limit> tag in configuration file.
9440
9441 2003-04-24  Havoc Pennington  <hp@redhat.com>
9442
9443         * bus/dispatch.c: somehow missed some name_is
9444
9445         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9446         (_dbus_timeout_set_interval): new
9447
9448         * bus/connection.c (bus_connections_setup_connection): record time
9449         when each connection is first set up, and expire them after the
9450         auth timeout passes.
9451
9452 2003-04-24  Havoc Pennington  <hp@redhat.com>
9453
9454         * dbus/dbus-message.c (dbus_message_name_is): rename
9455         (dbus_message_service_is): rename
9456         (dbus_message_sender_is): rename
9457         (dbus_message_get_service): rename
9458
9459 2003-04-24  Havoc Pennington  <hp@redhat.com>
9460
9461         * configure.in: add --enable-checks
9462
9463         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9464
9465         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9466         to use thread locks.
9467         (_dbus_connection_handler_destroyed_locked): move some private
9468         functions into proper docs group
9469
9470         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9471         _dbus_return_val_if_fail
9472
9473         Throughout: use dbus_return_if_fail
9474
9475 2003-04-23  James Willcox  <jwillcox@gnome.org>
9476
9477         * glib/dbus-glib.h:
9478         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9479         (dbus_connection_setup_with_g_main),
9480         (dbus_server_setup_with_g_main):
9481         * glib/test-dbus-glib.c: (main):
9482         * glib/test-thread-client.c: (main):
9483         * glib/test-thread-server.c: (new_connection_callback), (main):
9484         * tools/dbus-monitor.c: (main):
9485
9486         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9487         and dbus_server_setup_with_g_main().
9488
9489 2003-04-20  Havoc Pennington  <hp@pobox.com>
9490
9491         * doc/dbus-specification.sgml: document the restrictions on
9492         message and service names
9493
9494 2003-04-22  Havoc Pennington  <hp@redhat.com>
9495
9496         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9497         support, and do some code cleanups to share more code and
9498         speed up array marshal/demarshal.
9499
9500         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9501
9502         * configure.in: generate dbus-arch-deps.h
9503
9504         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9505         64-bit typecodes
9506
9507 2003-04-22  Havoc Pennington  <hp@redhat.com>
9508
9509         * test/data/valid-messages/opposite-endian.message: fix test
9510         to use proper type for rply field
9511
9512         * test/data/invalid-messages: add tests for below validation
9513
9514         * dbus/dbus-message.c (decode_header_data): validate field types,
9515         and validate that named fields are valid names
9516         (decode_name_field): consider messages in the
9517         org.freedesktop.Local. namespace to be invalid.
9518
9519         * dbus/dbus-string.c (_dbus_string_validate_name): new
9520
9521 2003-04-19  Havoc Pennington  <hp@pobox.com>
9522
9523         * bus/driver.c (bus_driver_handle_hello): check limits and
9524         return an error if they are exceeded.
9525
9526         * bus/connection.c: maintain separate lists of active and inactive
9527         connections, and a count of each. Maintain count of completed
9528         connections per user. Implement code to check connection limits.
9529
9530         * dbus/dbus-list.c (_dbus_list_unlink): export
9531
9532         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9533         number of bytes in the message queue for a connection
9534
9535 2003-04-18  Havoc Pennington  <hp@pobox.com>
9536
9537         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9538
9539         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9540         memleaks
9541
9542         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9543         on realloc be sure to update the pointer in the keyring
9544
9545         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9546         offset to avoid writing to unallocated memory
9547
9548         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9549         try the next mechanism, so we properly handle OOM
9550
9551         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9552         on OOM.
9553         (_dbus_keyring_new): fix OOM bug
9554         (_dbus_keyring_new_homedir): always set error; impose a maximum
9555         number of keys we'll load from the file, mostly to speed up the
9556         test suite and make its OOM checks more useful, but also for
9557         general sanity.
9558
9559         * dbus/dbus-auth.c (process_error_server): reject authentication
9560         if we get an error from the client
9561         (process_cancel): on cancel, send REJECTED, per the spec
9562         (process_error_client): send CANCEL if we get an error from the
9563         server.
9564
9565 2003-04-18  Havoc Pennington  <hp@pobox.com>
9566
9567         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9568         debug spew
9569
9570         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9571         handling problem
9572
9573         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9574         about DBUS_TEST_HOMEDIR once
9575
9576         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9577         the environment
9578
9579         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9580         config file so we test the right thing
9581
9582         Throughout: assorted docs improvements
9583
9584 2003-04-18  Havoc Pennington  <hp@pobox.com>
9585
9586         * glib/dbus-gmain.c: adapt to watch changes
9587
9588         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9589
9590         * dbus/dbus-server.h: remove dbus_server_handle_watch
9591
9592         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9593
9594         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9595         like DBusTimeout, so we don't need dbus_connection_handle_watch
9596         etc.
9597
9598 2003-04-17  Havoc Pennington  <hp@redhat.com>
9599
9600         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9601         database usage so it all goes via the DBusUserDatabase cache.
9602
9603 2003-04-17  Havoc Pennington  <hp@redhat.com>
9604
9605         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9606         there was an OOM watch we skipped, we always return TRUE so we
9607         iterate again to have a look at it again. Fixes test suite hang.
9608         Code rearrangement also lets us lose some memset and only iterate
9609         over callbacks once.
9610
9611         * bus/driver.c (bus_driver_handle_message): sense of test for
9612         reply was backward
9613
9614 2003-04-16  Havoc Pennington  <hp@pobox.com>
9615
9616         * doc/dbus-specification.sgml: make spec say serials are unsigned
9617
9618         * dbus/dbus-message.h: change message serials to unsigned
9619
9620         * dbus/dbus-connection.c: adapt to message serials being unsigned
9621
9622 2003-04-15  Havoc Pennington  <hp@pobox.com>
9623
9624         * bus/bus.c: create and keep around a shared DBusUserDatabase
9625         object.
9626
9627         * bus/connection.c (bus_connection_get_groups): don't cache
9628         groups for user in the connection object, since user database
9629         object now does that.
9630
9631 2003-04-16  Havoc Pennington  <hp@redhat.com>
9632
9633         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9634         list of size counters
9635         (_dbus_message_loader_putback_message_link): put back a popped link
9636
9637         * dbus/dbus-connection.c
9638         (dbus_connection_set_max_live_messages_size): rename
9639         max_received_size
9640         (dbus_connection_get_outgoing_size): get size of outgoing
9641         queue
9642         (_dbus_connection_set_connection_counter): remove this cruft
9643
9644 2003-04-14  Havoc Pennington  <hp@redhat.com>
9645
9646         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9647         caching, but at some point we might want to be able to use a
9648         different database.
9649
9650         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9651         SHA1 conf file to test the sha1 auth mechanism, since the regular
9652         test always uses EXTERNAL when available.
9653
9654         * configure.in,
9655         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9656         add conf file that requires use of sha1 auth
9657
9658 2003-04-13  Havoc Pennington  <hp@pobox.com>
9659
9660         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9661         from Philip Blundell to send messages and monitor them.
9662
9663 2003-04-13  Havoc Pennington  <hp@pobox.com>
9664
9665         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9666         callbacks
9667
9668         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9669         users
9670
9671         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9672         fix to only recover unused bytes if we're already authenticated
9673         (_dbus_transport_get_is_authenticated): fix to still mark us
9674         authenticated if there are unused bytes.
9675
9676         * bus/dispatch.c: implement security policy checking
9677
9678         * bus/connection.c (bus_transaction_send_from_driver): new
9679
9680         * bus/bus.c (bus_context_check_security_policy): new
9681
9682         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9683         now we just set the DBusError and it gets converted to an error
9684         reply.
9685
9686         * bus/connection.c (allow_user_function): enable code using actual
9687         data from the config file
9688
9689         * bus/policy.c (list_allows_user): handle wildcard rules for
9690         user/group connection perms
9691
9692 2003-04-13  Havoc Pennington  <hp@pobox.com>
9693
9694         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9695
9696         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9697
9698         * bus/policy.c (bus_policy_append_mandatory_rule)
9699         (bus_policy_append_default_rule, bus_policy_append_user_rule)
9700         (bus_policy_append_group_rule): new functions
9701
9702 2003-04-12  Havoc Pennington  <hp@pobox.com>
9703
9704         * bus/config-parser.c (bus_config_parser_new): fix a memleak
9705
9706         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9707         the pid/gid/uid, just for paranoia.
9708
9709         * test/break-loader.c (randomly_do_n_things): find a byte
9710         containing a type code, and randomly change it to a different
9711         type code.
9712
9713 2003-04-12  Havoc Pennington  <hp@pobox.com>
9714
9715         * bus/policy.h: change BusPolicy to be the thing from the config
9716         file, and rename old BusPolicy to BusClientPolicy
9717
9718         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9719         match change in how policy works
9720
9721         * dbus/dbus-internals.h: mark assert_not_reached as
9722         __attribute((noreturn))__
9723
9724 2003-04-11  Havoc Pennington  <hp@redhat.com>
9725
9726         * doc/dbus-specification.sgml: fix a spot with the wrong name for
9727         the broadcast service. Use boolean return for ServiceExists.
9728
9729 2003-04-11  Havoc Pennington  <hp@redhat.com>
9730
9731         * configure.in: add another directory to look for qt in.
9732
9733 2003-04-11  Havoc Pennington  <hp@redhat.com>
9734
9735         * AUTHORS: add Colin Walters
9736
9737 2003-04-11  Havoc Pennington  <hp@redhat.com>
9738
9739         * NEWS: update
9740
9741         * configure.in: 0.9
9742
9743 2003-04-11  Havoc Pennington  <hp@redhat.com>
9744
9745         * bus/messagebus.in: remove pid file when stopping the
9746         message bus, since the bus won't have privileges to remove it
9747         itself.
9748
9749 2003-04-11  Havoc Pennington  <hp@redhat.com>
9750
9751         * bus/bus.c (bus_context_new): move credentials change after
9752         creating pidfile
9753
9754 2003-04-11  Havoc Pennington  <hp@pobox.com>
9755
9756         * test/decode-gcov.c: add "below average functions" to the
9757         coverage report, and change how some of the code works.
9758
9759         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9760         not in the coverage stats.
9761
9762         * test/test-service.c (main): use _dbus_verbose not fprintf in a
9763         couple places so running the test suite doesn't result in megaspam.
9764
9765 2003-04-11  Havoc Pennington  <hp@pobox.com>
9766
9767         * bus/dispatch.c (check_existent_service_activation): accept a no
9768         memory error in a place we didn't before
9769
9770         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9771         in case the first one failed," since the test suite is less
9772         broken now.
9773
9774 2003-04-10  Havoc Pennington  <hp@pobox.com>
9775
9776         * bus/dispatch.c (check_segfault_service_activation): add test
9777         for launching an executable that just crashes.
9778
9779         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9780         don't leave a million cores. We'll see how portable this is.
9781
9782 2003-04-10  Havoc Pennington  <hp@pobox.com>
9783
9784         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9785         the possible parent failures before we fork, so that we don't
9786         fail to create a babysitter after creating the child.
9787
9788         * bus/activation.c (bus_activation_activate_service): kill child
9789         if we don't successfully complete the activation.
9790
9791 2003-04-10  Havoc Pennington  <hp@redhat.com>
9792
9793         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9794         the connection if it's disconnected
9795
9796         * bus/activation.c (bus_activation_service_created): use new
9797         transaction features to roll back removal of pending activation if
9798         we don't successfully create the service after all. Don't remove
9799         pending activation if the function fails.
9800
9801         * dbus/dbus-list.c (_dbus_list_insert_before_link)
9802         (_dbus_list_insert_after_link): new code to facilitate
9803         services.c fixes
9804
9805         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9806         new functionality, so we can preallocate the ability to insert
9807         into a hash table.
9808
9809         * bus/connection.c (bus_transaction_add_cancel_hook): new function
9810         allowing us to put custom hooks in a transaction to be used for
9811         cancelling said transaction
9812
9813         * doc/dbus-specification.sgml: add some discussion of secondary
9814         service owners, and disallow zero-length service names
9815
9816         * bus/services.c (bus_registry_acquire_service): new function,
9817         splits out part of bus_driver_handle_acquire_service() and fixes
9818         a bug where we didn't remove the service doing the acquiring
9819         from the secondary queue if we failed to remove the current owner
9820         from the front of the queue.
9821
9822 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9823
9824         * doc/dbus-specification.sgml:
9825         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9826
9827 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9828
9829         * bus/.cvsignore:
9830         * glib/.cvsignore:
9831         * test/.cvsignore:
9832         Added files to cvsignore
9833
9834         * dbus/dbus-message.h:
9835         * dbus/dbus-message.c: (dbus_message_iter_get_named):
9836         Make get_named() take two out argument and return a boolean.
9837         (dbus_message_iter_get_args_valist):
9838         Update usage of get_named().
9839         (dbus_message_iter_append_byte):
9840         Fix typo
9841         (dbus_message_iter_append_named)
9842         Fix typo
9843         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9844         More tests.
9845
9846 2003-04-10  Alexander Larsson  <alexl@redhat.com>
9847
9848         * dbus/dbus-marshal.[ch]:
9849         Add array_type_pos argument to _dbus_marshal_validate_arg.
9850         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9851
9852         * dbus/dbus-message.[ch]:
9853         Multi-dimensional arrays have full type specification in the
9854         outermost array. Iter code re-arranged to handle this.
9855         Added some more iter tests.
9856
9857         * doc/dbus-specification.sgml:
9858         Add me to authors.
9859         Remove old FIXME.
9860         Update new array encoding description.
9861         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9862
9863         * test/data/invalid-messages/array-with-mixed-types.message:
9864         * test/data/valid-messages/array-of-array-of-uint32.message:
9865         Change to the new array format.
9866
9867         * test/data/invalid-messages/too-short-dict.message:
9868         Fix bug in test.
9869
9870         * test/data/valid-messages/recursive-types.message:
9871         Fix up and extend test.
9872
9873 2003-04-10  Havoc Pennington  <hp@pobox.com>
9874
9875         * bus/dispatch.c: lots of fixes
9876
9877         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9878         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9879         that was crack, broke the test service.
9880
9881         * dbus/dbus-transport.c (_dbus_transport_open): fix error
9882         handling to avoid piling up errors if we get a failure on the
9883         first address.
9884
9885         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9886         pid in assertion failures.
9887
9888         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9889         to some fixed size of file descriptor array. Don't return TRUE
9890         anytime a timeout exists, that led to lots of busy loop silliness
9891         in the tests.
9892
9893 2003-04-09  Havoc Pennington  <hp@redhat.com>
9894
9895         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9896         I'd checked this in earlier but hadn't.
9897
9898 2003-04-09  Havoc Pennington  <hp@redhat.com>
9899
9900         * bus/dispatch.c (bus_dispatch_test): get a bit further through
9901         the activation test (man this is getting old!)
9902
9903 2003-04-09  Havoc Pennington  <hp@redhat.com>
9904
9905         * test/test-utils.c: use dispatch status function to fix this up
9906
9907         * bus/connection.c (connection_watch_callback): don't dispatch
9908         from here
9909         (connection_timeout_callback): don't dispatch from here
9910         (bus_connections_setup_connection): set the dispatch status function
9911         (bus_connection_disconnected): unset it
9912
9913         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9914         used to add a connection to be dispatched
9915         (_dbus_loop_iterate): do the dispatching at the end of each
9916         iteration
9917
9918         * dbus/dbus-connection.c
9919         (dbus_connection_set_dispatch_status_function): new function
9920         allowing us to fix up main loop usage
9921         (_dbus_connection_last_unref): free all the various function
9922         user data
9923         (dbus_connection_dispatch): call the DispatchStatusFunction
9924         whenever this function returns
9925         (dbus_connection_handle_watch): call DispatchStatusFunction
9926         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9927         (reply_handler_timeout): call DispatchStatusFunction
9928         (dbus_connection_flush): call DispatchStatusFunction
9929
9930 2003-04-09  Havoc Pennington  <hp@redhat.com>
9931
9932         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9933         a memory leak
9934
9935         * bus/dispatch.c (check_service_activated): fix bug in test
9936
9937         * dbus/dbus-mainloop.c (check_timeout): fix this up
9938
9939         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9940         verbose output so we can sort out output from different processes,
9941         e.g. in the activation case.
9942
9943 2003-04-08  Colin Walters  <walters@gnu.org>
9944
9945         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9946         the pid file.
9947         (bus_context_new): Set it.
9948         (bus_context_unref): Use it to delete the pid file.
9949
9950 2003-04-08  Havoc Pennington  <hp@redhat.com>
9951
9952         * test/data/invalid-messages/array-with-mixed-types.message:
9953         regression test that fails for the moment
9954
9955         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9956         tests for convenience
9957
9958         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9959         array of nil, it broke things.
9960
9961         * test/data/invalid-messages/array-of-nil.message: regression test
9962
9963         * test/data/valid-messages/array-of-array-of-uint32.message:
9964         happened to write this so added it to suite
9965
9966 2003-04-08  Havoc Pennington  <hp@redhat.com>
9967
9968         * bus/driver.c (bus_driver_handle_acquire_service): init
9969         retval/reply before checking name
9970
9971         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9972         recursion depth argument
9973
9974         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9975         in the public struct for future extension
9976
9977         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9978         typo
9979
9980         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9981         message
9982
9983         * doc/dbus-specification.sgml: fix typo
9984
9985 2003-04-08  Alexander Larsson  <alexl@redhat.com>
9986
9987         Implemented recursive types, named types and new-style iters
9988
9989         * bus/driver.c:
9990         * glib/test-thread-client.c: (thread_func):
9991         * glib/test-thread-server.c: (handle_test_message):
9992         * test/test-service.c: (handle_echo):
9993         Update to new api
9994
9995         * dbus/Makefile.am:
9996         * dbus/dbus-dict.c:
9997         * dbus/dbus-dict.h:
9998         * dbus/dbus.h
9999         Remove DBusDict
10000
10001         * dbus/dbus-internals.c: (_dbus_type_to_string):
10002         Update for new types.
10003
10004         * dbus/dbus-marshal.[ch]:
10005         Implement recursive types and the new marshalling format.
10006         Remove hardcoded dict marshalling.
10007         Marshal named types.
10008
10009         * dbus/dbus-message-builder.c:
10010         Add BYTE_ARRAY.
10011         Remove references to old types
10012
10013         * dbus/dbus-message.[ch]:
10014         New non-refcounted iter API that supports recursive iters.
10015         Use iters for appending, including support for recursive
10016         iters.
10017         Add byte and named type support.
10018         Update everything to new marshalling formats.
10019         Add tests for new API.
10020
10021         * dbus/dbus-protocol.h:
10022         Remove old array types.
10023         Add types: BYTE, ARRAY, DICT, NAMED
10024
10025         * dbus/dbus-string.c:
10026         * dbus/dbus-sysdeps.c:
10027         Make parse_double locale safe.
10028
10029         * dbus/dbus-test-main.c:
10030         Call setlocale.
10031
10032         * dbus/dbus-test.c:
10033         Kill dict test
10034
10035         * doc/dbus-specification.sgml:
10036         Update spec
10037
10038         * test/data/incomplete-messages/missing-body.message:
10039         * test/data/invalid-messages/bad-boolean.message:
10040         * test/data/invalid-messages/bad-boolean-array.message:
10041         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10042         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10043         * test/data/invalid-messages/too-short-dict.message:
10044         * test/data/valid-messages/dict-simple.message:
10045         * test/data/valid-messages/dict.message:
10046         * test/data/valid-messages/emptiness.message:
10047         * test/data/valid-messages/lots-of-arguments.message:
10048         * test/data/valid-messages/no-padding.message:
10049         * test/data/valid-messages/recursive-types.message:
10050         Add missing NAME fields
10051         Fix up dicts & arrays
10052
10053         * test/data/invalid-messages/dict-with-nil-value.message:
10054         Removed, this is not invalid anymore.
10055
10056         * test/data/valid-messages/recursive-types.message:
10057         Add new test for deeply recursive types.
10058
10059 2003-04-07  Havoc Pennington  <hp@pobox.com>
10060
10061         * bus/driver.c (bus_driver_handle_acquire_service): return an
10062         error if you try to acquire a service that starts with ':'
10063
10064 2003-04-07  Havoc Pennington  <hp@redhat.com>
10065
10066         * doc/dbus-specification.sgml: require that base service names
10067         start with ':' and that the base service is created/deleted
10068         as first and last things a connection does on the bus
10069
10070         * bus/dispatch.c (check_existent_service_activation): lots more
10071         work on the activation test; it doesn't fully pass yet...
10072
10073         * test/test-service.c (main): fix so we don't memleak the
10074         connection to the message bus
10075         (filter_func): accept a message asking us to exit
10076
10077 2003-04-06  Havoc Pennington  <hp@pobox.com>
10078
10079         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10080         from Colin Walters
10081
10082         * configure.in: fixes to Qt detection from Colin Walters
10083
10084         * doc/Makefile.am: Only remove generated docbook dirs if they
10085         exist, from Colin Walters
10086
10087         * dbus/dbus-bus.c: change how we set well-known connections to
10088         NULL, so that it works if a single connection is stored in
10089         two well-known array slots.
10090
10091         * test/Makefile.am: remove a lot of stuff that isn't immediately
10092         useful, it's in CVS history if we want it.
10093
10094         * test/test-service.c: use dbus-mainloop instead of that
10095         watch.[hc] crack
10096
10097 2003-04-06  Havoc Pennington  <hp@pobox.com>
10098
10099         * dbus/Makefile.am: split lists of sources into stuff that goes in
10100         the library, util functions that go in the lib and are also used
10101         elsewhere, and util functions that are used in tests/daemon but
10102         don't go in the lib.
10103
10104         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10105         here so it can be used in test binaries also
10106
10107 2003-04-06  Havoc Pennington  <hp@pobox.com>
10108
10109         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10110         here in the parent process, so we can return an error if it
10111         fails. Also, move some of the code into the child so the parent
10112         is less hosed if we fail midway through.
10113
10114         * bus/bus.c (bus_context_new): move pidfile detection further up
10115         in the function, before we start overwriting sockets and such.
10116
10117         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10118
10119         * configure.in: add --with-system-pid-file and --with-system-socket
10120
10121 2003-04-06  Colin Walters  <walters@verbum.org>
10122
10123         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10124
10125         * bus/system.conf.in: Declare a pidfile.
10126
10127         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10128         create one (if appropriate).
10129
10130         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10131         (struct BusConfigParser) [pidfile]: New.
10132         (element_type_to_name, merge_included, start_busconfig_child)
10133         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10134         (bus_config_parser_unref): Free it.
10135         (bus_config_parser_get_pidfile): New function.
10136
10137         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10138
10139         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10140
10141         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10142
10143         * dbus/dbus-sysdeps.h: Prototype it.
10144
10145 2003-04-06  Havoc Pennington  <hp@pobox.com>
10146
10147         * bus/bus.c (bus_context_new): print the address in here, rather
10148         than in main(), because we need to do it before forking the daemon
10149
10150         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10151         on the service nonexistent error
10152
10153         * bus/driver.c (bus_driver_handle_acquire_service): set the
10154         sender on the AcquireService reply
10155
10156         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10157         server also listen on a UNIX socket so services can connect to it.
10158
10159 2003-04-06  Havoc Pennington  <hp@pobox.com>
10160
10161         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10162         so it detects deadlocks and also we actually init threads when
10163         debugging.
10164
10165 2003-04-06  Havoc Pennington  <hp@pobox.com>
10166
10167         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10168         save the domain socket name, and unlink it when we disconnect the
10169         server. Means that at least when we exit normally, we won't leave
10170         a bunch of junk in /tmp
10171
10172         * dbus/dbus-transport-unix.c
10173         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10174         memory management). (I was making a real change here but then
10175         didn't)
10176
10177 2003-04-06  Havoc Pennington  <hp@pobox.com>
10178
10179         * bus/bus.c (bus_context_new): fix wrong handling of
10180         server_data_slot_unref() in the error case.
10181
10182         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10183         "(condition) != 0" to _dbus_real_assert so that
10184         "_dbus_assert (pointer)" doesn't cause a warning
10185
10186         * bus/main.c (main): accept --print-address option to print out
10187         the message bus address
10188
10189         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10190
10191         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10192         "tmpdir" option to unix: address on client side
10193
10194         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10195         to unix: address
10196
10197         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10198         we can use to create sockets in the test suite.
10199
10200         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10201         cleanly. To be used for testing.
10202
10203         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10204
10205         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10206
10207         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10208         handle trying to call this when there's no servers active
10209
10210 2003-04-05  Havoc Pennington  <hp@pobox.com>
10211
10212         * NEWS: update
10213
10214         * configure.in: 0.8
10215
10216 2003-04-05  Havoc Pennington  <hp@pobox.com>
10217
10218         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10219         crash on startup. Need to get "try starting the daemon"
10220         in the test suite I guess. ;-)
10221
10222         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10223         tracked the number of open connections; it's better done in
10224         application-specific code as you want it to span all servers etc.
10225
10226 2003-04-05  Havoc Pennington  <hp@pobox.com>
10227
10228         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10229         patch from Colin Walters
10230
10231 2003-04-05  Havoc Pennington  <hp@pobox.com>
10232
10233         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10234         reality; in fact multiple mechanisms are allowed.
10235
10236         * dbus/dbus-internals.c (_dbus_real_assert)
10237         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10238         _dbus_assert_not_reached() into functions, so that they don't show
10239         up in basic block counts for test coverage, and don't use up as
10240         much disk space. Does mean slower execution speed though, so
10241         assumes --disable-asserts is the normal production case.
10242
10243 2003-04-05  Havoc Pennington  <hp@pobox.com>
10244
10245         * test/Makefile.am (dist-hook): also dist *.in files
10246
10247         * NEWS: update
10248
10249         * configure.in: 0.7
10250
10251 2003-04-05  Havoc Pennington  <hp@pobox.com>
10252
10253         * dbus/dbus-string.c: docs warning
10254
10255         * dbus/dbus-spawn.c: missing docs
10256
10257         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10258
10259 2003-04-05  Havoc Pennington  <hp@pobox.com>
10260
10261         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10262         magic from GLib
10263
10264         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10265         to -1 once we've reaped the babysitter
10266         (_dbus_babysitter_handle_watch): do as much work as we can, not
10267         just one go of it
10268
10269         * bus/activation.c: add code using DBusBabysitter so that we
10270         handle it when a service fails to start up properly.
10271         (bus_activation_service_created): don't remove the activation
10272         entries as we go, just let them get removed when we free the pending
10273         activation. Unref reply messages after sending them.
10274
10275 2003-04-05  Havoc Pennington  <hp@pobox.com>
10276
10277         * test/decode-gcov.c (main): print per-directory stats in the report
10278
10279         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10280
10281 2003-04-05  Havoc Pennington  <hp@pobox.com>
10282
10283         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10284
10285         * test/decode-gcov.c: hack up a little program to suck data
10286         out of gcov files. Yes this is sort of silly.
10287
10288         * configure.in: define something in config.h and do an
10289         AM_CONDITIONAL when gcov is enabled
10290
10291 2003-04-04  Havoc Pennington  <hp@redhat.com>
10292
10293         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10294         return a "babysitter" object that is used to monitor the status of
10295         the spawned process and reap it when required.
10296
10297         * test/test-segfault.c, test/test-exit.c,
10298         test/test-sleep-forever.c: binaries that do various lame things,
10299         used in the test suite.
10300
10301         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10302
10303 2003-04-03  Havoc Pennington  <hp@pobox.com>
10304
10305         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10306         in preparation for modifying it, dbus-sysdeps is getting
10307         a bit unmanageable.
10308
10309 2003-04-03  Havoc Pennington  <hp@redhat.com>
10310
10311         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10312         have multiple ones
10313
10314         * bus/*.[hc]: adapt to mainloop change
10315
10316 2003-04-03  Havoc Pennington  <hp@redhat.com>
10317
10318         * bus/activation.c (load_directory): fix up memleaks
10319         (bus_activation_entry_free): free the entry
10320
10321         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10322         we get one from the message bus; fix memleaks.
10323
10324         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10325
10326 2003-04-03  Havoc Pennington  <hp@pobox.com>
10327
10328         * bus/config-parser.c (bus_config_parser_unref): free
10329         list of mechanisms, bug discovered by test suite enhancements
10330         (putting system.conf and session.conf into suite)
10331
10332         * test/Makefile.am, test/test-service.c: add placeholder for a
10333         test service that we'll activate as part of test suite. Doesn't
10334         do anything yet.
10335
10336         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10337         setting NULL value, and use system malloc not dbus_malloc()
10338         when we have unavoidable memleakage.
10339
10340         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10341         didn't work, and support DBUS_BUS_ACTIVATION.
10342
10343         * bus/activation.c (child_setup): pass our well-known bus type to
10344         the child
10345
10346         * bus/config-parser.c: support <type> to specify well-known type
10347
10348         * doc/dbus-specification.sgml: document the env variables to
10349         locate well-known buses and find service activator
10350
10351 2003-04-02  Havoc Pennington  <hp@redhat.com>
10352
10353         * test/Makefile.am (all-local): add a rule to copy tests to
10354         builddir, so we can have generated tests. Use this to remove the
10355         silly hack for testing system.conf and session.conf. Will use this
10356         shortly to generate .service files pointing to test binaries.
10357
10358 2003-04-02  Havoc Pennington  <hp@redhat.com>
10359
10360         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10361         current alloc and needed new length, not max of the doubled
10362         allocation and needed new length. Also, when building tests,
10363         don't do the double-allocation stuff, just realloc every time.
10364
10365 2003-04-02  Havoc Pennington  <hp@redhat.com>
10366
10367         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10368         in error messages
10369         (_dbus_string_get_dirname): new
10370         (_dbus_sysdeps_test): new
10371         (_dbus_directory_open): include dirnames in error messages
10372
10373         * bus/config-parser.c: interpret <include> and <includedir> and
10374         <servicedir> relative to config file location if the given
10375         filename is not absolute.
10376
10377         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10378
10379 2003-04-02  Havoc Pennington  <hp@redhat.com>
10380
10381         * bus/connection.c (bus_transaction_send_error_reply): set sender
10382         service for the error, and unref the reply on success
10383
10384         * bus/activation.c: convert to use BusTransaction so OOM can be
10385         handled correctly
10386         (bus_activation_service_created): set sender of the message
10387
10388 2003-04-01  Havoc Pennington  <hp@redhat.com>
10389
10390         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10391         <includedir> (at least mostly)
10392
10393         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10394         first, then the user ID
10395
10396 2003-04-01  Havoc Pennington  <hp@pobox.com>
10397
10398         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10399         function
10400
10401         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10402
10403         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10404
10405         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10406         socket 0777, and unlink any existing socket.
10407
10408         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10409         the configuration file so specifies; set up auth mechanism
10410         restrictions
10411
10412         * bus/config-parser.c (bus_config_parser_content): add support
10413         for <fork> option and fill in code for <auth>
10414
10415         * bus/system.conf.in: add <fork/> to default configuration,
10416         and limit auth mechanisms to EXTERNAL
10417
10418         * doc/config-file.txt (Elements): add <fork>
10419
10420         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10421         (_dbus_change_identity): new function
10422
10423 2003-03-31  Havoc Pennington  <hp@redhat.com>
10424
10425         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10426         (_dbus_listen_unix_socket): fix off-by-one error in null
10427         termination spotted by Nalin
10428
10429 2003-03-31  Havoc Pennington  <hp@redhat.com>
10430
10431         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10432         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10433         having a real home directory available.
10434
10435 2003-03-31  Havoc Pennington  <hp@redhat.com>
10436
10437         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10438
10439         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10440
10441         * configure.in: add support for specifying a style of init script
10442         to install
10443
10444 2003-03-31  Havoc Pennington  <hp@redhat.com>
10445
10446         Fix some annoying DBusString API and fix all affected code.
10447
10448         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10449         max_length argument
10450         (_dbus_string_get_data): change to return string instead of using
10451         an out param
10452         (_dbus_string_get_const_data): ditto
10453         (_dbus_string_get_data_len): ditto
10454         (_dbus_string_get_const_data_len): ditto
10455
10456 2003-03-31  Havoc Pennington  <hp@redhat.com>
10457
10458         * bus/main.c (main): fix up the command line arguments to be nicer
10459
10460 2003-03-31  Havoc Pennington  <hp@redhat.com>
10461
10462         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10463         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10464         final location that lands in the config file
10465
10466         * bus/config-loader-expat.c (bus_config_load): fix type of
10467         XML_Parser variable
10468
10469         * doc/TODO: remove TODO item for dbus_bus_get()
10470
10471         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10472
10473 2003-03-31  Havoc Pennington  <hp@pobox.com>
10474
10475         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10476         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10477         argument since they are always client side
10478
10479         * dbus/dbus-server.c (dbus_server_get_address): new function
10480
10481         * bus/main.c (main): take the configuration file as an argument.
10482
10483         * test/data/valid-config-files/debug-allow-all.conf: new file to
10484         use with dispatch.c tests for example
10485
10486         * bus/test-main.c (main): require test data dir
10487
10488         * bus/bus.c (bus_context_new): change this to take a
10489         configuration file name as argument
10490
10491         * doc/config-file.txt (Elements): add <servicedir>
10492
10493         * bus/system.conf, bus/session.conf: new files
10494
10495         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10496         well-known socket if none set
10497
10498         * configure.in: create system.conf and session.conf
10499
10500 2003-03-30  Havoc Pennington  <hp@pobox.com>
10501
10502         * bus/config-parser.c: hacking
10503
10504         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10505         to shut down, since it could cause weirdness with the DBusList
10506         lock
10507
10508         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10509         link-oriented stack routines
10510         (alloc_link): free the mempool if the first alloc from it fails
10511
10512         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10513
10514         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10515         from GLib
10516         (_dbus_string_skip_white): new
10517
10518         * doc/config-file.txt (Elements): add <includedir>
10519
10520 2003-03-28  Havoc Pennington  <hp@pobox.com>
10521
10522         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10523         (_dbus_string_copy_data): new functions
10524
10525 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10526
10527         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10528         * dbus/dbus-bus.h:
10529         Add dbus_bus_get.
10530
10531         * dbus/dbus-memory.c:
10532         Fix a doc comment.
10533
10534 2003-03-28  Havoc Pennington  <hp@pobox.com>
10535
10536         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10537         I think it may have just been superstition. Not sure.
10538
10539         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10540         failures that were not being handled.
10541
10542         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10543
10544         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10545         row that will fail on out-of-memory.
10546
10547         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10548         function for testing out-of-memory handling.
10549
10550         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10551         allocation functions, they do map exactly to the expat ones.
10552
10553 2003-03-27  Havoc Pennington  <hp@redhat.com>
10554
10555         * bus/config-loader-libxml.c (bus_config_load): add another error
10556         check
10557
10558 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10559
10560         * doc/TODO:
10561         Add note about automatic service activation.
10562
10563         * doc/dbus-specification.sgml:
10564         Rename the specification and clarify a few things.
10565
10566 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10567
10568         * Doxyfile.in:
10569         * dbus/dbus-address.c:
10570         * dbus/dbus-dict.c:
10571         * dbus/dbus-marshal.c:
10572         * dbus/dbus-server-debug-pipe.c:
10573         * dbus/dbus-transport-unix.c:
10574         Fix documentation warnings.
10575
10576 2003-03-26  Havoc Pennington  <hp@pobox.com>
10577
10578         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10579         after every test so it's quick and easy to see which leaked, and
10580         so we test multiple dbus_shutdown() calls
10581
10582         * configure.in: change configure.in XML stuff to also support
10583         expat
10584
10585         * config-loader-libxml.c: some hacking
10586
10587         * config-loader-expat.c: some hacking
10588
10589         * config-parser.c: some hacking, plus tests
10590
10591 2003-03-25  Havoc Pennington  <hp@redhat.com>
10592
10593         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10594
10595         * configure.in: add --with-xml option to specify XML library,
10596         right now only libxml is supported.
10597
10598         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10599         nonworking code between home and work, still just stubs
10600
10601 2003-03-24  Havoc Pennington  <hp@redhat.com>
10602
10603         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10604         file
10605
10606         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10607         NULL argument for "message" if the error is a well-known one,
10608         fill in a generic message in this case.
10609
10610         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10611         favor of DBusError
10612
10613         * bus/test.c (bus_test_flush_bus): add
10614
10615         * bus/policy.c (bus_policy_test): test code stub
10616
10617 2003-03-24  Havoc Pennington  <hp@pobox.com>
10618
10619         * bus/connection.c (bus_connections_setup_connection): set up
10620         the "can this user connect" function, but it always returns
10621         TRUE until we have a config file parser so we can have a config
10622         file that allows connections.
10623
10624 2003-03-23  Havoc Pennington  <hp@pobox.com>
10625
10626         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10627         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10628         the mutex, so we can check for proper memory management
10629         and OOM handling.
10630
10631         * dbus/dbus-dataslot.c: remove the mutex from
10632         DBusDataSlotAllocator and lock it manually when using it,
10633         to simplify fitting it into the global slots framework.
10634
10635         * dbus/dbus-threads.c (init_static_locks): rework how we're
10636         handling global locks so they are easily shut down.
10637
10638         * bus/policy.c (bus_policy_append_rule): fix
10639
10640         * bus/test-main.c (main): check for memleaks
10641
10642         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10643         test suite check for memleaks
10644
10645         * dbus/dbus-memory.c: add support in test mode for tracking
10646         number of outstanding blocks
10647
10648 2003-03-23  Havoc Pennington  <hp@pobox.com>
10649
10650         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10651         policies code
10652
10653         * dbus/dbus-hash.h: add ULONG hash keys
10654
10655         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10656         (_dbus_get_group_id): new function
10657
10658 2003-03-20  Havoc Pennington  <hp@redhat.com>
10659
10660         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10661         new function
10662         (dbus_connection_get_unix_user): new function
10663
10664 2003-03-20  Havoc Pennington  <hp@pobox.com>
10665
10666         * bus/connection.c (bus_connection_send_oom_error): assert that
10667         message has a sender
10668         (connection_execute_transaction): ditto
10669         (bus_connection_preallocate_oom_error): fix to set the sender, and
10670         set recipient to the destination service, not the bus driver
10671
10672         * bus/policy.c: hacking
10673
10674         * dbus/dbus-message.c (dbus_message_service_is): new function
10675         (dbus_message_sender_is): new
10676
10677 2003-03-19  Havoc Pennington  <hp@redhat.com>
10678
10679         * bus/policy.c: start sketching code for policy restrictions on
10680         what connections can do.
10681
10682 2003-03-18  Havoc Pennington  <hp@redhat.com>
10683
10684         * doc/TODO: some notes on high-level todo items. Little nitpick
10685         stuff is all in @todo, so no need to add it here.
10686
10687         * doc/config-file.txt: some notes on how config file might look
10688
10689 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10690
10691         * configure.in: 0.6
10692
10693         * NEWS: Update.
10694
10695 2003-03-17  Havoc Pennington  <hp@redhat.com>
10696
10697         * dbus/dbus-internals.h: add gcc attributes so that
10698         our printf-style functions warn on bad arguments to
10699         format
10700
10701         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10702         format bug
10703
10704         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10705         printf format bug
10706
10707 2003-03-17  Havoc Pennington  <hp@redhat.com>
10708
10709         * bus/test-main.c (main): make it print something as it runs
10710         so make check doesn't look stuck
10711
10712         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10713         from CVS, now obsolete
10714
10715 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10716
10717         * bus/dispatch.c: (bus_dispatch):
10718         Refetch the service name since it may have been reallocated
10719         when dbus_message_set_sender was called.
10720
10721         * dbus/dbus-sysdeps.c: (_dbus_accept):
10722         Add address and address length variables and use them to stop
10723         valgrind from complaining.
10724
10725 2003-03-17  Havoc Pennington  <hp@pobox.com>
10726
10727         All tests pass, no memleaks, no valgrind complaints.
10728
10729         * bus/test.c: refcount handler_slot
10730
10731         * bus/connection.c (bus_connections_new): refcount
10732         connection_data_slot
10733
10734         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10735         bytes so that auth scripts pass.
10736
10737         * bus/dispatch.c: init message_handler_slot so it gets allocated
10738         properly
10739
10740         * bus/dispatch.c (message_handler_slot_ref): fix memleak
10741
10742         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10743         dealloc server_pipe_hash when no longer used for benefit of
10744         leak checking
10745
10746         * dbus/dbus-auth.c (process_command): memleak fix
10747
10748         * bus/dispatch.c (check_hello_message): memleak fix
10749
10750 2003-03-16  Havoc Pennington  <hp@pobox.com>
10751
10752         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10753
10754 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
10755
10756         * bus/activation.c (bus_activation_activate_service): Append
10757         the pending activation entry to the list of pending activations.
10758
10759 2003-03-16  Havoc Pennington  <hp@pobox.com>
10760
10761         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10762         connections
10763
10764         * dbus/dbus-address.c (create_entry): fix OOM handling when
10765         failing to alloc entry->method
10766
10767 2003-03-16  Havoc Pennington  <hp@pobox.com>
10768
10769         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10770         the watch
10771
10772         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10773         add some missing dbus_set_result
10774
10775         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10776         alloc the DBusMessageHandler
10777
10778         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10779         the transport here, since we call this from the finalizer; it
10780         resulted in a double-finalize.
10781
10782         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10783         where we tried to use transport->connection that was NULL,
10784         happened when transport was disconnected early on due to OOM
10785
10786         * bus/*.c: adapt to handle OOM for watches/timeouts
10787
10788         * dbus/dbus-transport-unix.c: port to handle OOM during
10789         watch handling
10790
10791         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10792         reference to unused bytes instead of a copy
10793
10794         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10795         out of memory
10796
10797         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10798         FALSE on OOM
10799
10800         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10801         of memory
10802
10803 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10804
10805         * doc/dbus-specification.sgml:
10806         Document reply message for ActivateService.
10807
10808 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10809
10810         * bus/activation.c: (bus_pending_activation_entry_free),
10811         (bus_pending_activation_free), (bus_activation_new),
10812         (bus_activation_unref), (bus_activation_service_created),
10813         (bus_activation_activate_service):
10814         * bus/activation.h:
10815         * bus/bus.c: (bus_context_new):
10816         * bus/desktop-file.c: (new_section):
10817         * bus/driver.c: (bus_driver_send_service_deleted),
10818         (bus_driver_handle_activate_service):
10819         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10820         * bus/services.h:
10821         * dbus/dbus-connection.c:
10822         (dbus_connection_send_with_reply_and_block):
10823         * dbus/dbus-message.c: (dbus_message_append_args_valist):
10824         * dbus/dbus-protocol.h:
10825         Make activation work better. Now pending activations will be queued
10826         and the daemon won't try to activate services that are already registered.
10827
10828 2003-03-16  Havoc Pennington  <hp@pobox.com>
10829
10830         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10831         connection data
10832
10833         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10834         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10835
10836 2003-03-16  Havoc Pennington  <hp@pobox.com>
10837
10838         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10839         this. always run the test suite before commit...
10840
10841         * bus/*: adapt to DBusConnection API changes
10842
10843         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10844         requires renaming stuff to avoid dbus_connection_dispatch name
10845         conflict.
10846
10847         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10848         function
10849
10850         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10851         separate from _dbus_message_loader_return_buffer()
10852
10853         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10854         this, because it's now always broken to use; the number of
10855         messages in queue vs. the number still buffered by the message
10856         loader is undefined/meaningless. Should use
10857         dbus_connection_get_dispatch_state().
10858         (dbus_connection_dispatch): rename from
10859         dbus_connection_dispatch_message
10860
10861 2003-03-16  Havoc Pennington  <hp@pobox.com>
10862
10863         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10864         implementation
10865
10866 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
10867
10868         * dbus/dbus-connection.c:
10869         (dbus_connection_send_with_reply_and_block):
10870         Decrease connection->n_incoming when removing an entry
10871         from the list.
10872         * dbus/dbus-dict.c: (dbus_dict_entry_free),
10873         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10874         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10875         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10876         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10877         (dbus_dict_get_byte_array):
10878         Handle NULL arrays and strings. Also add support for byte arrays.
10879
10880         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10881         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10882         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10883         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10884         (_dbus_demarshal_dict), (demarshal_and_validate_len),
10885         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10886         * dbus/dbus-marshal.h:
10887         Add support for marshalling and demarshalling empty arrays and strings.
10888
10889         * dbus/dbus-message.c: (dbus_message_append_args_valist),
10890         (dbus_message_append_string_array),
10891         (dbus_message_iter_get_boolean),
10892         (dbus_message_iter_get_boolean_array),
10893         (dbus_message_iter_get_int32_array),
10894         (dbus_message_iter_get_uint32_array),
10895         (dbus_message_iter_get_double_array),
10896         (dbus_message_iter_get_byte_array),
10897         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10898         (check_message_handling):
10899         Add support for getting empty arrays and dicts.
10900
10901         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10902         Don't do any validation at all for now, that's better than just checking
10903         for ASCII.
10904
10905         * test/data/valid-messages/emptiness.message:
10906         New test message with lots of empty arrays.
10907
10908 2003-03-16  Havoc Pennington  <hp@pobox.com>
10909
10910         * dbus/dbus-connection.c
10911         (_dbus_connection_queue_received_message_link): new function that
10912         can't fail due to OOM
10913
10914         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10915         new function pops a message together with a list link
10916         containing it.
10917
10918         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10919         message queuing functions to avoid needing to alloc memory
10920
10921 2003-03-16  Havoc Pennington  <hp@pobox.com>
10922
10923         Oops - test code was only testing failure of around 30 of the
10924         mallocs in the test path, but it turns out there are 500+
10925         mallocs. I believe this was due to misguided linking setup such
10926         that there was one copy of dbus_malloc etc. in the daemon and one
10927         in the shared lib, and only daemon mallocs were tested. In any
10928         case, the test case now tests all 500+ mallocs, and doesn't pass
10929         yet, though there are lots of fixes in this patch.
10930
10931         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10932         this so that it doesn't need to allocate memory, since it
10933         has no way of indicating failure due to OOM (and would be
10934         annoying if it did).
10935
10936         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10937
10938         * bus/Makefile.am: rearrange to create two self-contained
10939         libraries, to avoid having libraries with overlapping symbols.
10940         that was resulting in weirdness, e.g. I'm pretty sure there
10941         were two copies of global static variables.
10942
10943         * dbus/dbus-internals.c: move the malloc debug stuff to
10944         dbus-memory.c
10945
10946         * dbus/dbus-list.c (free_link): free list mempool if it becomes
10947         empty.
10948
10949         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10950
10951         * dbus/dbus-address.c (dbus_parse_address): free list nodes
10952         on failure.
10953
10954         * bus/dispatch.c (bus_dispatch_add_connection): free
10955         message_handler_slot when no longer using it, so
10956         memory leak checkers are happy for the test suite.
10957
10958         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10959
10960         * bus/bus.c (new_connection_callback): disconnect in here if
10961         bus_connections_setup_connection fails.
10962
10963         * bus/connection.c (bus_connections_unref): fix to free the
10964         connections
10965         (bus_connections_setup_connection): if this fails, don't
10966         disconnect the connection, just be sure there are no side
10967         effects.
10968
10969         * dbus/dbus-string.c (undo_alignment): unbreak this
10970
10971         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10972         leaking
10973         (_dbus_auth_new): fix the order in which we free strings
10974         on OOM failure
10975
10976         * bus/connection.c (bus_connection_disconnected): fix to
10977         not send ServiceDeleted multiple times in case of memory
10978         allocation failure
10979
10980         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10981         get the base service name
10982         (dbus_bus_register_client): don't return base service name,
10983         instead store it on the DBusConnection and have an accessor
10984         function for it.
10985         (dbus_bus_register_client): rename dbus_bus_register()
10986
10987         * bus/dispatch.c (check_hello_message): verify that other
10988         connections on the bus also got the correct results, not
10989         just the one sending hello
10990
10991 2003-03-15  Havoc Pennington  <hp@pobox.com>
10992
10993         Make it pass the Hello handling test including all OOM codepaths.
10994         Now to do other messages...
10995
10996         * bus/services.c (bus_service_remove_owner): fix crash when
10997         removing owner from an empty list of owners
10998         (bus_registry_ensure): don't leave service in the list of
10999         a connection's owned services if we fail to put the service
11000         in the hash table.
11001
11002         * bus/connection.c (bus_connection_preallocate_oom_error): set
11003         error flag on the OOM error.
11004
11005         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11006         handle _dbus_transport_set_connection failure
11007
11008         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11009         to create watches up front and simply enable/disable them as
11010         needed.
11011         (unix_connection_set): this can now fail on OOM
11012
11013         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11014         of enabling/disabling a watch or timeout.
11015
11016         * bus/loop.c (bus_loop_iterate): don't touch disabled
11017         watches/timeouts
11018
11019         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11020
11021 2003-03-15  Havoc Pennington  <hp@pobox.com>
11022
11023         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11024         write useful test code, after all that futzing around ;-)
11025
11026         Test does not yet pass because we can't handle OOM in
11027         _dbus_transport_messages_pending (basically,
11028         dbus_connection_preallocate_send() does not prealloc the write
11029         watch). To fix this, I think we need to add new stuff to
11030         set_watch_functions, namely a SetEnabled function so we can alloc
11031         the watch earlier, then enable it later.
11032
11033         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11034         dbus-memory.c to the convenience lib
11035
11036         * bus/test.c: rename some static functions to keep them clearly
11037         distinct from stuff in connection.c. Handle client disconnection.
11038
11039 2003-03-14  Havoc Pennington  <hp@pobox.com>
11040
11041         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11042         transport, tests more of the real codepath. Set up clients
11043         with bus_setup_debug_client.
11044
11045         * bus/test.c (bus_setup_debug_client): function to set up debug
11046         "clients" on the main loop
11047
11048         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11049         support
11050
11051         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11052         server type
11053
11054         * dbus/dbus-server-debug.c: support a debug server based on pipes
11055
11056         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11057         (_dbus_close): new function
11058
11059         * configure.in: check for socketpair
11060
11061 2003-03-14  Havoc Pennington  <hp@redhat.com>
11062
11063         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11064         cheesy hack
11065
11066         * dbus/dbus-transport-debug.c: rework this a good bit to be
11067         less complicated. hopefully still works.
11068
11069         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11070         manually
11071
11072         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11073         after running it
11074
11075         * dbus/dbus-message.c (dbus_message_copy): rename from
11076         dbus_message_new_from_message, fix it up to copy
11077         all the message fields, add test case
11078
11079         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11080         not quite passing yet
11081
11082 2003-03-14  Havoc Pennington  <hp@pobox.com>
11083
11084         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11085         until no work remains" in test code. (the large diff here
11086         is just code movement, no actual changes)
11087
11088         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11089         1, no point waiting around for test code.
11090         (_dbus_server_debug_accept_transport): unref the timeout
11091         after adding it (right?)
11092
11093         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11094
11095 2003-03-13  Havoc Pennington  <hp@redhat.com>
11096
11097         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11098         out of memory
11099
11100         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11101         of memory
11102
11103         * dbus/dbus-connection.h: Make AddWatchFunction and
11104         AddTimeoutFunction return a bool so they can fail on out-of-memory
11105
11106         * bus/bus.c (bus_context_new): set up timeout handlers
11107
11108         * bus/connection.c (bus_connections_setup_connection): set up
11109         timeout handlers
11110
11111         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11112         can fail
11113
11114         * bus/bus.c (bus_context_new): adapt to changes
11115
11116         * bus/connection.c: adapt to changes
11117
11118         * test/watch.c: adapt to DBusWatch changes
11119
11120         * bus/dispatch.c (bus_dispatch_test): started adding this but
11121         didn't finish
11122
11123 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11124
11125         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11126
11127 2003-03-13  Havoc Pennington  <hp@pobox.com>
11128
11129         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11130         set up a test framework as for the library
11131
11132 2003-03-12  Havoc Pennington  <hp@pobox.com>
11133
11134         Throughout: purge global variables, introduce BusActivation,
11135         BusConnections, BusRegistry, etc. objects instead.
11136
11137         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11138         message bus object
11139
11140         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11141         going to redo this a bit differently I think
11142
11143 2003-03-12  Havoc Pennington  <hp@redhat.com>
11144
11145         Mega-patch that gets the message bus daemon initially handling
11146         out-of-memory. Work still needed. Also lots of random
11147         moving stuff to DBusError instead of ResultCode.
11148
11149         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11150
11151         * dbus/dbus-connection.c
11152         (dbus_connection_send_with_reply_and_block): use DBusError
11153
11154         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11155         DBusResultCode
11156
11157         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11158         code here, as the only failure possible is OOM.
11159
11160         * bus/connection.c (bus_connection_disconnect):
11161         rename bus_connection_disconnected as it's a notification only
11162
11163         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11164         "name" on get_args failure, should be done by get_args;
11165         don't disconnect client for bad args, just return an error.
11166         (bus_driver_handle_service_exists): ditto
11167
11168         * bus/services.c (bus_services_list): NULL-terminate returned array
11169
11170         * bus/driver.c (bus_driver_send_service_lost)
11171         (bus_driver_send_service_acquired): send messages from driver to a
11172         specific client to the client's unique name, not to the broadcast
11173         service.
11174
11175         * dbus/dbus-message.c (decode_header_data): reject messages that
11176         contain no name field
11177         (_dbus_message_get_client_serial): rename to
11178         dbus_message_get_serial and make public
11179         (_dbus_message_set_serial): rename from set_client_serial
11180         (_dbus_message_set_reply_serial): make public
11181         (_dbus_message_get_reply_serial): make public
11182
11183         * bus/connection.c (bus_connection_foreach): allow stopping
11184         iteration by returning FALSE from foreach function.
11185
11186         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11187         (dbus_connection_free_preallocated_send)
11188         (dbus_connection_preallocate_send): new API for sending a message
11189         without possibility of malloc failure.
11190         (dbus_connection_send_message): rename to just
11191         dbus_connection_send (and same for whole function family)
11192
11193         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11194
11195         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11196
11197         * bus/activation.c: handle/return errors
11198
11199         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11200
11201         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11202         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11203         (_dbus_result_from_errno): move to this file
11204
11205 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11206
11207         * dbus/dbus-marshal.c:
11208         (_dbus_marshal_set_string):
11209         Take a length argument so we can marshal the correct string
11210         length.
11211
11212         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11213         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11214         (_dbus_marshal_test):
11215         * dbus/dbus-marshal.h:
11216         Add support for marshalling and demarshalling dicts.
11217
11218         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11219         Add support for TYPE DICT.
11220
11221         * dbus/dbus-message.c: (set_string_field):
11222         Adjust header padding.
11223
11224         (dbus_message_append_args_valist), (dbus_message_append_dict),
11225         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11226         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11227         (check_message_handling), (check_have_valid_message):
11228         * dbus/dbus-message.h:
11229         Add functions for setting and getting dicts.
11230
11231         * dbus/dbus-protocol.h:
11232         Add DBUS_TYPE_DICT.
11233
11234         * dbus/dbus.h:
11235         Add dbus-dict.h
11236
11237         * doc/dbus-specification.sgml:
11238         Add information about how dicts are marshalled.
11239
11240         * test/data/invalid-messages/dict-with-nil-value.message:
11241         * test/data/invalid-messages/too-short-dict.message:
11242         * test/data/valid-messages/dict-simple.message:
11243         * test/data/valid-messages/dict.message:
11244         Add sample messages containing dicts.
11245
11246 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11247
11248         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11249
11250 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11251
11252         * dbus/Makefile.am:
11253         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11254         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11255         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11256         (dbus_dict_set_double), (dbus_dict_set_string),
11257         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11258         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11259         (dbus_dict_set_string_array), (_dbus_dict_test):
11260         * dbus/dbus-dict.h:
11261         Fix according to comments from Havoc.
11262
11263 2003-03-06  Michael Meeks  <michael@server.home>
11264
11265         * configure.in: if we don't have kde-config, disable have_qt.
11266
11267 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11268
11269         * dbus/Makefile.am:
11270         Add dbus-dict.[ch]
11271
11272         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11273         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11274         (dbus_dict_remove), (dbus_dict_get_value_type),
11275         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11276         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11277         (dbus_dict_put_double), (dbus_dict_put_string),
11278         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11279         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11280         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11281         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11282         (dbus_dict_get_double), (dbus_dict_get_string),
11283         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11284         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11285         (dbus_dict_get_string_array), (_dbus_dict_test):
11286         * dbus/dbus-dict.h:
11287         Add DBusDict implementation
11288
11289         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11290         * dbus/dbus-test.h:
11291         Add _dbus_dict_test
11292
11293 2003-03-04  Havoc Pennington  <hp@pobox.com>
11294
11295         * test/data/auth/*: adapt to changes
11296
11297         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11298         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11299         userid
11300
11301         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11302         more stuff from being in a context name, to make the protocol
11303         simpler to deal with
11304
11305         * dbus/dbus-errors.c (dbus_error_has_name): new function
11306         (dbus_error_is_set): new function
11307
11308         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11309         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11310
11311         * dbus/dbus-connection.c (dbus_connection_flush): also read
11312         messages during a flush operation
11313
11314         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11315
11316 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11317
11318         * configure.in: Check for gethostbyname on Solaris.
11319
11320         * dbus/dbus-transport.c: (_dbus_transport_open):
11321         Remove duplicate "tcp" entry.
11322
11323         * doc/dbus-specification.sgml:
11324         Clarify some things.
11325
11326 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11327
11328         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11329         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11330         (_dbus_keyring_test):
11331         * dbus/dbus-md5.c: (_dbus_md5_compute):
11332         * dbus/dbus-sha.c: (_dbus_sha_compute):
11333         Plug memory leaks.
11334
11335 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11336
11337         * README: Add some things.
11338
11339 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11340
11341         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11342         after case DBUS_TYPE_BOOELAN.
11343
11344 2003-03-02  Havoc Pennington  <hp@pobox.com>
11345
11346         * test/break-loader.c (randomly_set_extreme_ints): add test that
11347         sets really huge and small integers
11348
11349         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11350         that length of boolean array fits in the string, and that
11351         string has room for boolean value in single-bool case.
11352
11353         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11354         optional value to "ALIGN" command which is what to fill the
11355         alignment with.
11356
11357         * test/data/valid-messages/no-padding.message: add regression
11358         test for the message padding problem
11359
11360 2003-03-02  Havoc Pennington  <hp@pobox.com>
11361
11362         * dbus/dbus-message.c (decode_header_data): fix to always init
11363         message_padding, from Benjamin Dauvergne
11364
11365 2003-03-02  Havoc Pennington  <hp@pobox.com>
11366
11367         * configure.in: 0.5
11368
11369         * NEWS: Update.
11370
11371 2003-03-01  Joe Shaw  <joe@assbarn.com>
11372
11373         * configure.in: Check for "struct cmsgcred" and try to access its
11374         members for BSD-like unices.
11375
11376         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11377         _dbus_read_credentials_unix_socket().
11378         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11379         read() for reading the credential byte off the unix socket.  Use
11380         struct cmsgcred on systems that support it.
11381
11382 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11383
11384         * glib/Makefile.am:
11385         * configure.in:
11386         Make gthreads-2.0 dependency optional. Don't build thread test if
11387         its not found.
11388
11389 2003-02-27  Havoc Pennington  <hp@pobox.com>
11390
11391         * dbus/dbus-connection.c
11392         (dbus_connection_send_message_with_reply_and_block): fix doh!
11393         doh! doh! bug that resulted in never removing a reply from the
11394         queue, no wonder we called get_reply_serial so much ;-)
11395
11396         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11397         and client serial instead of demarshaling them every time
11398
11399 2003-02-27  Havoc Pennington  <hp@pobox.com>
11400
11401         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11402         more inlined, using dbus-string-private.h, speeds things up
11403         substantially
11404
11405         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11406         when freeing the string
11407         (_dbus_string_steal_data): fix for align offset
11408         (undo_alignment): new function
11409
11410 2003-02-26  Havoc Pennington  <hp@redhat.com>
11411
11412         All kinds of audit fixes from Owen, plus initial attempt to
11413         handle unaligned memory returned from malloc.
11414
11415         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11416         leave room for align_offset and nul byte
11417         (fixup_alignment): function to track an align_offset and
11418         ensure real->str is aligned
11419         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11420         to allow a nul byte plus align offset
11421         (_dbus_string_lock): fix overflow issue
11422         (_dbus_string_init_const_len): add assertions on sanity of len,
11423         assign allocated to be ALLOCATION_PADDING larger than len
11424         (set_length): fixup the overflow handling
11425         (_dbus_string_get_data_len): fix overflow in assertion
11426         (open_gap): detect overflow in size of gap to be opened
11427         (_dbus_string_lengthen): add overflow check
11428         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11429         (_dbus_string_append): add overflow check
11430         (_dbus_string_append_unichar): overflow
11431         (_dbus_string_delete): fix overflow in assertion
11432         (_dbus_string_copy_len): overflow in assertion
11433         (_dbus_string_replace_len): overflows in assertions
11434         (_dbus_string_find): change to implement in terms of
11435         _dbus_string_find_to
11436         (_dbus_string_find_to): assorted fixage
11437         (_dbus_string_equal_c_str): assert c_str != NULL,
11438         fix logic so the function works
11439         (_dbus_string_ends_with_c_str): fix overflow thingy
11440         (_dbus_string_base64_encode): overflow fix
11441         (_dbus_string_validate_ascii): overflow
11442         (_dbus_string_validate_nul): overflow
11443
11444 2003-02-26  Havoc Pennington  <hp@redhat.com>
11445
11446         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11447
11448 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11449
11450         * configure.in:
11451         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11452
11453         * dbus/dbus-connection.c:
11454         * dbus/dbus-connection.h:
11455         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11456         Add dbus_connection_set_wakeup_main_function and use it when queueing
11457         incoming and outgoing messages.
11458
11459
11460         * dbus/dbus-dataslot.c:
11461         Threadsafe usage of DBusDataSlotAllocator
11462
11463         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11464         dbus_new can fail.
11465
11466         * dbus/dbus-server-unix.c:
11467         Add todo comment
11468
11469         * glib/dbus-gmain.c:
11470         Implement the new wakeup functions for glib.
11471
11472         * glib/Makefile.am:
11473         * glib/test-thread-client.c:
11474         * glib/test-thread-server.c:
11475         * glib/test-thread.h:
11476         Initial cut at some thread test code. Not really done yet.
11477
11478 2003-02-26  Havoc Pennington  <hp@pobox.com>
11479
11480         * dbus/dbus-connection.c
11481         (dbus_connection_send_message_with_reply_and_block): fix crash
11482         where we ref'd the outgoing message instead of the returned reply
11483
11484         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11485         at the end of this function, so if we didn't need to read for
11486         authentication, we reinstall it for receiving messages
11487
11488         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11489         a NULL sender for peer-to-peer case
11490
11491         * dbus/dbus-transport-unix.c (check_read_watch): handle
11492         !authenticated case correctly
11493
11494         * glib/dbus-gmain.c: add support for DBusServer
11495
11496         * dbus/dbus-server.c: add data slot support
11497
11498         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11499         return values and handle errors
11500
11501         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11502         DBusConnection
11503
11504         * Doxyfile.in (INPUT): add glib subdir
11505
11506         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11507         setup_with_g_main instead of hookup_with_g_main; write docs
11508
11509 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11510
11511         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11512         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11513         * dbus/dbus-message.c: (dbus_message_append_boolean),
11514         (dbus_message_append_boolean_array),
11515         (dbus_message_get_args_valist), (_dbus_message_test):
11516         * dbus/dbus-message.h:
11517         * doc/dbus-specification.sgml:
11518         Various fixes as pointed out by Havoc.
11519
11520         * test/data/invalid-messages/bad-boolean-array.message:
11521         * test/data/invalid-messages/bad-boolean.message:
11522         Add invalid boolean value test cases.
11523
11524 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11525
11526         * dbus/dbus-internals.c: (_dbus_type_to_string):
11527         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11528         (_dbus_marshal_validate_arg):
11529         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11530         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11531         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11532         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11533         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11534         (dbus_message_iter_get_double),
11535         (dbus_message_iter_get_boolean_array), (message_iter_test):
11536         * dbus/dbus-message.h:
11537         * dbus/dbus-protocol.h:
11538         * doc/dbus-specification.sgml:
11539         * test/data/valid-messages/lots-of-arguments.message:
11540         Add support for boolean and boolean array types.
11541
11542 2003-02-23  Havoc Pennington  <hp@pobox.com>
11543
11544         * dbus/dbus-keyring.c: finish most of this implementation and
11545         simple unit test
11546
11547         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11548         these barf if the error isn't cleared to NULL
11549
11550         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11551         (_dbus_create_directory): new function
11552
11553         * dbus/dbus-errors.c (dbus_set_error): fix warning
11554
11555         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11556         (_dbus_string_hex_decode): new function
11557         (test_hex_roundtrip): test code
11558
11559         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11560
11561         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11562
11563         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11564         the save-to-temp/rename trick to atomically write the new file
11565         (_dbus_string_parse_uint): new function
11566
11567 2003-02-22  Havoc Pennington  <hp@pobox.com>
11568
11569         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11570
11571 2003-02-22  Havoc Pennington  <hp@pobox.com>
11572
11573         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11574         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11575
11576         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11577
11578         * dbus/test/data/sha-1: add US government test suite for SHA-1
11579
11580 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11581
11582         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11583         Make string arrays NULL-terminated.
11584
11585         * dbus/dbus-memory.c: (dbus_free_string_array):
11586         * dbus/dbus-memory.h:
11587         New function for freeing NULL-terminated string arrays.
11588
11589         * dbus/dbus-message-builder.c: (append_quoted_string),
11590         (_dbus_message_data_load):
11591         Add support for array types.
11592
11593         * dbus/dbus-message.c: (check_message_handling):
11594         Add more types as test cases.
11595
11596         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11597         (_dbus_string_parse_double):
11598         Add the start offset to the end offset.
11599
11600         * test/data/valid-messages/lots-of-arguments.message:
11601         New test message with lots of arguments.
11602
11603 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11604
11605         * dbus/dbus-message.c: (dbus_message_append_nil),
11606         (dbus_message_append_int32), (dbus_message_append_uint32),
11607         (dbus_message_append_double), (dbus_message_append_string),
11608         (dbus_message_append_int32_array),
11609         (dbus_message_append_uint32_array),
11610         (dbus_message_append_double_array),
11611         (dbus_message_append_byte_array),
11612         (dbus_message_append_string_array):
11613         Fix all out-of-memory handling in these functions.
11614
11615 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11616
11617         * dbus/dbus-message.c: (dbus_message_append_nil):
11618         Fix a silly.
11619
11620 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11621
11622         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11623         (dbus_message_append_nil), (dbus_message_append_int32_array),
11624         (dbus_message_append_uint32_array),
11625         (dbus_message_append_double_array),
11626         (dbus_message_append_byte_array),
11627         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11628         (dbus_message_iter_get_int32_array),
11629         (dbus_message_iter_get_uint32_array),
11630         (dbus_message_iter_get_double_array),
11631         (dbus_message_iter_get_byte_array),
11632         (dbus_message_iter_get_string_array):
11633
11634         * dbus/dbus-message.h:
11635         Add functions for appending and getting arrays.
11636
11637 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11638
11639         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11640         element size at least 8 bytes, fixes mempool tests on
11641         64-bit machines.
11642
11643 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11644
11645         * dbus/dbus-transport-unix.c (unix_do_iteration):
11646         Unlock the connection mutex during a blocking select call.
11647         Add todo about how we need a way to wake up the select.
11648
11649         * dbus/dbus-connection-internal.h:
11650         * dbus/dbus-connection.c:
11651         Add _dbus_connection_lock and _dbus_connection_unlock.
11652
11653 2003-02-19  Havoc Pennington  <hp@pobox.com>
11654
11655         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11656         Doxyfile.in, not Doxyfile
11657
11658         * dbus/dbus-keyring.c: do some hacking on this
11659
11660         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11661
11662         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11663         dbus_error_init
11664         (dbus_set_error): remove dbus_error_init, check for message ==
11665         NULL *before* we sprintf into it, and add @todo about including
11666         system headers in this file
11667
11668         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11669
11670         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11671
11672         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11673         get various bits of user information based on either username
11674         or user ID
11675         (_dbus_homedir_from_username): new function
11676
11677 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11678
11679         * configure.in:
11680         Add check for nonposix getpwnam_r
11681
11682         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11683         Align the pool element size to a sizeof (void *) boundary.
11684
11685         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11686         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11687         General Solaris fixes.
11688
11689         * test/data/valid-messages/simplest-manual.message:
11690         Explicitly state that we want little-endian packing.
11691
11692 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11693
11694         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11695
11696         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11697         Added to create a transport connecting using a tcp/ip socket.
11698
11699         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11700         to a tcp socket at given host and port.
11701         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11702         hostname and port.
11703
11704         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11705
11706         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11707         Added to create a server listening on a TCP/IP socket.
11708
11709 2003-02-19  Havoc Pennington  <hp@pobox.com>
11710
11711         Throughout: mop up all the Doxygen warnings and undocumented
11712         stuff.
11713
11714         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11715         to search any paths.
11716
11717         * dbus/dbus-threads.c: move global mutex initializers to
11718         dbus-internals.h, multiple prototypes was confusing doxygen
11719         besides being kind of ugly
11720
11721         * Doxyfile (PREDEFINED): have Doxygen define
11722         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11723         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11724         (do not abuse the feature! it's for stuff like the autogenerated
11725         macros in dbus-md5.c, not just for things you don't feel like
11726         documenting...)
11727
11728 2003-02-18  Havoc Pennington  <hp@pobox.com>
11729
11730         * dbus/dbus-string.c (_dbus_string_zero): new function
11731
11732         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11733         wrap it in some dbus-friendly API
11734
11735         * dbus/dbus-types.h: add 16-bit types
11736
11737 2003-02-18  Joe Shaw  <joe@assbarn.com>
11738
11739         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11740         credentials from our currently running process.
11741         (get_word): Fix a buglet where we were copying the entire length
11742         instead of relative to our position.
11743
11744         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11745         keys on the stack... it's 640k of data.
11746
11747         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11748         read the credentials byte off the socket, even if we don't have
11749         SO_PEERCRED.
11750         (_dbus_poll): Implement poll() using select() for systems which
11751         don't have it.
11752
11753         * glib/test-dbus-glib.c (main): Print out an error if no
11754         parameters are given.
11755
11756         * test/data/auth/fallback.auth-script: Added.  Tests that a client
11757         can fallback to a secondary auth mechanism if the first fails.
11758
11759 2003-02-18  Havoc Pennington  <hp@pobox.com>
11760
11761         * AUTHORS: add Alex
11762
11763 2003-02-17  Havoc Pennington  <hp@pobox.com>
11764
11765         * doc/dbus-specification.sgml: lots of cosmetic
11766         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11767         env variable to DBUS_BUS_ADDRESS, s/client/application/,
11768         s/server/bus/ (except in authentication section). Add a section
11769         "Message Bus Message Routing"
11770
11771 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
11772
11773         Release 0.4
11774
11775         * NEWS: Update
11776
11777 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11778
11779         * doc/dbus-specification.sgml:
11780         Specification updates.
11781
11782 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11783
11784         * bus/activation.c: (bus_activation_init), (child_setup),
11785         (bus_activation_activate_service):
11786         * bus/activation.h:
11787         * bus/main.c: (main):
11788         Set DBUS_ADDRESS environment variable.
11789
11790         * dbus/dbus-errors.c: (dbus_set_error):
11791         Don't use va_copy since that's a C99 feature.
11792
11793         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11794         (_dbus_spawn_async):
11795         * dbus/dbus-sysdeps.h:
11796         Add child_setup_func to _dbus_spawn_async.
11797
11798         * doc/dbus-specification.sgml:
11799         Update specification.
11800
11801         * test/spawn-test.c: (setup_func), (main):
11802         Fix test.
11803
11804 2003-02-17  Alexander Larsson  <alexl@redhat.com>
11805
11806         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11807         Added todo.
11808
11809 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11810
11811         * doc/.cvsignore:
11812         * doc/Makefile.am:
11813         * doc/dbus-test-plan.sgml:
11814         Add test plan document.
11815
11816         * test/Makefile.am:
11817         Fix distcheck.
11818
11819 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
11820
11821         * dbus/dbus-message.c: (decode_header_data),
11822         (_dbus_message_loader_return_buffer):
11823         Set the header padding amount when loading a message.
11824
11825 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11826
11827         * bus/dispatch.c: (send_one_message):
11828         Only send broadcast messages to registered connections.
11829
11830         * dbus/dbus-message.c: (dbus_message_name_is):
11831         * dbus/dbus-message.h:
11832         New convenience function.
11833
11834         * dbus/dbus-transport-debug.c: (do_reading):
11835         Only dispatch one message per run.
11836
11837         * test/Makefile.am:
11838         * test/bus-test.c: (new_connection_callback), (die),
11839         (test_hello_client1_handler), (test_hello_client2_handler),
11840         (test_hello_replies), (main):
11841
11842         * test/bus-test-loop.[ch]:
11843         Add these.
11844
11845 2003-02-16  Havoc Pennington  <hp@pobox.com>
11846
11847         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11848         backward conditional
11849
11850 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11851
11852         * dbus/dbus-connection.c:
11853         Implement sent_message_with_reply. (with_reply_and block is still
11854         busted).
11855         Made dispatch_message not lose message if OOM.
11856
11857         * dbus/dbus-errors.h:
11858         Add NoReply error (for reply timeouts).
11859
11860 2003-02-16  Alexander Larsson  <alexl@redhat.com>
11861
11862         * dbus/dbus-hash.c (_dbus_hash_table_unref):
11863         Actually free keys and values when destroying hashtable.
11864
11865 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11866
11867         * dbus/dbus-auth.c: (client_try_next_mechanism):
11868         Plug a leak.
11869
11870         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11871         Return TRUE if there's no thread implementation around.
11872
11873         * glib/dbus-gmain.c: (free_source),
11874         (dbus_connection_hookup_with_g_main):
11875         Make sure to remove the GSource when the connection is finalized.
11876
11877 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11878
11879         * bus/dispatch.c: (bus_dispatch_message_handler):
11880         * dbus/dbus-errors.h:
11881         Return an error if someone tries to send a message to a service
11882         that doesn't exist.
11883
11884 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
11885
11886         * bus/activation.c: (load_directory), (bus_activation_init),
11887         (bus_activation_activate_service):
11888         * bus/activation.h:
11889         * bus/driver.c:
11890         (bus_driver_handle_activate_service), (bus_driver_handle_message):
11891         More work on the activation handling.
11892
11893         * dbus/dbus-errors.h:
11894         Add some error messages
11895
11896         * dbus/dbus-message.c: (dbus_message_new_error_reply):
11897         * dbus/dbus-message.h:
11898         New function that creates an error message.
11899
11900         * dbus/dbus-protocol.h:
11901         Add ACTIVATE_SERVER message.
11902
11903         * dbus/dbus-server-unix.c: (unix_handle_watch),
11904         (_dbus_server_new_for_domain_socket):
11905         Call _dbus_fd_set_close_on_exec.
11906
11907         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11908         (_dbus_spawn_async), (_dbus_disable_sigpipe),
11909         (_dbus_fd_set_close_on_exec):
11910         * dbus/dbus-sysdeps.h:
11911         Add _dbus_fd_set_close_on exec function. Also add function that checks
11912         that all open fds are set to close-on-exec and warns otherwise.
11913
11914         * dbus/dbus-transport-unix.c:
11915         (_dbus_transport_new_for_domain_socket):
11916         Call _dbus_fd_set_close_on_exec.
11917
11918 2003-02-16  Havoc Pennington  <hp@pobox.com>
11919
11920         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11921         allow people to avoid setting SIGPIPE to SIG_IGN
11922         (_dbus_connection_new_for_transport): disable SIGPIPE unless
11923         we've been asked not to
11924
11925 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11926
11927         * dbus/dbus-list.c: (_dbus_list_append_link),
11928         (_dbus_list_prepend_link):
11929         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11930         (dbus_realloc):
11931         Warning fixes.
11932
11933 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11934
11935         * bus/Makefile.am:
11936         * bus/activation.c: (bus_activation_entry_free),
11937         (add_desktop_file_entry), (load_directory), (bus_activation_init):
11938         * bus/activation.h:
11939         * bus/main.c: (main):
11940         Add simple activation support, doesn't work yet though.
11941
11942 2003-02-15   Zack Rusin  <zack@kde.org>
11943
11944         * qt/dbus-qthread.cpp:  small casting fix
11945
11946 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11947
11948         * dbus/dbus-errors.c: (dbus_set_error):
11949         * dbus/dbus-errors.h:
11950         Add a few errors and make dbus_set_error void.
11951
11952         * dbus/dbus-sysdeps.c:
11953         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11954         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11955         * dbus/dbus-sysdeps.h:
11956         Add _dbus_spawn_async.
11957
11958         * test/spawn-test.c: (main):
11959         Test for _dbus_spawn_async.
11960
11961 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
11962
11963         * dbus/dbus-internals.h:
11964         Fix build without tests.
11965
11966         * dbus/dbus-list.c: (alloc_link):
11967         Fix a segfault when a malloc fails.
11968
11969         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11970         (dbus_malloc0), (dbus_realloc):
11971         Add support for malloc debugging.
11972
11973 2003-02-15  Alexander Larsson  <alexl@redhat.com>
11974
11975         * dbus/dbus-threads.c:
11976         * dbus/dbus-threads.h:
11977         Add condvars. Remove static mutext from API.
11978         Implement static mutexes by initializing them from threads_init.
11979
11980         * glib/dbus-gthread.c:
11981         * qt/dbus-qthread.cpp:
11982         Update with the thread api changes.
11983
11984
11985         * dbus/dbus-list.c:
11986         * dbus/dbus-list.h:
11987         Turn StaticMutex into normal mutex + init function.
11988         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11989         _dbus_list_append_link, _dbus_list_prepend_link
11990
11991
11992         * dbus/dbus-sysdeps.c:
11993         * dbus/dbus-sysdeps.h:
11994         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11995         _dbus_atomic_dec. Only slow fallback implementation at the moment.
11996
11997         * dbus/dbus-protocol.h:
11998         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11999
12000         * dbus/dbus-message.c:
12001         Make ref/unref atomic.
12002         Fix some docs.
12003
12004         * dbus/dbus-connection-internal.h:
12005         * dbus/dbus-connection.c:
12006         * dbus/dbus-connection.h:
12007         Make threadsafe.
12008         Change _peek to _borrow,_return & _steal_borrowed.
12009         Change disconnect callback to event.
12010         Make dbus_connection_dispatch_messages reentrant.
12011
12012         * dbus/dbus-transport.c:
12013         Don't ref the connection on calls to the transport
12014         implementation.
12015
12016         * dbus/dbus-message-handler.c:
12017         Make threadsafe.
12018
12019         * glib/dbus-gmain.c:
12020         Don't use peek_message anymore
12021
12022         * test/Makefile.am:
12023         * test/debug-thread.c:
12024         * test/debug-thread.h:
12025         Simple thread implementation that asserts() on deadlocks in
12026         single-threaded code.
12027
12028         * test/bus-test.c:
12029         (main) Call debug_threads_init.
12030
12031         * test/watch.c:
12032         Use disconnect message instead of disconnect callback.
12033
12034         * bus/connection.c:
12035         * bus/connection.h:
12036         Don't call dbus_connection_set_disconnect_function. Instead export
12037         bus_connection_disconnect.
12038
12039         * bus/dispatch.c:
12040         Call bus_connection_disconnect when we get a disconnected message.
12041
12042 2003-02-15  Havoc Pennington  <hp@pobox.com>
12043
12044         * dbus/dbus-message.c (dbus_message_new): fool around with the
12045         docs
12046
12047 2003-02-14  Havoc Pennington  <hp@pobox.com>
12048
12049         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12050
12051         * dbus/dbus-memory.c: fail if the debug functions indicate we
12052         should
12053
12054         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12055         (_dbus_decrement_fail_alloc_counter): debug functions to
12056         simulate memory allocation failures
12057
12058 2003-02-14  Havoc Pennington  <hp@pobox.com>
12059
12060         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12061         to DBusError
12062
12063 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12064
12065         * bus/driver.c: (bus_driver_handle_hello):
12066         * bus/driver.h:
12067         * bus/services.c: (bus_service_lookup):
12068         Reorder message sending so we get a more sane order.
12069
12070         * test/bus-test.c: (message_handler):
12071         Fix tyop.
12072
12073 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12074
12075         * bus/driver.c: (bus_driver_send_service_deleted),
12076         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12077         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12078         (bus_driver_send_welcome_message),
12079         (bus_driver_handle_list_services),
12080         (bus_driver_handle_acquire_service),
12081         (bus_driver_handle_service_exists):
12082         * dbus/dbus-bus.c: (dbus_bus_register_client),
12083         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12084         * dbus/dbus-errors.c: (dbus_result_to_string):
12085         * dbus/dbus-errors.h:
12086         * dbus/dbus-message.c: (dbus_message_append_args),
12087         (dbus_message_append_args_valist), (dbus_message_get_args),
12088         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12089         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12090         (dbus_message_iter_get_byte_array),
12091         (dbus_message_iter_get_string_array), (message_iter_test),
12092         (check_message_handling), (_dbus_message_test):
12093         * dbus/dbus-message.h:
12094         * test/bus-test.c: (main):
12095         Change fields to arguments in messages, so that they won't be
12096         confused with header fields.
12097
12098         * glib/test-dbus-glib.c: (main):
12099         Remove append_fields from hello message.
12100
12101 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12102
12103         * dbus/dbus-errors.c:
12104         * dbus/dbus-message.c:
12105         * dbus/dbus-string.c:
12106         Documentation fixes.
12107
12108 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12109
12110         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12111         (remove_timeout):
12112         Implement support for timeouts in dbus-glib.
12113
12114 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12115
12116         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12117         * dbus/dbus-message.c: (process_test_subdir):
12118         * test/break-loader.c: (find_breaks_based_on):
12119         Plug some memory leaks.
12120
12121 2003-02-13  Richard Hult  <rhult@codefactory.se>
12122
12123         * bus/main.c: Fix build.
12124
12125         * dbus/dbus-errors.h:
12126         * dbus/dbus-errors.c: Fix copyright for Anders.
12127
12128 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12129
12130         * bus/Makefile.am:
12131         Add utils.[ch]
12132
12133         * bus/connection.c: (bus_connection_foreach):
12134         Fix a warning.
12135
12136         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12137         (unescape_string), (new_section), (parse_section_start),
12138         (parse_key_value), (report_error), (bus_desktop_file_load),
12139         (bus_desktop_file_get_string):
12140         * bus/desktop-file.h:
12141         Use DBusError for error reporting.
12142
12143         * bus/dispatch.c: (send_one_message),
12144         (bus_dispatch_message_handler):
12145         * bus/driver.c: (bus_driver_send_service_deleted),
12146         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12147         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12148         (bus_driver_send_welcome_message),
12149         (bus_driver_handle_list_services),
12150         (bus_driver_handle_acquire_service),
12151         (bus_driver_handle_service_exists):
12152         * bus/loop.c: (bus_loop_run):
12153         * bus/main.c:
12154         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12155
12156         * bus/utils.c: (bus_wait_for_memory):
12157         * bus/utils.h:
12158         New files with general utility functions.
12159
12160         * dbus/dbus-internals.h:
12161         Remove _DBUS_HANDLE_OOM.
12162
12163 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12164
12165         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12166         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12167         * dbus/dbus-errors.h:
12168         Add DBusError structure.
12169
12170 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12171
12172         * test/data/valid-messages/standard-acquire-service.message:
12173         * test/data/valid-messages/standard-hello.message:
12174         * test/data/valid-messages/standard-list-services.message:
12175         * test/data/valid-messages/standard-service-exists.message:
12176         Add some standard messages.
12177
12178 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12179
12180         * bus/driver.c: (bus_driver_send_welcome_message),
12181         (bus_driver_handle_list_services),
12182         (bus_driver_handle_acquire_service),
12183         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12184         Update for API changes in libdbus.
12185
12186         * dbus/dbus-message.c: (dbus_message_new_reply):
12187         * dbus/dbus-message.h:
12188         Remove the name argument. The spec states that replies shouldn't
12189         have a name.
12190
12191 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12192
12193         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12194         (report_error), (bus_desktop_file_load), (lookup_section),
12195         (lookup_line), (bus_desktop_file_get_raw),
12196         (bus_desktop_file_get_string):
12197         * bus/desktop-file.h:
12198         Some fixes, and new functions for getting a key value from a section.
12199
12200 2003-02-13  Havoc Pennington  <hp@pobox.com>
12201
12202         * test/data/auth/fail-after-n-attempts.auth-script: new test
12203
12204         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12205         reject the client.
12206
12207 2003-02-13  Havoc Pennington  <hp@pobox.com>
12208
12209         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12210         dbus_credentials_match were backward
12211
12212         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12213         NO_CREDENTIALS and ROOT_CREDENTIALS
12214
12215         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12216         into here. Never process more commands after we've reached an
12217         end state; store further data as unused bytes.
12218
12219         * test/data/auth/*: add more auth tests
12220
12221         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12222         command to match exact string and EXPECT_UNUSED to match unused
12223         bytes
12224
12225         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12226
12227 2003-02-12  Havoc Pennington  <hp@pobox.com>
12228
12229         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12230         \r off of popped lines
12231
12232         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12233         scripts
12234
12235         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12236         SEND, append \r\n
12237
12238 2003-02-12  Havoc Pennington  <hp@pobox.com>
12239
12240         * dbus/Makefile.am: remove break-loader from the build, since it
12241         moved.
12242
12243         * configure.in: add --enable-gcov to turn on coverage profiling
12244         flags and disable optimization
12245
12246 2003-02-10  Havoc Pennington  <hp@pobox.com>
12247
12248         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12249         initial cut at test framework for DBusAuth from laptop.
12250         Doesn't quite work yet but it compiles and I need to get
12251         it off the 266mhz laptop. ;-)
12252
12253         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12254         fix a memleak in error case
12255
12256 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12257
12258         * bus/Makefile.am:
12259         * bus/desktop-file.c:
12260         * bus/desktop-file.h:
12261         Add a desktop file parser.
12262
12263 2003-02-11  Zack Rusin  <zack@kde.org>
12264
12265         * qt/message.[h|cpp]: sample implementation
12266         of the KDE wrapper for DBusMessage
12267
12268 2003-02-09  Zack Rusin  <zack@kde.org>
12269
12270         * test/bus-test.c: make_it_compile
12271         * doc/dbus-specification.sgml: minimal semantic fix
12272
12273 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12274
12275         Release 0.3
12276
12277         * NEWS: Update
12278
12279 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12280
12281         * dbus/Makefile.am:
12282         * dbus/dbus-break-loader.c:
12283         * test/Makefile.am:
12284         * test/break-loader.c:
12285         Move dbus-break-loader to test/ and rename it to break-loader.
12286
12287 2003-02-02  Havoc Pennington  <hp@pobox.com>
12288
12289         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12290         for code to manage cookies in your home directory
12291
12292         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12293
12294         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12295         to authenticate, then disconnect the client.
12296
12297 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12298
12299         * dbus/dbus-message.c (dbus_message_append_fields):
12300         Correct docs.
12301
12302 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12303
12304         * doc/dbus-specification.sgml:
12305         Update address format section.
12306
12307 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12308
12309         * test/Makefile.am:
12310         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12311         (message_handler), (new_connection_callback), (loop_quit),
12312         (loop_run), (main):
12313         Add bus test.
12314
12315 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12316
12317         * bus/driver.c: (bus_driver_handle_service_exists):
12318         Simplify the code a bit.
12319
12320         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12321         Fix a silly.
12322
12323 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12324
12325         * bus/Makefile.am:
12326         Add libdbus-daemon.la and link to it.
12327
12328 2003-02-01  James Willcox  <jwillcox@gnome.org>
12329
12330         * bus/driver.c: (bus_driver_handle_own_service):
12331         Actually include the service reply code in the message.
12332
12333 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12334
12335         * bus/driver.c: (bus_driver_handle_service_exists):
12336         Don't unref the incoming message.
12337
12338 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12339
12340         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12341
12342 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12343
12344         * dbus/dbus-server.c: (dbus_server_listen):
12345         * dbus/dbus-transport.c: (_dbus_transport_open):
12346         ifdef out the calls to the debug transport and server.
12347
12348 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12349
12350         * dbus/dbus-watch.c (dbus_watch_get_flags):
12351         Add note in the docs that ERROR or HANGUP won't be returned
12352         and are assumed always on.
12353
12354         * glib/dbus-gmain.c (add_watch):
12355         Always add IO_ERR | IO_HUP
12356
12357         * dbus/dbus-message.h:
12358         Add semicolon after dbus_message_iter_get_string_array().
12359         Makes qt code build again
12360
12361 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12362
12363         * bus/driver.c: (create_unique_client_name),
12364         (bus_driver_handle_hello):
12365         Don't take a name, just use a numeric id to identify
12366         each client.
12367
12368         * dbus/Makefile.am:
12369         * dbus/dbus-bus.c: (dbus_bus_register_client),
12370         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12371         * dbus/dbus-bus.h:
12372         Add new convenience functions for communicating with the bus.
12373
12374         * dbus/dbus-message.h:
12375
12376         * dbus/dbus-protocol.h:
12377         Fix a typo.
12378
12379 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12380
12381         * dbus/dbus-message.c (dbus_message_append_fields):
12382         Add some more doc comments.
12383
12384 2003-02-01  Havoc Pennington  <hp@pobox.com>
12385
12386         * dbus/dbus-break-loader.c (randomly_modify_length): change
12387         a 4-byte value in the message as if it were a length
12388
12389         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12390         execute bit on saved files
12391
12392 2003-02-01  Havoc Pennington  <hp@pobox.com>
12393
12394         * dbus/dbus-break-loader.c (main): new program to find messages
12395         that break the loader.
12396
12397         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12398         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12399
12400         * dbus/dbus-string.c (_dbus_string_set_byte): new
12401
12402 2003-01-31  Havoc Pennington  <hp@pobox.com>
12403
12404         * dbus/dbus-message.c: refactor the test code to be more general,
12405         in preparation for writing a "randomly permute test cases to
12406         try to break the loader" program.
12407
12408 2003-01-31  Havoc Pennington  <hp@pobox.com>
12409
12410         * doc/dbus-specification.sgml: work on the specification
12411
12412         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12413         the protocol version of the message.
12414
12415         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12416         no longer specifies that.
12417         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12418         1/2/3/4)
12419
12420         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12421         "break" for DBUS_TYPE_NIL, remove @todo
12422
12423 2003-01-31  Havoc Pennington  <hp@pobox.com>
12424
12425         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12426         just set_is_error/get_is_error as this is a commonly-used
12427         function, and write docs.
12428
12429 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12430
12431         * dbus/dbus-address.c: (dbus_address_entry_free):
12432         Free key and value lists.
12433
12434         * dbus/dbus-internals.c: (_dbus_type_to_string):
12435         Add the types we didn't have.
12436
12437         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12438         (_dbus_marshal_validate_arg):
12439         Add NIL types.
12440
12441         * dbus/dbus-message.c: (dbus_message_set_sender):
12442         Remove todo about being able to set sender to NULL.
12443
12444         (dbus_message_set_is_error_reply),
12445         (dbus_message_get_is_error_reply):
12446         * dbus/dbus-message.h:
12447         New functions.
12448
12449         * dbus/dbus-protocol.h:
12450         Add error reply flag.
12451
12452         * test/data/valid-messages/opposite-endian.message:
12453         Add NIL type to test.
12454
12455 2003-01-31  Havoc Pennington  <hp@pobox.com>
12456
12457         * doc/dbus-specification.sgml: fully specify the header.  Add
12458         flags and major protocol version, and change header/body len to
12459         unsigned.
12460
12461         * dbus/dbus-message-builder.c (append_saved_length): append length
12462         as uint32
12463
12464         * dbus/dbus-message.c (dbus_message_create_header): change header
12465         length and body length to unsigned. Add the new fields from the
12466         spec
12467         (_dbus_message_loader_return_buffer): unsigned header/body len
12468
12469 2003-01-30  Havoc Pennington  <hp@pobox.com>
12470
12471         * dbus/dbus-auth.c: rework to use only REJECTED, no
12472         MECHANISMS
12473
12474         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12475         use REJECTED, suggested by Mark McLoughlin
12476
12477 2003-01-30  Havoc Pennington  <hp@pobox.com>
12478
12479         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12480         a better way to report errors here. e.g.  "unix address lacks
12481         path" or something. also "no such file" when the path doesn't
12482         exist, etc.
12483
12484         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12485         leaking list nodes
12486         (dbus_parse_address): add @todo about documenting address format,
12487         and allowing , and ; to be escaped
12488
12489 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12490
12491         * dbus/Makefile.am:
12492         Add dbus-address.[ch]
12493
12494         * dbus/dbus-address.c: (dbus_address_entry_free),
12495         (dbus_address_entries_free), (create_entry),
12496         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12497         (dbus_parse_address), (_dbus_address_test):
12498         * dbus/dbus-address.h:
12499         New files for dealing with address parsing.
12500
12501         * dbus/dbus-connection.c:
12502         Document timeout functions.
12503
12504         * dbus/dbus-message.c:
12505         Document dbus_message_new_from_message.
12506
12507         * dbus/dbus-server-debug.c:
12508         Document.
12509
12510         * dbus/dbus-server.c: (dbus_server_listen):
12511         Parse address and use correct server implementation.
12512
12513         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12514         * dbus/dbus-string.h:
12515         New function with test.
12516
12517         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12518         * dbus/dbus-test.h:
12519         Add address tests.
12520
12521         * dbus/dbus-transport-debug.c:
12522         Document.
12523
12524         * dbus/dbus-transport.c: (_dbus_transport_open):
12525         Parse address and use correct transport implementation.
12526
12527 2003-01-30  Havoc Pennington  <hp@pobox.com>
12528
12529         * dbus/dbus-message.c: use message->byte_order instead of
12530         DBUS_COMPILER_BYTE_ORDER throughout.
12531         (dbus_message_create_header): pad header to align the
12532         start of the body of the message to 8-byte boundary
12533
12534         * dbus/dbus-marshal.h: make all the demarshalers take const
12535         DBusString arguments.
12536
12537         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12538         validate message args here, so we don't have to do slow validation
12539         later, and so we catch bad messages as they are incoming. Also add
12540         better checks on header_len and body_len. Also fill in
12541         message->byte_order
12542
12543         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12544         implemented properly)
12545         (_dbus_string_validate_nul): new function to check all-nul
12546
12547         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12548         get_arg_end_pos and remove all validation
12549         (_dbus_marshal_validate_arg): actually do validation here.
12550
12551 2003-01-29  Havoc Pennington  <hp@pobox.com>
12552
12553         * dbus/dbus-message.c (check_message_handling): fix assertion
12554         failure on set_client_serial
12555
12556 2003-01-28  Havoc Pennington  <hp@pobox.com>
12557
12558         * dbus/dbus-server-debug.c: Add doc section comments
12559
12560         * dbus/dbus-transport-debug.c: add doc section comments
12561
12562 2003-01-28  Havoc Pennington  <hp@redhat.com>
12563
12564         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12565         the reverse order from how I had it
12566         (_dbus_string_base64_encode): reverse encoding order. I was
12567         basically byteswapping everything during encoding.
12568
12569 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12570
12571         * dbus/dbus-connection-internal.h:
12572         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12573         (_dbus_connection_remove_timeout):
12574         Add functions for adding and removing timeouts.
12575
12576         * dbus/dbus-message.c: (dbus_message_new_from_message):
12577         Add new function that takes a message and creates an exact
12578         copy of it, but with the refcount set to 1.
12579         (check_message_handling):
12580         Fix build error.
12581
12582         * dbus/dbus-server-protected.h:
12583         * dbus/dbus-server.c: (_dbus_server_init_base),
12584         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12585         (dbus_server_set_timeout_functions):
12586         (_dbus_server_remove_timeout):
12587         New functions so that a server can add and remove timeouts.
12588
12589         (dbus_server_listen):
12590         Add commented out call to dbus_server_debug_new.
12591
12592         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12593         Actually set the handler, doh.
12594
12595         * dbus/dbus-transport.c: (_dbus_transport_open):
12596         Add commented out call to dbus_transport_debug_client_new.
12597
12598         * dbus/Makefile.am:
12599         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12600
12601 2003-01-28  Havoc Pennington  <hp@pobox.com>
12602
12603         * dbus/dbus-message.c (check_message_handling): function to check
12604         on the loaded message, iterates over it etc.
12605
12606 2003-01-28  Havoc Pennington  <hp@pobox.com>
12607
12608         * test/Makefile.am (dist-hook): fix make distdir
12609
12610         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12611
12612 2003-01-27  Havoc Pennington  <hp@pobox.com>
12613
12614         * dbus/dbus-mempool.c (time_for_size): replace printf with
12615         _dbus_verbose
12616
12617         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12618         empty lines; fix the SAVE_LENGTH stuff to be
12619         START_LENGTH/END_LENGTH so it actually works; couple other
12620         bugfixes
12621
12622         * test/Makefile.am (dist-hook): add dist-hook for .message files
12623
12624         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12625         can be constant or locked.
12626         (_dbus_string_free): allow freeing a const string as
12627         documented/intended
12628
12629         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12630
12631         * dbus/dbus-test-main.c (main): take an argument which is the
12632         directory containing test data
12633
12634         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12635         argument to this and load all the messages in test/data/
12636         checking that they can be loaded or not loaded as appropriate.
12637
12638 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12639
12640         * bus/dispatch.c: (bus_dispatch_message_handler):
12641         Dispatch messages sent to services.
12642
12643         * bus/driver.c: (bus_driver_send_service_deleted),
12644         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12645         (bus_driver_send_service_acquired):
12646         Add helper functions for sending service related messages.
12647
12648         (bus_driver_send_welcome_message):
12649         Send HELLO_REPLY instead of WELCOME.
12650
12651         (bus_driver_handle_list_services):
12652         Send LIST_SERVICES_REPLY instead of SERVICES.
12653
12654         (bus_driver_handle_own_service),
12655         (bus_driver_handle_service_exists):
12656         New message handlers.
12657
12658         (bus_driver_handle_message):
12659         Invoke new message handlers.
12660
12661         (bus_driver_remove_connection):
12662         Don't remove any services here since that's done automatically
12663         by bus_service_remove_owner now.
12664
12665         * bus/driver.h:
12666         New function signatures.
12667
12668         * bus/services.c: (bus_service_add_owner):
12669         Send ServiceAcquired message if we're the only primary owner.
12670
12671         (bus_service_remove_owner):
12672         Send ServiceAcquired/ServiceLost messages.
12673
12674         (bus_service_set_prohibit_replacement),
12675         (bus_service_get_prohibit_replacement):
12676         Functions for setting prohibit replacement.
12677
12678         (bus_service_has_owner):
12679         New function that checks if a connection is in the owner queue of
12680         a certain service.
12681
12682         * bus/services.h:
12683         Add new function signatures.
12684
12685         * dbus/dbus-list.c: (_dbus_list_test):
12686         Add tests for _dbus_list_remove_last and traversing the list backwards.
12687
12688         * dbus/dbus-list.h:
12689         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12690         go any further, so return NULL then.
12691
12692         * dbus/dbus-protocol.h:
12693         Add new messages, service flags and service replies.
12694
12695 2003-01-26  Havoc Pennington  <hp@pobox.com>
12696
12697         * dbus/dbus-message-builder.c: implement, completely untested.
12698
12699         * test/data/*: add data to be used in testing.
12700         ".message" files are our simple loadable text format.
12701         ".message-raw" will be binary dumps of messages.
12702
12703         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12704
12705 2003-01-26  Havoc Pennington  <hp@pobox.com>
12706
12707         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12708
12709         * dbus/dbus-errors.c (dbus_result_to_string): add
12710         file errors
12711
12712         * dbus/dbus-message-builder.c: new file, will contain code to load
12713         up messages from files. Not implemented yet.
12714
12715 2003-01-26  Havoc Pennington  <hp@pobox.com>
12716
12717         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12718         the sender by setting to NULL
12719
12720 2003-01-26  Havoc Pennington  <hp@pobox.com>
12721
12722         The unit tests pass, but otherwise untested.  If it breaks, the
12723         tests should have been better. ;-)
12724
12725         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12726         the connection.
12727
12728         * dbus/dbus-message.c: redo everything so we maintain
12729         message->header as the only copy of the various fields.
12730         This avoids the possibility of out-of-memory in some cases,
12731         for example dbus_message_lock() can't run out of memory anymore,
12732         and avoids extra copying. Figured I may as well go ahead and do
12733         this since it was busted for dbus_message_lock to not return
12734         failure on OOM, and dbus_message_write_header was totally
12735         unchecked for OOM. Also fixed some random other bugs.
12736
12737         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12738         that strings are nul-terminated. Also, end_pos can be equal
12739         to string length just not greater than, I think.
12740         (_dbus_marshal_set_int32): new function
12741         (_dbus_marshal_set_uint32): new function
12742         (_dbus_marshal_set_string): new function
12743
12744         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12745         a warning, init timeout_list to NULL
12746         (dbus_connection_send_message): don't use uninitialized variable
12747         "serial"
12748
12749         * dbus/dbus-string.c (_dbus_string_replace_len): new function
12750
12751 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12752
12753         * bus/driver.c: (bus_driver_handle_hello),
12754         (bus_driver_send_welcome_message):
12755         Plug leaks
12756
12757 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
12758
12759         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12760         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12761         (dbus_connection_unref):
12762         * dbus/dbus-marshal.c: (_dbus_marshal_test):
12763         * dbus/dbus-message.c: (dbus_message_unref),
12764         Plug memory leaks.
12765
12766         (dbus_message_get_fields):
12767         Remove debugging printout.
12768
12769         (_dbus_message_loader_return_buffer):
12770         Don't store the header string.
12771
12772         (_dbus_message_test):
12773         Plug leaks.
12774
12775 2003-01-26  Richard Hult  <rhult@codefactory.se>
12776
12777         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12778         the file descriptor list, since it can change under us.
12779
12780 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12781
12782         * glib/dbus-gmain.c: (dbus_connection_prepare),
12783         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12784         (remove_watch), (dbus_connection_hookup_with_g_main):
12785         Rewrite the glib handling to use its own GSource instead of a
12786         GIOChannel so we can catch messages put in the queue while waiting
12787         for a reply.
12788
12789 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12790
12791         * bus/Makefile.am:
12792         * bus/connection.c: (connection_disconnect_handler),
12793         (connection_watch_callback), (bus_connection_setup):
12794         * bus/dispatch.c: (send_one_message),
12795         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12796         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12797         * bus/dispatch.h:
12798         * bus/driver.c: (bus_driver_send_service_deleted),
12799         (bus_driver_send_service_created), (bus_driver_handle_hello),
12800         (bus_driver_send_welcome_message),
12801         (bus_driver_handle_list_services), (bus_driver_remove_connection),
12802         (bus_driver_handle_message):
12803         * bus/driver.h:
12804         Refactor code, put the message dispatching in its own file. Use
12805         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12806         is disconnected.
12807
12808 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12809
12810         * dbus/dbus-internals.h:
12811         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12812
12813         * dbus/dbus-message.c: (dbus_message_get_sender):
12814         * dbus/dbus-message.h:
12815         Implement dbus_message_get_sender.
12816
12817         * dbus/dbus-protocol.h:
12818         Add message and service defines.
12819
12820 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12821
12822         * dbus/dbus-connection.c: (dbus_connection_send_message):
12823         * dbus/dbus-message-internal.h:
12824         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12825         (dbus_message_write_header):
12826         Remove _dbus_messag_unlock and don't set the client serial on a
12827         message if one already exists.
12828
12829 2003-01-24  Havoc Pennington  <hp@pobox.com>
12830
12831         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12832         list_pool
12833
12834         * bus/driver.c (bus_driver_handle_list_services): fix a leak
12835         on OOM
12836
12837 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12838
12839         * dbus/dbus-list.c: (alloc_link), (free_link):
12840         Use a memory pool for the links.
12841
12842 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12843
12844         * bus/connection.c: (bus_connection_foreach):
12845         * bus/connection.h:
12846         Add new bus_connection_foreach function.
12847
12848         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12849         Add function that broadcasts a message to all clients.
12850
12851         (bus_driver_send_service_created), (bus_driver_handle_hello),
12852         (bus_driver_send_welcome_message),
12853         (bus_driver_handle_list_services), (bus_driver_message_handler):
12854         Implement functions that take care of listing services, and notifying
12855         clients when new services are created.
12856
12857         * bus/services.c: (bus_services_list):
12858         * bus/services.h:
12859         Add new function that returns an array of strings with the currently
12860         registered services.
12861
12862         * glib/dbus-glib.h:
12863         * glib/dbus-gmain.c:
12864         Update copyright year.
12865
12866 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
12867
12868         * dbus/dbus-connection.c: (dbus_connection_send_message):
12869         Unlock the message in case it was sent earlier.
12870
12871         (dbus_connection_send_message_with_reply_and_block):
12872         Remove the reply message from the list.
12873
12874         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12875         Set array_len and new_pos correctly.
12876
12877         (_dbus_marshal_test):
12878         Remove debug output.
12879
12880         * dbus/dbus-message-internal.h:
12881         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12882         New function that returns the reply serial.
12883
12884         (_dbus_message_unlock):
12885         New function that unlocks a message and resets its header.
12886
12887         (dbus_message_append_string_array),
12888         (dbus_message_get_fields_valist),
12889         (dbus_message_iter_get_field_type),
12890         (dbus_message_iter_get_string_array),
12891         (dbus_message_get_fields),
12892         (dbus_message_append_fields_valist):
12893         Handle string arrays.
12894
12895         (dbus_message_set_sender):
12896         Make this function public since the bus daemon needs it.
12897
12898         (decode_header_data):
12899         Set the reply serial to -1 initially.
12900
12901         * dbus/dbus-message.h:
12902         Add dbus_message_set_sender.
12903
12904 2003-01-24  Havoc Pennington  <hp@pobox.com>
12905
12906         * doc/dbus-specification.sgml: add some stuff
12907
12908 2003-01-22  Havoc Pennington  <hp@pobox.com>
12909
12910         * doc/dbus-specification.sgml: Start to document the protocol.
12911
12912 2003-01-22  Havoc Pennington  <hp@pobox.com>
12913
12914         * dbus/dbus-connection.c
12915         (dbus_connection_send_message_with_reply_and_block): add some @todo
12916
12917         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12918
12919 2003-01-21  Havoc Pennington  <hp@pobox.com>
12920
12921         (patch untested because can't compile)
12922
12923         * bus/driver.c (create_unique_client_name): make this function
12924         never recycle client names. Also, caller should initialize
12925         the DBusString.
12926
12927         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12928
12929 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12930
12931         * dbus/dbus-marshal.c: (_dbus_marshal_double),
12932         (_dbus_marshal_int32), (_dbus_marshal_uint32),
12933         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12934         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12935         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12936         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12937         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12938         * dbus/dbus-marshal.h:
12939         * dbus/dbus-protocol.h:
12940         Add support for marshalling and demarshalling integer, double
12941         and string arrays.
12942
12943 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12944
12945         * bus/Makefile.am:
12946         Add driver.[ch]
12947
12948         * bus/connection.c: (connection_disconnect_handler):
12949         Remove the connection from the bus driver's list.
12950
12951         (connection_watch_callback): Dispatch messages.
12952
12953         (free_connection_data): Free connection name.
12954
12955         (bus_connection_setup): Add connection to the bus driver's list.
12956         (bus_connection_remove_owned_service):
12957         (bus_connection_set_name), (bus_connection_get_name):
12958         Add functions for setting and getting the connection's name.
12959
12960         * bus/connection.h:
12961         Add function headers.
12962
12963         * bus/driver.c: (create_unique_client_name),
12964         (bus_driver_handle_hello_message),
12965         (bus_driver_send_welcome_message), (bus_driver_message_handler),
12966         (bus_driver_add_connection), (bus_driver_remove_connection):
12967         * bus/driver.h:
12968         * bus/main.c:
12969         * bus/services.c: (bus_service_free):
12970         * bus/services.h:
12971         New file that handles communication and registreation with the bus
12972         itself.
12973
12974 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
12975
12976         * dbus/dbus-connection.c: (dbus_connection_send_message):
12977         Add a new client_serial parameter.
12978
12979         (dbus_connection_send_message_with_reply):
12980         Remove a @todo since we've implemented the blocking function.
12981
12982         (dbus_connection_send_message_with_reply_and_block):
12983         New function that sends a message and waits for a reply and
12984         then returns the reply.
12985
12986         * dbus/dbus-connection.h:
12987         Add new functions.
12988
12989         * dbus/dbus-errors.c: (dbus_result_to_string):
12990         * dbus/dbus-errors.h:
12991         Add new DBUS_RESULT.
12992
12993         * dbus/dbus-message-internal.h:
12994         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12995         (_dbus_message_set_sender), (dbus_message_write_header),
12996         (dbus_message_new_reply), (decode_header_data),
12997         (_dbus_message_loader_return_buffer), (_dbus_message_test):
12998         * dbus/dbus-message.h:
12999         Add new functions that set the reply serial and sender.
13000         Also marshal and demarshal them correctly and add test.
13001
13002         * dbus/dbus-protocol.h:
13003         Add new DBUS_MESSAGE_TYPE_SENDER.
13004
13005         * glib/dbus-glib.h:
13006         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13007         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13008         (dbus_connection_hookup_with_g_main):
13009         * glib/test-dbus-glib.c: (main):
13010         Rewrite to use GIOChannel and remove the GSource crack.
13011
13012         * test/echo-client.c: (main):
13013         * test/watch.c: (check_messages):
13014         Update for changed APIs
13015
13016 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13017
13018         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13019
13020         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13021         Create a DBusTimeoutList.
13022         (dbus_connection_set_timeout_functions): Add new function to
13023         set timeout callbacks
13024
13025         * dbus/dbus-connection.h: Add public DBusTimeout API.
13026
13027         * dbus/dbus-message.c: (dbus_message_get_service):
13028         * dbus/dbus-message.h:  New function.
13029
13030         * dbus/dbus-server.c: Fix small doc typo.
13031
13032         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13033
13034 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13035
13036         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13037         of the string, just as long as specified.
13038
13039 2003-01-19  Havoc Pennington  <hp@pobox.com>
13040
13041         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13042         new function
13043
13044         * dbus/dbus-server.c (dbus_server_set_max_connections)
13045         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13046         keep track of current number of connections, and add API for
13047         setting a max (but haven't implemented enforcing the max yet)
13048
13049 2003-01-18  Havoc Pennington  <hp@pobox.com>
13050
13051         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13052         reading/writing if read_watch != NULL or write_watch != NULL.
13053
13054         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13055         the message loader code to actually load message->header and
13056         message->body into the newly-created message.
13057
13058         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13059         in OOM case
13060
13061         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13062         (dbus_connection_get_max_message_size)
13063         (dbus_connection_set_max_live_messages_size)
13064         (dbus_connection_get_max_live_messages_size): implement some
13065         resource limitation functions
13066
13067         * dbus/dbus-resources.c: new file implementing some of the
13068         resource limits stuff
13069
13070         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13071         missing docs, add @todo to handle OOM etc.
13072
13073         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13074         docs
13075
13076 2003-01-18  Havoc Pennington  <hp@pobox.com>
13077
13078         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13079         connection if it hasn't been already.
13080
13081         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13082         replace with DisconnectFunction.
13083
13084 2003-01-18  Havoc Pennington  <hp@pobox.com>
13085
13086         Building --disable-verbose-mode --disable-asserts --disable-tests
13087         cuts the library from 112K to 45K or so
13088
13089         * configure.in: check for varargs macro support,
13090         add --enable-verbose-mode, --enable-asserts.
13091
13092         * dbus/dbus-internals.h (_dbus_assert): support
13093         DBUS_DISABLE_ASSERT
13094         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13095
13096 2003-01-18  Havoc Pennington  <hp@pobox.com>
13097
13098         * dbus/dbus-test.c: include config.h so that tests actually run
13099
13100         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13101         so the failure mode when that assumption fails will be plenty
13102         obvious.
13103
13104 2003-01-18  Havoc Pennington  <hp@pobox.com>
13105
13106         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13107
13108         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13109         the distribution
13110
13111         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13112         since we don't want to use those in make check
13113
13114 2003-01-15  Havoc Pennington  <hp@redhat.com>
13115
13116         Release 0.2
13117
13118         * NEWS: update
13119
13120 2003-01-15  Havoc Pennington  <hp@redhat.com>
13121
13122         * test/Makefile.am: fix so that test source code ends up in the
13123         distribution on make distcheck
13124
13125 2003-01-15  Havoc Pennington  <hp@redhat.com>
13126
13127         Release 0.1.
13128
13129         * NEWS: update
13130
13131 2003-01-15  Havoc Pennington  <hp@redhat.com>
13132
13133         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13134         fix build when --disable-tests
13135
13136         * Makefile.am (EXTRA_DIST): put HACKING in here
13137
13138         * HACKING: document procedure for making a tarball release.
13139
13140 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13141
13142         * bus/connection.c: (connection_error_handler),
13143         (bus_connection_setup):
13144         * bus/main.c: (main):
13145         Make sure that the DBusConnectionData struct is NULLed
13146         out to prevent a segfault.
13147
13148         * dbus/dbus-errors.c: (dbus_result_to_string):
13149         * dbus/dbus-errors.h:
13150         * dbus/dbus-message.c: (dbus_message_get_fields),
13151         (dbus_message_get_fields_valist), (_dbus_message_test):
13152         * dbus/dbus-message.h:
13153         Make dbus_message_get_fields return a result code so we can
13154         track invalid fields as well as oom.
13155
13156 2003-01-11  Havoc Pennington  <hp@pobox.com>
13157
13158         * configure.in: change --enable-test/--enable-ansi action-if-given
13159         to enable_foo=$enableval instead of enable_foo=yes
13160
13161 2003-01-08  Havoc Pennington  <hp@pobox.com>
13162
13163         * dbus/dbus-string.c (_dbus_string_align_length): new function
13164
13165         * dbus/dbus-test-main.c: move main() for test app here
13166         * dbus/dbus-test.c
13167         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13168         symbol to run tests, because dbus-test isn't in the main
13169         library
13170
13171         Code review nitpicks.
13172
13173         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13174         for people with narrow emacs ;-). Assert client_serial was filled
13175         in. Assert message->name != NULL.
13176         (dbus_message_append_fields): have "first_field_type" arg separate
13177         from va list, needed for C++ binding that also uses varargs IIRC
13178         and helps with type safety
13179         (dbus_message_new): add @todo about using DBusString to store
13180         service/name internally
13181         (dbus_message_new): don't leak ->service and ->name on OOM later
13182         in the function
13183         (dbus_message_unref): free the service name
13184         (dbus_message_get_fields): same change to varargs
13185         i.e. first_field_type
13186         (_dbus_message_loader_return_buffer): assert that the message data
13187         is aligned (if not it's a bug in our code). Put in verbose griping
13188         about why we set corrupted = TRUE.
13189         (decode_header_data): add FIXME that char* is evil.  Was going to
13190         add FIXME about evil locale-specific string.h strncmp, but just
13191         switched to wacky string-as-uint32 optimization. Move check for
13192         "no room for field name" above get_const_data_len() to avoid
13193         assertion failure in get_const_data_len if we have trailing 2
13194         bytes or the like. Check for service and name fields being
13195         provided twice. Don't leak service/name on error. Require field
13196         names to be aligned to 4 bytes.
13197
13198         * dbus/dbus-marshal.c: move byte swap stuff to header
13199         (_dbus_pack_int32): uscore-prefix
13200         (_dbus_unpack_int32): uscore-prefix
13201         (_dbus_unpack_uint32): export
13202         (_dbus_demarshal_string): add @todo complaining about use of
13203         memcpy()
13204         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13205         handling allowing corrupt data to go unchecked
13206
13207 2003-01-08  Havoc Pennington  <hp@redhat.com>
13208
13209         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13210         to the select() as needed for authentication. (should be using
13211         _dbus_poll() not select, but for another day)
13212
13213         * dbus/dbus.h: include dbus/dbus-protocol.h
13214
13215 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13216
13217         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13218         dbus-connection.h
13219
13220 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13221
13222         * dbus/dbus-internals.c: (_dbus_type_to_string):
13223         New function that returns a string describing a type.
13224
13225         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13226         * dbus/dbus-marshal.h:
13227         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13228         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13229         (dbus_message_iter_get_byte_array):
13230         * dbus/dbus-message.h:
13231         Add new convenience functions for appending and getting message fields.
13232         Also add demarshalling routines for byte arrays.
13233
13234 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13235
13236         * dbus/dbus-connection-internal.h:
13237         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13238         (_dbus_connection_get_next_client_serial),
13239         (dbus_connection_send_message):
13240         * dbus/dbus-internals.h:
13241         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13242         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13243         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13244         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13245         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13246         (_dbus_verbose_bytes), (_dbus_marshal_test):
13247         * dbus/dbus-marshal.h:
13248         * dbus/dbus-message-internal.h:
13249         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13250         (dbus_message_write_header), (_dbus_message_lock),
13251         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13252         (dbus_message_get_name), (dbus_message_append_int32),
13253         (dbus_message_append_uint32), (dbus_message_append_double),
13254         (dbus_message_append_string), (dbus_message_append_byte_array),
13255         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13256         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13257         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13258         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13259         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13260         (decode_header_data), (_dbus_message_loader_return_buffer),
13261         (message_iter_test), (_dbus_message_test):
13262         * dbus/dbus-message.h:
13263         * dbus/dbus-protocol.h:
13264         * dbus/dbus-test.c: (main):
13265         * dbus/dbus-test.h:
13266         * glib/test-dbus-glib.c: (message_handler), (main):
13267         * test/echo-client.c: (main):
13268         * test/watch.c: (check_messages):
13269         Make messages sendable and receivable for real.
13270
13271 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13272
13273         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13274         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13275         * dbus/dbus-message.c: (dbus_message_append_int32),
13276         (dbus_message_append_uint32), (dbus_message_append_double),
13277         (dbus_message_append_string), (dbus_message_append_byte_array):
13278         Handle OOM restoration.
13279
13280 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13281
13282         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13283         (_dbus_demarshal_string), (_dbus_marshal_test):
13284         * dbus/dbus-marshal.h:
13285         * dbus/dbus-message.c: (dbus_message_get_name),
13286         Document these functions.
13287
13288         (dbus_message_append_int32), (dbus_message_append_uint32),
13289         (dbus_message_append_double), (dbus_message_append_string),
13290         (dbus_message_append_byte_array):
13291         * dbus/dbus-message.h:
13292         Add functions for adding message fields of different types.
13293
13294         * dbus/dbus-protocol.h:
13295         Add the different types.
13296
13297 2003-01-05  Havoc Pennington  <hp@pobox.com>
13298
13299         * bus/connection.c: implement routines for handling connections,
13300         first thing is keeping a list of owned services on each connection
13301         and setting up watches etc.
13302
13303         * bus/services.c: implement a mapping from service names to lists
13304         of connections
13305
13306         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13307
13308         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13309         to use static mutexes for global data
13310
13311         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13312         collection of functions to set/get application-specific data
13313         on the DBusConnection.
13314
13315 2003-01-04  Havoc Pennington  <hp@pobox.com>
13316
13317         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13318         (_dbus_poll): new function
13319
13320         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13321         copied from GLib
13322
13323         * bus/loop.c: initial code for the daemon main loop
13324
13325 2003-01-04  Havoc Pennington  <hp@pobox.com>
13326
13327         * test/watch.c (error_handler): make it safe if the error handler
13328         is called multiple times (if we s/error handler/disconnect
13329         handler/ we should just guarantee it's called only once)
13330
13331         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13332         error handler on disconnect (it's quite possible we should
13333         just change the error handler to a "disconnect handler," I'm
13334         not sure we have any other meaningful errors)
13335
13336         * configure.in: check for getpwnam_r
13337
13338         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13339         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13340         mechanism as in SASL spec, using socket credentials
13341
13342         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13343         (_dbus_send_credentials_unix_socket): new function
13344
13345         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13346         dbus_accept()
13347         (_dbus_write): only check errno if <0 returned
13348         (_dbus_write_two): ditto
13349
13350 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13351
13352         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13353         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13354         (_dbus_marshal_test):
13355         * dbus/dbus-marshal.h:
13356         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13357         to _dbus_marshal_utf8_string. Also fix some tests.
13358
13359 2002-12-28  Harri Porten  <porten@kde.org>
13360
13361         * configure.in: added check for C++ compiler and a very cheesy
13362         check for the Qt integration
13363
13364         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13365
13366         * qt/Makefile.am: added
13367
13368         * qt/.cvsignore: added
13369
13370         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13371         latter, added #ifdef QT_THREAD_SUPPORT guard.
13372
13373         * dbus/Makefile.am: added missing headers for make dist
13374
13375 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13376
13377         * dbus/Makefile.am: fixup export-symbols-regex.
13378
13379 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13380
13381         * acinclude.m4: Add this file and put the
13382         PKG_CHECK_MODULE macro in it.
13383
13384 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13385
13386         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13387         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13388         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13389         (_dbus_marshal_test):
13390         Make the demarshalling routines align the pos argument.
13391         Add string marshalling tests and fix the obvious bugs
13392         discovered.
13393
13394 2002-12-26  Havoc Pennington  <hp@pobox.com>
13395
13396         * dbus/dbus-auth.c: fixes fixes fixes
13397
13398         * dbus/dbus-transport-unix.c: wire up support for
13399         encoding/decoding data on the wire
13400
13401         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13402         (_dbus_auth_decode_data): append to target string
13403         instead of nuking it.
13404
13405 2002-12-26  Havoc Pennington  <hp@pobox.com>
13406
13407         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13408         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13409         doh
13410
13411         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13412         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13413         now). Main point is because I wanted unpack_uint32 to implement
13414         _dbus_verbose_bytes
13415         (_dbus_verbose_bytes): new function
13416
13417         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13418
13419         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13420         mechanism to handle a corrupt message stream
13421         (_dbus_message_loader_new): fix preallocation to only prealloc,
13422         not prelengthen
13423
13424         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13425         (_dbus_string_test): enhance tests for copy/move and fix the
13426         functions
13427
13428         * dbus/dbus-transport-unix.c: Hold references in more places to
13429         avoid reentrancy problems
13430
13431         * dbus/dbus-transport.c: ditto
13432
13433         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13434         leak reference count in no-message case
13435
13436         * test/watch.c (do_mainloop): handle adding/removing watches
13437         during iteration over the watches. Also, ref the connection/server
13438         stored on a watch, so we don't try to mangle a destroyed one.
13439
13440         * dbus/dbus-transport-unix.c (do_authentication): perform
13441         authentication
13442
13443         * dbus/dbus-auth.c (get_state): add a state
13444         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13445         (_dbus_auth_get_unused_bytes): append the unused bytes
13446         to the passed in string, rather than prepend
13447
13448         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13449         the auth conversation DBusAuth
13450
13451         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13452         (_dbus_transport_new_for_domain_socket): when creating a
13453         transport, pass in whether it's a client-side or server-side
13454         transport so we know which DBusAuth to create
13455
13456 2002-12-03  Havoc Pennington  <hp@pobox.com>
13457
13458         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13459         _after_ finalizing the derived members
13460         (unix_connection_set): unref watch if we fail to add it
13461
13462         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13463         transport first, so that the connection owned by the
13464         transport will be valid as the transport finalizes.
13465
13466         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13467         if necessary, and remove watches from the connection.
13468
13469         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13470
13471 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13472
13473         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13474         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13475         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13476         (_dbus_marshal_test):
13477         * dbus/dbus-marshal.h:
13478         Add string marshal functions and have the demarshal functions
13479         return the new position.
13480
13481 2002-12-25  Havoc Pennington  <hp@pobox.com>
13482
13483         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13484         it is a simple protocol that just maps directly to SASL.
13485
13486         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13487         initial implementation, not actually used yet.
13488
13489         * dbus/dbus-string.c (_dbus_string_find): new function
13490         (_dbus_string_equal): new function
13491         (_dbus_string_base64_encode): new function
13492         (_dbus_string_base64_decode): new function
13493
13494 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13495
13496         * dbus/Makefile.am:
13497         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13498         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13499         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13500         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13501         * dbus/dbus-marshal.h:
13502         * dbus/dbus-protocol.h:
13503         * dbus/dbus-test.c: (main):
13504         * dbus/dbus-test.h:
13505         Add un-optimized marshalling/demarshalling routines.
13506
13507 2002-12-25  Harri Porten  <porten@kde.org>
13508
13509         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13510
13511 2002-12-24  Zack Rusin  <zack@kde.org>
13512
13513         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13514         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13515         main loop stuff
13516
13517 2002-12-24  Havoc Pennington  <hp@pobox.com>
13518
13519         * glib/dbus-gthread.c: fix include
13520
13521         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13522         I think glib API needs to change, though, as you don't
13523         want to use DBusMessageFunction, you want to use the
13524         DBusMessageHandler object. Probably
13525         dbus_connection_open_with_g_main_loop()
13526         and dbus_connection_setup_g_main_loop() or something like that
13527         (but think of better names...) that just create a connection
13528         that has watch/timeout functions etc. already set up.
13529
13530         * dbus/dbus-connection.c
13531         (dbus_connection_send_message_with_reply): new function just to
13532         show how the message handler helps us deal with replies.
13533
13534         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13535
13536         * dbus/dbus-string.c (_dbus_string_test): free a string that
13537         wasn't
13538
13539         * dbus/dbus-hash.c: use memory pools for the hash entries
13540         (rebuild_table): be more paranoid about overflow, and
13541         shrink table when we can
13542         (_dbus_hash_test): reduce number of sprintfs and write
13543         valid C89. Add tests for case where we grow and then
13544         shrink the hash table.
13545
13546         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13547
13548         * dbus/dbus-connection.c (dbus_connection_register_handler)
13549         (dbus_connection_unregister_handler): new functions
13550
13551         * dbus/dbus-message.c (dbus_message_get_name): new
13552
13553         * dbus/dbus-list.c: fix docs typo
13554
13555         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13556         an object representing a handler for messages.
13557
13558 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13559
13560         * glib/dbus-glib.h:
13561         * glib/dbus-gthread.c: (dbus_gthread_init):
13562         Don't use the gdbus prefix for public functions.
13563
13564 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13565
13566         * Makefile.am:
13567         * configure.in:
13568         Add GLib checks and fixup .pc files
13569
13570         * glib/Makefile.am:
13571         * glib/dbus-glib.h:
13572         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13573         (gdbus_connection_check), (gdbus_connection_dispatch),
13574         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13575         (dbus_connection_gsource_new):
13576         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13577         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13578         * glib/test-dbus-glib.c: (message_handler), (main):
13579         Add GLib support.
13580
13581 2002-12-15  Harri Porten  <porten@kde.org>
13582
13583         * autogen.sh: check for libtoolize before attempting to use it
13584
13585         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13586         struct.
13587
13588         * .cvsignore: ignore more stamp files
13589
13590         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13591
13592         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13593         without make install.
13594
13595 2002-12-15  Havoc Pennington  <hp@pobox.com>
13596
13597         * dbus/dbus-threads.c: add thread stubs that a higher library
13598         layer can fill in. e.g. the GLib wrapper might fill them in with
13599         GThread stuff. We still need to use this thread API to
13600         thread-safe-ize the library.
13601
13602 2002-12-12  Havoc Pennington  <hp@pobox.com>
13603
13604         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13605         below new interfaces and include fewer system headers.
13606
13607         * dbus/dbus-sysdeps.c (_dbus_read): new function
13608         (_dbus_write): new function
13609         (_dbus_write_two): new function
13610         (_dbus_connect_unix_socket): new function
13611         (_dbus_listen_unix_socket): new function
13612
13613         * dbus/dbus-message-internal.h: change interfaces to use
13614         DBusString
13615
13616 2002-12-11  Havoc Pennington  <hp@pobox.com>
13617
13618         * dbus/dbus-types.h: add dbus_unichar
13619
13620         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13621
13622         * dbus/dbus-connection.c (dbus_connection_send_message): return
13623         TRUE on success
13624
13625         * dbus/dbus-transport.c: include dbus-watch.h
13626
13627         * dbus/dbus-connection.c: include dbus-message-internal.h
13628
13629         * HACKING: add file with coding guidelines stuff.
13630
13631         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13632         handling here, for security purposes (as in vsftpd). Not actually
13633         using this class yet.
13634
13635         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13636         system/libc usage here, as in vsftpd, for ease of auditing (and
13637         should also simplify portability). Haven't actually moved all the
13638         system/libc usage into here yet.
13639
13640 2002-11-25  Havoc Pennington  <hp@pobox.com>
13641
13642         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13643         always print the first verbose message.
13644
13645 2002-11-24  Havoc Pennington  <hp@pobox.com>
13646
13647         * test/echo-client.c, test/echo-server.c: cheesy test
13648         clients.
13649
13650         * configure.in (AC_CHECK_FUNCS): check for writev
13651
13652         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13653         function
13654
13655         * dbus/dbus-list.c (_dbus_list_foreach): new function
13656
13657         * dbus/dbus-internals.c (_dbus_verbose): new function
13658
13659         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13660         representing a server that listens for connections.
13661
13662         * dbus/.cvsignore: create
13663
13664         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13665         public API for reporting errors
13666
13667         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13668         public object representing a connection that
13669         sends/receives messages. (Same object used for
13670         both client and server.)
13671
13672         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13673         Basic abstraction for different kinds of stream
13674         that we might read/write messages from.
13675
13676 2002-11-23  Havoc Pennington  <hp@pobox.com>
13677
13678         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13679         _DBUS_INT_MAX
13680
13681         * dbus/dbus-test.c (main): add list test, and include
13682         dbus-test.h as intended
13683
13684         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13685         (_dbus_hash_table_remove_int): return value indicates
13686         whether the entry existed to remove
13687
13688         * dbus/dbus-list.c: add linked list utility class,
13689         with docs and tests
13690
13691         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13692         array sometimes.
13693
13694 2002-11-23  Havoc Pennington  <hp@pobox.com>
13695
13696         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13697         DBUS_END_DECLS to nothing, that should fix this once and for all
13698
13699         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13700
13701         * dbus/dbus-message.c, dbus/dbus-hash.c:
13702         add some missing @brief
13703
13704 2002-11-23  Havoc Pennington  <hp@pobox.com>
13705
13706         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13707         to avoid confusing Doxygen
13708
13709         * dbus/dbus-hash.c: @} not }@
13710
13711         * dbus/dbus-message.c (struct DBusMessage): split out
13712         internals docs
13713
13714 2002-11-23  Havoc Pennington  <hp@pobox.com>
13715
13716         * configure.in: pile on more warning flags if using gcc
13717
13718         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13719         to document static functions
13720
13721         * configure.in: add summary to end of configure so it
13722         looks nice and attractive
13723
13724         * dbus/dbus-hash.c: finish implementation and write unit
13725         tests and docs
13726
13727         * configure.in: add --enable-tests to enable unit tests
13728
13729         * dbus/dbus-test.c: test program to run unit tests
13730         for all files in dbus/*, initially runs a test for
13731         dbus-hash.c
13732
13733         * dbus/dbus-internals.h: file to hold some internal utility stuff
13734
13735 2002-11-22  Havoc Pennington  <hp@redhat.com>
13736
13737         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13738         "ported" away from Tcl
13739
13740         * dbus/dbus-types.h: header for types such as dbus_bool_t
13741
13742 2002-11-22  Havoc Pennington  <hp@redhat.com>
13743
13744         * dbus/dbus.h: fixups for doc warnings
13745
13746         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13747         macros
13748         (QUIET): make it quiet so we can see warnings
13749
13750         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13751
13752 2002-11-22  Havoc Pennington  <hp@redhat.com>
13753
13754         * Makefile.am: include "Doxyfile" target in all-local
13755
13756         * configure.in: generate the Doxyfile
13757
13758         * Doxyfile.in: move Doxyfile here, so we can use
13759         configure to generate a Doxyfile with the right
13760         version number etc.
13761
13762 2002-11-22  Havoc Pennington  <hp@redhat.com>
13763
13764         * dbus/dbus-message.c: move inline docs into .c file
13765
13766         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13767         so all docs are under doc/
13768         (MAN_EXTENSION): generate man pages. Use extension
13769         ".3dbus" which matches ".3qt" on my system,
13770         I guess this is OK, I don't know really.
13771         (FILE_PATTERNS): look for .c files not .h, makes sense
13772         for plain C I think
13773
13774 2002-11-22  Havoc Pennington  <hp@pobox.com>
13775
13776         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13777         because any app can be a server, and any app can be a client,
13778         the bus is a special kind of server.
13779
13780 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
13781
13782         * Doxyfile : adding. Still needs Makefile rules to be generated
13783         automatically (just run "doxygen" in the toplevel dir for now to
13784         generate docs)
13785
13786         * dbus/dbus-message.h : Adding sample docs (javadoc since
13787         resembles gtk-doc a little more)
13788
13789         * dbus/dbus.h : Adding sample docs
13790
13791 2002-11-21  Havoc Pennington  <hp@redhat.com>
13792
13793         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13794         so we can allow ourselves to include files directly,
13795         instead of having to use dbus.h
13796
13797         * dbus/dbus.h: fill in
13798
13799         * dbus/dbus-message.h: sketch out a sample header file.
13800         Include griping if you include it directly instead of
13801         via dbus.h
13802
13803         * dbus/dbus-macros.h: new file with macros for extern "C",
13804         TRUE/FALSE, NULL, etc.
13805
13806         * doc/file-boilerplate.c: put include guards in here
13807
13808 2002-11-21  Havoc Pennington  <hp@redhat.com>
13809
13810         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13811
13812         * COPYING: include the GPL as well, and license code
13813         under both AFL and GPL.
13814
13815 2002-11-21  Havoc Pennington  <hp@redhat.com>
13816
13817         * acconfig.h: get rid of this
13818
13819         * autogen.sh (run_configure): add --no-configure option
13820
13821         * configure.in: remove AC_ARG_PROGRAM to make
13822         autoconf complain less. add AC_PREREQ.
13823         add AC_DEFINE third arg.
13824
13825 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
13826
13827         * doc/Makefile.am:
13828         Fix references so we can distcheck.
13829
13830 2002-11-21  Havoc Pennington  <hp@redhat.com>
13831
13832         * Initial module creation
13833